[책소개] Linux Kernel in a Nutshell, Greg Kroah-Hartman, O'REILLY

keedi의 이미지

2006년 12월에 나온 책이라, 빠르게 변하는 요즘 세상에 1년이나 지났으니 어찌보면 한 물 간 책이기도 합니다만, 며칠전에 읽게되서 책소개 올립니다. :)

리눅스 커널 초보 개발자의 필독서

유명한 출판사들은 대부분 자신들만의 시리즈를 가지고 있습니다. Manning 의 민속의상 시리즈도 그렇고, APress 의 Expert Voice 시리즈도 그렇습니다만, 그래도 시리즈하면 바로 떠오르는 것은 오라일리가 아닐까합니다. 동물 시리즈부터 시작해서, 포켓 레퍼런스, 넛셀, 쿡북, 헤드 퍼스트 및 러쉬, 핵스, 디벨로퍼스 노트... 그러고 보니 정말 셀 수 없이 많군요.

책 정보
- Linux Kernel in a Nutshell
- Author: Greg Kroah-Hartman
- O'REILLY

이 중에서 오라일리의 넛셀 시리즈는, 비교적 입문자를 위한 책으로, 하지만 그 내용은 결코 초급자 및 중급자도 놓칠 수 없는 알찬 내용이 가득한 것이 특징입니다. 다만 넷셀 시리즈의 특성상, 입문자를 겨냥하고 있기 때문에 다른 Learning XXX 시리즈와 겹치는 부분도 많고, 시장성이 없는지 번역판은 거의 찾아보지 못했던 것이 흠입니다.

한동안 넛셀 시리즈가 뜸하다고 했었는데, 리눅스 커널 넛셀은 2006년 12월 판이니 꽤 최근에 나온 책이라고 할 수 있겠습니다. 지금까지 제가 본 넛셀 시리즈는 두 가지 였는데, 하나는 Perl in a Nutshell 이었고, 또 다른 하나는 Linux in a Nutshell 이었습니다. 역시 둘다 내용은 훌륭했고, 펄이나 리눅스를 시작하려는 사람에게는 추천하고 싶은 책입니다.

그런데 지금까지의 넛셀 시리즈는 제가 보지 않은 넛셀을 포함해서 대부분 책의 두께가 제법되는 편이었습니다. 아무리 못해도 500페이지는 거뜬히 넘기는 정도의 양? 그런데 이번 책의 예상치 못한 얇음(200페이지 미만, 3만 3천원?)에 배송받은 당시 충격에 휩싸여(?) 정신을 못차리기도 했습니다. :)

일단, 이 책을 읽어야 할 독자는 너무나도 명확합니다. 넛셀 시리즈가 그러하듯 리눅스 커널 개발에 입문 하려는 사람입니다. 즉, 초보 리눅스 커널 개발자입니다.

이 책에 나오는 모든 내용은 리눅스 커널의 문서 디렉터리 하부에 있는, 또는 Makefile, 소스코드에 있는 내용이며, 각종 리눅스 커널 관련 커뮤니티에서 구하거나 검색을 통해서 찾을 수 있는 내용입니다.

그러면 도대체 이 책이 무슨 효용이 있겠냐? 고 생각할 수 있지만, 감히 단언컨데, 이제 막,

* 커널 개발에 관심을 가지려고 한다거나,
* 초보 커널 개발자로 업무를 시작한다거나,
* 임베디드 리눅스 포팅 작업을 처음 해보려고 한다거나,

하는 사람에게는 최고의 책입니다. 사실 커널 소스 내에는 문서가 방대하게 존재하지만, 일목요연하지 않으며, 어떤 문서들은 최신의 정보를 담지 못하고 있는 경우도 많습니다. 인터넷에서 커널 관련 작업을 찾는 다는 것은 많은 시간과 인내를 요하며, 가끔씩은 정확하지 않은 정보도 꽤 많습니다. 휴리스틱하지만 잘 동작하는 방법을 찾았을때는, 이 방법이 과연 정통한 방법인가 하는 의심을 품은채(비록 잘 동작한다 할지라도)로 커널 작업을 할 때도 있습니다.

또한, 이미 커널 개발 프로세스를 어느정도 알고 있다던가, 커널 컴파일 및 포팅에 익숙한 사람이라고 하더라도 이 책은 역시 유용합니다(앞선 경우보다는 덜하겠지요). 실제 리눅스 커널 개발 팀에서 개발을 하고 있는 저자가 집필한 것이기 때문에 일단 일련의 커널 개발 프로세스에 대한 확신을 갖고 자신의 것으로 만들 수 있다는 것, 여러가지 툴과 레퍼런스들을 제시하기 때문에 역시 그것만으로도 충분히 가치가 있다고 할 수 있습니다.

