|
OS 를 공부하면 적어도 한번쯤은 리눅스나 다른 오픈 소스 운영체제들의 커널 소스를 볼 것이다. 물론 나도 여기서 벗어나지는 않는다.
0.01 리눅스 커널을 공부하면서 우리나라에 상당히 커널 관련 서적이 부족하다는것을 느꼈다. 대다시 좋다는 책들은 외국의 서적들이고, 간혹 우리나라 서적들이 있지만 대다수는 그냥 운영체제나 리눅스커널의 개념의 설명에만 그치고 있다. 실질적으로 커널을 읽는데 도움을 줬던 것은 몇몇 리눅스 사이트 들과 외국서적, 각 BBS 의 동호회들이었다.
올해 중반에 나온 이 책은 그래도 그나마 몇 안돼는, '커널을 직접 들여다본'책에 속한다. 해외의 것을 번역한, Linux Kernel Internal 보다는 꽤 볼만한 책이라 생각한다. 국내 모 대학 오에스 연구실에서 번역을 한 Linux Kernel Internal 은 개념을 설명한 책과, 커널을 설명하는 책 사이의 역할을 하기 때문에 어정쩡한 위치에 있고, 그나마 본서의 번역이 희한하기 때문에 보는데 상당한 지장을 줬다.
이 책은 그래도 국내서로 읽는것은 편하다. 그리고, 커널 소스에 등장하는 수많은 주석을의 대다수가(필요한 부분은)번역이 되어 있기 때문에, 공부하는데 상당한 도움을 준다. 사실 리눅스는 오픈소스라, 주석만 다 이해해도 반 이상은 이해를 한 셈이기 때문이다.
물론 이 책이 주석이나 각 헤더파일들의 자료구조를 잘 설명을 해 놓았지만, 스케줄링이나 파일시스템, 메모리관리등의 핵심 알고리즘에 대한 설명이 상당히 빈약한것이 사실이다. 즉, 이 책은 자료구조들이 모여있는 헤더파일들(.h)에 대한 분석(설명)이 주를 이룰뿐, 실질적 알고리즘이 구현된 소스파일(.c)에 대한 분석이 미흡하다. 물론 이부분은 다른 커널 관련 책들을 보면서, 그 개념을 파악한다면 코드를 보는데 무리가 없지만 그래도 이 부분까지도 손을 댔다면 훨씬 좋은 책이 되지 않았을가 생각한다.
본인은 지금 이 책과, 유명한 Unix 시스템의 설계 (바흐 모리스), 그리고 Understanding Linux Kernel, 각 사이트들을 보면서 커널 2.4를 공부하고 있다. 이 책은 자료구조의 실질적 분석이라는 측면에서 상당한 도움을 주고 이 책의 미흡한 부분은 다른 책들이 보충을 해 준다.
오에스를 공부한다면, 한권쯤 있어도 괜찮은 책인거 같다. 물론 이 책의, 지적된 단점을 보완한 책이 나와주길 바라면서...
|