想成為 Linux 驅動工程師,需要讀些什麼書?

具體是這樣的:我是今年畢業的,現在從事的是網路設備的自動化測試,使用linux+except。但我不想一直做測試,想成為linux驅動coder。目前在工作之餘充電。我本科數學,學過c,數據結構,自學過計算機的一些基礎課,組成原理之類。現在在看的書有:Linux0.01內核分析與操作系統設計;彙編語言;操作系統設計與實現(minix);那我最好現在還需要看那些書?做那些事?O"Reilly的:Linux設備驅動程序?還望大牛指點。


關於基礎:

把Linux環境折騰好,弄熟悉了。C語言功底越紮實越好,簡單的Shell腳本Makefile至少能看懂一點,彙編語言雖然不是必要,不過這方面也是多多益善。

加分項:Shell腳本、Makefile、彙編語言、數據結構與演算法、計算機體系結構、操作系統基本原理等。

關於書籍:

·《嵌入式Linux應用開發完全手冊》 By 韋東山

—— 估計很多人玩嵌入式都是靠這本書入門的吧?一下子就學內核或驅動開發可能對初學者來說相對有點難度,如果有Linux應用層和裸機程序開發基礎的話,上手就容易多了。現在韋老師也出Linux驅動方面的視頻教程了,我只看過第一期免費版的,可以說,他是個當老師的料哈。他確實給了包括我在內的很多初學者不少幫助。

·《Linux Kernel Development》 By Robert Love

—— 縮寫為LKD。這本書對於想玩Linux內核開發的人來說,算得上是入門寶典了。基本上涵蓋了Linux內核開發需要的知識,雖然有些地方寫得不夠深入,但我現在每讀一次都有新的理解和收穫。Robert Love在技術寫作方面確實技術一等,他還寫了基本其他Linux的書籍,在Quora上也能看到他經常解答相關問題。我奮鬥的方向。

·《Linux Device Drivers》 By Jonathan Corbet, Greg Kroah-Hartman, Alessandro Rubini

—— 縮寫為LDD。目前最新第三版。跟著這本書,你基本上可以不需要額外的開發板,而直接在pc上(如果你不是用Linux桌面環境的話,可以裝個虛擬機)編寫並測試這書附帶的常式。這本書把驅動開發需要掌握的知識過了一遍,確實也是本必讀經典。

·《Understanding the Linux Kernel》 By Daniel P. Bovet, Marco Cesati

—— 縮寫為ULK。相對於上面的LKD來說,這本書寫的比較深入,厚多了哈,可能不大適合入門者。但是當你入了門之後,這本書會幫助你往專家級的方向發展,是本值得好好消化的好書。

·《Linux設備驅動開發詳解》 By 宋寶華

—— 算是國內關於Linux驅動開發的書寫得很好的了吧?貌似快出第三版了。

P.S. 就先介紹這幾本吧,當然還有不少好書,但介紹得多了,反而讓人無從選擇。以上的外文書籍盡量選擇讀原版吧,原因我就不多說了。另外,光看書作用不大,最好還是能有塊開發板練練手。


ldd3實在是,跟不上日新月異的內核變化了

宋寶華都要出第三版了

ELDD號稱是取代LDD3的新聖經,值得購買。


LDD3,如果國內的看看宋寶華的書。


ldd3


Essential Linux Device Drivers

Linux Kernel Development (3rd Edition)

The Linux Programming Interface: A Linux and UNIX System Programming Handbook


推薦閱讀:

求推薦學習linux命令的書籍?
在 2015 年的今天,Linux 是否比十多年前更適合大眾使用了?
gentoo 和 archlinux 有什麼優缺點?
Linux 和 Mac 下有什麼好用的類似於 Visio 的畫圖軟體?
信號(signal)和異常(exception)存在哪些異同?

TAG:Linux | Linux入門教材 | Linux開發 | Linux入門 |