저의 경우 연구실에서나, 회사에서나 커널 작업을 할 때가 종종 있어서 어느정도 일련의 과정을 알고 있다고 생각했지만, 그런 여러가지 것들이, 확신을 가지고 있지 못하거나 틀린 부분이 있었는데, 꽤 많은 부분을 정리할 수 있었습니다. ketchup 이라던가, 자동화 툴과 관련한 정보도 많은 도움이었습니다.

ch. 1 ~ ch. 8 까지만 읽으면, 리눅스 커널을 처음 접해보는 사람도 개발을 하기 위한 일련의 프로세스를 스텝-바이-스텝으로 확실하게 알 수 있으며, 저자는 버전간의 차이라던가, 자동화 프로세스, 유틸리티 등과 관련한 정보를 빠짐없이 다 제공하고 있기 때문에, 비록 얇지만, 이정도면 일단 기본기는 갖췄다고 할 수 있을 것입니다. 그 후의 뒷 부분은 대부분 레퍼런스 관련한 내용이니까 한번 쭉 훑어보고 필요에 의해서 찾아서 보면 충분할 것 같습니다.

오히려 책이 얇기 때문에 커널 작업을 하면서 바로 옆에 두고 필요할 때마다 참고하기 더 좋을것 같다는 생각도 들더군요. 처음 집필 때는 1000페이지가 넘었다는데, 다 읽은 지금 생각에는 핵심만 잘 짚어놓은 책이란 생각입니다.

아마 이 책이 전혀 필요없는 사람은 다음 사람일 것 같네요.

* 이미 리눅스 커널 개발 일련의 과정에 대해서 온전하게 습득하고 있는 사람
* 리눅스 커널 관련 유틸리티나 정보와 관련해서 잘 알고 있는 사람
* 리눅스 커널 관련 메일링 리스트를 자주 보면서 정보 획득이 빠른 사람
* 인터넷 문서 보기가 익숙한 사람(이책은 CC 라이센스로 넷에서 볼 수 있습니다.)

커널 관련 작업을 하면서 온라인으로 찾기 위해 흔히 말하는 삽질을 하며 아까운 시간을 흘려보낸 것을 생각하면(그것이 공부라 할지라도), 이 책이 주는 가치는 그 가격의 몇 십배 이상입니다. 개인적으로 Linux Kernel in a Nutshell(O'REILLY)과 Understanding Linux Kernel 3rd ed.(O'REILLY), Linux Device Drivers 3rd ed.(O'REILLY), Building Embedded Linux Systems(O'REILLY), Linux Kernel Development(Novell)는 리눅스 커널 관련 작업할 때는 필수 5종 셋트라고 말씀드리고 싶네요. :-)

File attachments: 
첨부파일 크기
Image icon Linux_Kernel_in_a_Nutshell.jpg118.46 KB
권순선의 이미지

찾아보기 쉬운 형태로 잘 편집이 되어 있는 점은 매우 유용하지만 책 내용의 대부분이 커널 문서에서 거의 그대로 가지고 온 듯한 느낌이 있어 좀 아쉽더군요. 특히 커널 옵션 부분... Greg KH가 오랫동안 lkml에서 활동해온지라 저는 이런 guru급 리눅스 커널 개발자들이 실제로 어떻게 리눅스 커널을 개발하고 lkml에 참여하기 위해서는 어떻게 해야 하는지(패치하는 법/lkml에 쉽게 적응하는 법 등) 등을 주로 이야기할 걸로 기대했었거든요.

OpenSnake의 이미지

pdf 파일도 있는거 같으니 이거 읽어도 되겠네요...

--------------------------------------------
혼자있고 싶습니다. 모두 지구밖으로 나가주세요.

--------------------------------------------
혼자있고 싶습니다. 모두 지구밖으로 나가주세요.

kiwist의 이미지

저도 pdf 파일 구해서 후루룩 보고 있습니다. ^^; 커널을 다루는 책이지만, 내용이 아주 쉬워 읽기도 편하고, 잘 몰랐던 빌드 옵션등을 파악하는데 도움이 될 것 같습니다. 좋은 정보 감사합니다.

mnnclub의 이미지

링크주소 알수있을까요? 다운받구싶어요..;;

sorigae의 이미지

좋은 책 하나 알아서 기쁩네요.

primewizard의 이미지

http://www.kroah.com/lkn/

--
혹시나 해서...
늦었지만 정보 공유 차원에서 남깁니다.