這一章講了如何獲取,編譯,安裝內(nèi)核,以及開(kāi)發(fā)內(nèi)核程序應(yīng)當(dāng)注意的事項(xiàng)。
本人雖然沒(méi)有開(kāi)發(fā)內(nèi)核的想法,但是非常想借閱讀運(yùn)行內(nèi)核源碼,了解Linux的運(yùn)轉(zhuǎn)過(guò)程和原理。書(shū)上對(duì)怎么一步一步調(diào)試運(yùn)行源碼描述的不太詳細(xì),我又找了一些其他的資料輔助我把內(nèi)核跑起來(lái)。
正所謂不能快速斷點(diǎn)調(diào)試,快速失敗重試的源碼都是在耍流氓,暫時(shí)根據(jù)這篇搭建源碼閱讀修改環(huán)境
https://www.ibm.com/developerworks/cn/linux/1508_zhangdw_gdb/index.html
內(nèi)核源碼樹(shù)
| 目錄 | 描述 |
|---|---|
| arch | 特定體系結(jié)構(gòu)的源碼 |
| block | 塊設(shè)備I/O層 |
| crypto | 加密API |
| Documentation | 內(nèi)核源碼文檔 |
| drivers | 設(shè)備驅(qū)動(dòng)程序 |
| firmware | 使用某些驅(qū)動(dòng)程序而需要的設(shè)備固件 |
| fs | VFS和各種文件系統(tǒng) |
| include | 內(nèi)核頭文件 |
| init | 內(nèi)核引導(dǎo)和初始化 |
| ipc | 進(jìn)程間通信代碼 |
| kernel | 像調(diào)度程序這樣的核心子系統(tǒng) |
| lib | 通用內(nèi)核函數(shù) |
| mm | 內(nèi)存管理子系統(tǒng)和VM |
| net | 網(wǎng)絡(luò)子系統(tǒng) |
| samples | 示例,示范代碼 |
| scripts | 編譯內(nèi)核所用腳本 |
| security | linux安全模塊 |
| sound | 語(yǔ)音子系統(tǒng) |
| usr | 早起用戶(hù)空間代碼 |
| tools | 在linux開(kāi)發(fā)中有用的工具 |
| virt | 虛擬化基礎(chǔ)結(jié)構(gòu) |