OS 에 흥미가 있으신 분들을 위해 재미난 정보를 하나 드릴까 합니다.


안드로이드 오픈소스 프로젝트 등은 들여다 봐야 커널이 버그버그한 리눅스 커널인데다 코드도 상당히 더러워서 좀처럼 공부를 할 수 없습니다.


공부하고 싶은 의지는 있지만, 무엇 부터 해야 할 지 모르시겠는 분들을 위해 소개하고 싶은 것이 xv6 입니다. 교육용으로 제작된 OS 이기에, 초보도 한눈에 알아 볼 수 있는 정말 깨끗한 코드로 만들어진 OS 입니다. 심지어 교육용 OS 주제에 멀티스레드도 대응 하고 있는 무시무시한 녀석으로 안드레기+리눅스의 정신나갈 분량의 코드는 암만 봐도 실력이 늘진 않을겁니다.(이런건 부분적으로 보시는게 좋습니다.)


간단하게 설명하면, 페이징 폴리시는 2단계(페이지테이블 단계), POSIX 완벽 호환. 코멘트의 방대함. 간단한 어셈코드와 C 정도만 보실수 있으시면 바로 분석 가능한 재미난 OS 입니다. 심지어 움직일겁니다!


추천하는 환경은,

1. LXR 분석도구

2. 인텔 x86 매뉴얼

3. 인텔 x86 최적화 매뉴얼(일본어 버젼이 있으니 아마도 한글버젼이 있을거임)


요 정도만으로도 공부하실수 있지 않을까 생각해 봅니다. (심지어 강의용 자료까지 제공하고 있습니다. 조만간 한국 학과에선 저런거로 강의하지 않을까 생각 됩니다.)


코드가 정말 너무나 쉽고 깨끗하게 정리 되어 있어서 아마 C의 기초만 아셔도 읽으실수 있지 않을까 생각 될 정도로 심플합니다.


http://pdos.csail.mit.edu/6.828/2012/xv6.html