리눅스 커널쪽으로 파고 들어갈려면 어떤식으로 접근하는게 좋을까요?

nike984의 이미지

제가 리눅스 커널을 개인적인 호기심으로 한번 공부 해보고 싶은데
우분투 포럼에서 물어보니 "Understanding the Linux Kernel"이란 책을 추천해주더라고요.

http://amazon.com/o/ASIN/0596005652/ref=s9_asin_image_3-1966_p/102-8449934-8807343?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-2&pf_rd_r=1J3VHK7QZE7ZVNP7JPKP&pf_rd_t=101&pf_rd_p=278240301&pf_rd_i=507846

아마존에서도 글 평을 읽어보니 평판이 굉장히 좋길래 이 책으로 한번 공부를 시작해보려 합니다만,
단순히 책만 파서 커널 이해를 하긴 힘들거 같은데요~
순선님이나 kldp에 커널 쪽으로 경험이 많은 분들께 어떤 식으로 공부하는게 좋을지
개인적인 충고를 좀 듣고 싶습니다.

gurugio의 이미지


저도 커널 공부를 한다고 리눅스 커널이라는 단어가 들어간 책은
거의 다 사고 있지만 책장만 늘리고 있지요.
정말 어려워요...

저는 일이년 전부터 만들면서 배우는 운영체제 커널 인가요?
그 책과 몇가지 커널 제작에 관한 책을 읽으면서
제 손으로 만들면서 커널 공부를 하고 이해되는 부분은 만들어보고
그런식으로 하고 있습니다만
이제 막 페이징이나 기타 하드웨어 초기화를 하고
겨우겨우 알고리즘쪽으로 넘어갈랑말랑 하고 있습니다.
여기까지 이년 넘게 걸린것 같아요...

저도 커널 공부를 잘 할 수 있는 방법이 있다면 알고싶습니다.
그런데 여기저기 질문해도 뾰족한 방법을 제시받지 못했습니다.
잘 조사하셔서 좋은 성과 올리시기 바랍니다.

저처럼 방황하지 마시고 힘내새요..
별 도움이 안되서 죄송하네요..

----
세상을 바꾸는 것은 단 한 사람. 오직 하나님의 사람뿐이다.

siabard의 이미지

http://kldp.org/node/83811 에서 나왔는데 그 중 일부를 인용하자면

Quote:

나는 리눅스 커널을 처음 다루기 시작했을 때 버그를 고치면서 커널에 대해 가장 많이 배웠다. 어떤 버그냐에 상관없이 누군가 메일링 리스트에 버그를 보고하면 무조건 재현해 보고 무조건 고치려고 달려들었다. 리눅스 커널 소스코드의 어딘가를 고치는 일은 정말로 많은 지식이 필요하기 때문에 그러한 과정을 거쳐서 리눅스 커널에 대해 잘 알 수 있게 되었다. 여러분들도 그냥 소스만 보지 말고 알려진 버그를 고치는 일을 통해서 스스로 뭔가 고쳐 보기 바란다. 리눅스 커널에 대해 훨씬 빠르게 전문가가 될 수 있을 것이다.

실제 구동 예를 통해서 하나하나 배워가는 것의 효과가 좋다라는 것 같습니다. 관심있는 분야의 버그와 그에 따른 패치를 바탕으로해서, 필요한 이론을 습득하는 방식이 가장 나을 것 같습니다.

--
새로움을 느끼기에 삶은 즐겁다..
모험가 아돌 크리스틴을 꿈꾸며..
Sia..

새로움을 느끼기에 삶은 즐겁다..
모험가 아돌 크리스틴을 꿈꾸며..
Sia..

JuEUS-U의 이미지

operating system principles (공룡책(??)) 같은 책으로
커널의 정의나 역할에 대해 공부 한 후,
리눅스 커널은 어떻게 구현되었나를 살피는것도 꽤 괜찮을것 같습니다.

