標題: HOWTO do Linux kernel development - take 3 (中文版,轉(zhuǎn)自CLF,譯者:zhllg) [打印本頁] 作者: leviathan.alan 時間: 2006-06-20 09:21 標題: HOWTO do Linux kernel development - take 3 (中文版,轉(zhuǎn)自CLF,譯者:zhllg) 譯者:張樂 robert_AT_thizlinux_DOT_com
原作:Greg KH
譯注:本文依據(jù)take 3翻譯,應該不會再有大的改動了,如果有本文會隨時更新
時間倉促,恐難免錯漏,歡迎指正
原文:http://permalink.gmane.org/gmane.linux.kernel/349656 (轉(zhuǎn)貼說明:也可以在內(nèi)核源代碼目錄下的Documentation/HOWTO找到本文英文版)
譯文:
------------------------------
HOWTO do Linux kernel development
---------------------------------
內(nèi)核幾乎全是用C寫成的,有一些架構相關的部分是用匯編語言寫成的。熟練掌握C語言是內(nèi)核開發(fā)的必備條件。匯編語言(任何架構)的了解不是必須的,除非你準備做某個架構的底層開發(fā)。雖然下面這些書不能完全代替扎實的C語言教學和/或者成年累月的經(jīng)驗,他們還是不錯的參考,如果用得著的話:
- "The C Programming Language" 作者: Kernighan and Ritchie [Prentice Hall]
- "Practical C Programming" 作者: Steve Oualline [O'Reilly]
內(nèi)核是用 GNU C 和 GNU 工具鏈寫成的。雖然它符合 ISO C89 標準,它還是使用了一些標準中沒有的擴展。內(nèi)核是自稱體系的 C 環(huán)境,它并不依賴標準C庫,所以某些C語言標準是不支持的。任意長度long long類型除法和浮點數(shù)是不被允許的。有時候會很難理解內(nèi)核對于它所使用的工具鏈和擴展的假定,而且不幸的是也沒有關于它們的絕對的參考。請查閱gcc 的info頁(`info gcc`)以獲取有關信息。
內(nèi)核也有很多可以從源代碼自動產(chǎn)生的文檔。這包括內(nèi)核內(nèi)部API的全面描述,有關如何處理好鎖定的規(guī)則。這些文檔會被創(chuàng)建于 Documentation/DocBook/文件夾中。在內(nèi)核主源碼樹中通過運行下面的命令可以創(chuàng)建出PDF,Postscript,HTML和 manpage等不同格式的文檔:
make pdfdocs
make psdocs
make htmldocs
make mandocs
-------------
感謝Paolo Ciarrocchi允許我在他所寫的文章的基礎上寫成本文的“開發(fā)流程”部分,感謝Randy Dunlap和Gerrit Huizenga為了他們應該說的和不該說的一些事情。也感謝Pat Mochel, Hanna Linder, Randy Dunlap, Kay Sievers, Vojtech Pavlik, Jan Kara, Josh Boyer, Kees Cook, Andrew Morton, Andi Kleen, Vadim Lobanov, Jesper Juhl, Adrian Bunk, Keri Harris, Frans Pop,David A. Wheeler, Junio Hamano, Michael Kerrisk, 和 Alex Shepard為了他們對于本文初稿的評論和意見。