프로그래밍을 배운 사람이나 컴퓨터에 어느정도 관심이 있는 사람이라면 OS의 기능이나 종류같은 것들에도 지식이 있을테고, 개중엔 나처럼 잉여로운(...) 사람들은 그 구조가 워낙에 궁금해서 만들어보고 싶다는 생각을 하는 사람들도 있을 터이다.
사실 OS를 만들어보고 싶다는 생각은 예전에 리눅스라는 존재를 접했을 때부터 가지고 있었다. 기존의 배포판에 기능을 추가하고, 새로운 이름을 붙여 자신만의 OS를 배포하는 모습들을 보고 나도 나만의 OS를 가지고 싶다는 생각을 종종 했었다. '블러디 먼데이' 같은 해킹 드라마나 만화에서 주인공들이 노트북을 부팅하면서 보이는 그들만의 OS 로고는 동경의 대상이기도 하다.
드라마 <블러디 먼데이> 中 Falcon OS. 크읏...간지...
의외로 OS를 만드는 방법에 대한 책들이 시중에 꽤 나와있었다. 64bit OS를 만드는 2권짜리 크고 아름다운 책도 있었으나 그 기세에 눌려 다른 책을 찾아보다 발견한건 카와이귀여운 아니 불쌍한인가 히데미 저 <OS 구조와 원리 - OS 개발 30일 프로젝트>. 평소부터 일본의 전문서적들은 번역도 매끄럽고 웃음코드가 맞는 경우도 많아 읽기가 수월해 선호하는 편이다. 동네 도서관에 가서 냉큼 빌려왔다 ㅋ
이렇게 생겼다
0일차부터 31일차까지 32일 과정이며30일이라매 필자는 자신의 기준으로 세운 것일 뿐 너무 일수에 구애받지는 말라고 하더라.
0일차(따단-)
0일차에는 앞으로의 개발에 있어 마음가짐과 과정, 개발도구에 대한 설명과 필자가 생각하는 OS의 모습을 알 수 있었다.
OS개발은 다른 OS에 종속되지 않게끔 프로그래밍 해야해서 어셈블리어가 가장 이상적이나(세상에...) 그러면 포기하게 될것 같으므로 OS의 간섭이 적은 C를 메인으로 사용한다고 한다. 최초의 OS는 기계어를 사용해서 만들었을것이라고 얘기하는데 역시 21세기에 태어난건 다행이라고 생각한다;;
일반 보호 예외에 관한 주석이 잠깐 붙어있는데, CPU는 OS의 보호를 무시하려하거나 있을 수 없는 동작을 지시받게되면 '예외'를 발생시키는데(0으로 나눈다던가), 어느 '예외'에도 속하지 않는 타입의 이상 사태가 '일반 보호 예외'라고 부른다고한다.(A.K.A. 블루스크린 ㅂㄷㅂㄷ...) 예상치 못한 곳에서 블루스크린의 정체를 알아버렸다. 필자 말로는 OS 개발에 있어 감사히 여기게 될 녀석이라고...
시디부록이 함께 들어있는데 모든 자료는 상업적으로 이용가능하며 심지어 허락을 받지 않아도 된다고(!) 한다. 필자의 대인배스러운 면모에 감탄하지 않을 수 없다. 본문 내용 중 하는 말이 '책과 CD-ROM'이 아니고 'CD-ROM과 그 부록인 두꺼운 책'이라고 할 정도인데도 이렇게 사용을 허락하는 것을 보면 더욱이 존경스럽다.
제대로 된 놈을 만들어 보겠다는 생각보다는 취미삼아 설렁설렁(...) 만들어볼 생각이므로 매일매일 일지를 쓰기보다는 책의 일차에 맞추어 써볼 생각이다.
'OS 개발일지' 카테고리의 다른 글
[OS개발] 5일차 - GDT? IDT...? (1) | 2015.11.02 |
---|---|
[OS개발] 4일차 - COLOR, COLOR, COLOR! (0) | 2015.11.01 |
[OS개발] 3일차 - C언어 도입! 우워어어엉! (3) | 2015.10.30 |
[OS개발] 2일차 - 어셈블러랑 말문이 트였다. (0) | 2015.10.29 |
[OS개발] 1일차 - 그럼, 부팅이나 시켜볼까? (0) | 2015.10.27 |