jachin의 이미지

커널 소스를 컴파일 한 후 부팅이미지로 만들어서 부팅에 성공하신 다음...

커널 해킹에 도전해보시는 것이 순서가 아닐까 생각합니다.

사실... 커널 컴파일조차 실패하시는 분들이 많으셔서...

다음에 makefile, gdb, bash, C 를 찬찬히 공부하시면서 해킹에 시도를...
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.

anfl의 이미지

다음번 kernel source 분석 스터디(http://www.iamroot.org) 모임에 등록하십시요.
벌써 5년째 즐겁게 kernel을 분석하고 있습니다.
혼자하면 힘들지만 같이하면 별것 아닙니다.
kernel이 어렵다고 말하면 그건 공부 방법이 잘못된겁니다.
kernel은 재미있는거지 어려운게 아니니깐요.


superkkt의 이미지

다음 기수는 언제쯤 모집하나요?

======================
BLOG : http://superkkt.com

======================
BLOG : http://superkkt.com

anfl의 이미지

지금까지는 하나의 스터디가 끝난후인 1년 2개월에 한번씩 모집을했습니다.
하지만 요즘엔 뒤늦게 지원하는 지원자가 많아서 모집시기를 조정해야될것 같습니다.
지원자의 수가 스터디 정원(15명 이상)에 채워지면 스터디를 개설해야 될것 같습니다.


superkkt의 이미지

그 시기가 대략 언제쯤인지 알 수 있을까요? 홈페이지를 둘러봤는데 시기에 관한 내용은 못찾겠네요.

======================
BLOG : http://superkkt.com

======================
BLOG : http://superkkt.com

anfl의 이미지


정확한 날짜는 뭐라 말씀드리기가 애매하네요.
하지만 올해 내로 열어야 할것 같습니다.
원래는 내년으로 생각했는데 요청하시는 분들이 너무 많아
일정을 앞당기던지 해야될것 같습니다.

하지만 당장은 아닙니다. 지금 멤버들이 열공하고 있는 모드라서
새로운 스터디를 시작할 시기는 아닌것 같습니다.


nike984의 이미지

저도 스터디에 가입하고 싶습니다만
해외에 있는지라 그건 힘들거 같네요.

lipide의 이미지

위에 말씀하신 스터디도 좋습니다만..

간단한 장치 드라이버를 만들어보는 것은 어떨까요?
제 경우에는 드라이버를 만들어본 것이 커널을 이해하는데 굉장히 많은 도움이 되었습니다. :)
스케쥴링/동기화 라던가, 캐쉬와 같은 이슈들은 웬지 너무 추상적이라서 그 내용들이 어떻게 적용되는지 바로 와닿지 않았거든요.
처음에 접근할땐 아무래도 간단하게 구동과 관련된 부분을 하나씩 해보는 것이 눈에도 보이고 좋을 것 같습니다만 ^^

keizie의 이미지

http://kldp.org/node/83540

Quote:

나는 리눅스 커널을 처음 다루기 시작했을 때 버그를 고치면서 커널에 대해 가장 많이 배웠다. 어떤 버그냐에 상관없이 누군가 메일링 리스트에 버그를 보고하면 무조건 재현해 보고 무조건 고치려고 달려들었다. 리눅스 커널 소스코드의 어딘가를 고치는 일은 정말로 많은 지식이 필요하기 때문에 그러한 과정을 거쳐서 리눅스 커널에 대해 잘 알 수 있게 되었다. 여러분들도 그냥 소스만 보지 말고 알려진 버그를 고치는 일을 통해서 스스로 뭔가 고쳐 보기 바란다. 리눅스 커널에 대해 훨씬 빠르게 전문가가 될 수 있을 것이다.

꼭 커널에만 해당하는 말이 아닙니다. 어느 한 곳의 실마리를 잡고 거기에서 차근차근 조사하고 고쳐나가면 얻는 게 많았습니다.