Re: [問題] 學Kernel方法

看板LinuxDev作者 (bendog)時間10年前 (2015/01/04 01:16), 編輯推噓4(400)
留言4則, 4人參與, 最新討論串4/4 (看更多)
※ 引述《shihyuyao (shihyuyao)》之銘言: : 請問一下學習Linux kernel 前需要先學 Linux 系統程式嗎? : 如果我直接學kernel 會不會有什麼困難度? : 我有唸過恐龍書, 基本的 process ,thread 也有概念只是沒有寫過很多Linux 系統程式 : 網路看到有人建議學kernel 可以從 linux driver 入門 : 先看 Linux Device Drivers, 3rd Edition : 這樣學方式對嗎? : 如果從 kernel 書入門先看 : Robert Love 在 Linux Kernel Development (3rd Edition) 是嗎? : 還有看到前面PO文可以用Qemu + kernel + gdb 學kernel 這樣效果好嗎? : 謝謝 可以先決定要看哪一部分,例如memory, process, network, file system. 我是從netwo rk 進入。看書搭配linux 2.6 source code. 通常英文書都只講個大概,如果要細講sour ce code 的話,簡體書比較多。 看kernel 先專注自己想知道的部分,比如封包在ipv4 層的接收處理,其實稍微想一下就是fragment, option, 拔header, 往上送的處理。但是 會看到spin_lock, spin_lock_bh ... , timer, kmalloc, softirq, netlink 等一堆不 是主要ipv4層 概念的程式碼。我會選擇性忽略一些像是timer 的做法只專注我想知道的 地方,我只要知道哪些API 可以對imer做處理。當然也可以trace timer code, 但就偏掉 原本想知道的部分。我覺得入手不要直接看device driver 。Driver 有很大一部分是處 理hardware 的程式碼,只有一小部分是銜接linux kernel. 你的是動機是想學linux ker nel ,但沒有特別針對哪一部分的話,可以先看 kernel context 有哪些,比如 hardwar e irq, softirq, kernel thread. 然後是spin_lock, rcu 的實現,這些在kernel 蠻長 看到的。另外,我是用gtags/htags 來trace code 的。 -- Sent from my Android -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.255.31.26 ※ 文章網址: http://www.ptt.cc/bbs/LinuxDev/M.1420305398.A.788.html

01/05 08:50, , 1F
推!
01/05 08:50, 1F

01/05 22:28, , 2F
http://eudyptula-challenge.org/ 有人玩過這個嗎?
01/05 22:28, 2F

01/06 12:00, , 3F
樓上那個Challeng表示國外真的有人已經注意到這個問題:
01/06 12:00, 3F

01/09 21:21, , 4F
2F的那個挑戰蠻有趣的,雖然小弟也是新手,但寫信去挑戰了
01/09 21:21, 4F
文章代碼(AID): #1Kg2FsU8 (LinuxDev)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):
文章代碼(AID): #1Kg2FsU8 (LinuxDev)