Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解4.0最新.pdf
http://www.www.srpcoatings.com
2020年11月11日
![]() |
| 第1頁(yè) |
![]() |
| 第7頁(yè) |
![]() |
| 第13頁(yè) |
![]() |
| 第23頁(yè) |
![]() |
| 第31頁(yè) |
![]() |
| 第54頁(yè) |
參見(jiàn)附件(61056KB,640頁(yè))。
Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解介紹了Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)理論、框架與實(shí)例,詳細(xì)說(shuō)明了自旋鎖、信號(hào)量、完成量、中斷頂/底半部、定時(shí)器、內(nèi)存和I/O映射以及異步通知、阻塞I/O、非阻塞I/O等Linux設(shè)備驅(qū)動(dòng)理論,以及字符設(shè)備、塊設(shè)備、tty設(shè)備、I2c設(shè)備、LCD設(shè)備、音頻設(shè)備、USB設(shè)備、網(wǎng)絡(luò)設(shè)備、PCI設(shè)備等Linux設(shè)備驅(qū)動(dòng)架構(gòu)中各個(gè)復(fù)雜數(shù)據(jù)結(jié)構(gòu)和函數(shù)的關(guān)系,并講解了Linux驅(qū)動(dòng)開(kāi)發(fā)的大量實(shí)例,使讀者能夠獨(dú)立開(kāi)發(fā)各類(lèi)Linux設(shè)備驅(qū)動(dòng)。

編輯推薦
歷時(shí)8年,三次重構(gòu),內(nèi)容愈加爐火純青。
全部代碼更新至全新的Linux 4.0版本。
全面講解ARM Linux新版本內(nèi)核架構(gòu),如設(shè)備樹(shù)等。
不僅僅注重知識(shí)和程序的講解,更注重程序的思想、演變、架構(gòu)和算法
對(duì)于嵌入式工程師來(lái)說(shuō),進(jìn)入更高階段后,學(xué)習(xí)Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)無(wú)疑就是職業(yè)生涯的一次“重生”。這是因?yàn)長(zhǎng)inux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)不僅僅涉及操作系統(tǒng)的轉(zhuǎn)換,開(kāi)發(fā)方式的轉(zhuǎn)換,更重要的是思維上的轉(zhuǎn)變。對(duì)于Linux這樣一個(gè)復(fù)雜系統(tǒng),如何從復(fù)雜的代碼中抓住設(shè)備驅(qū)動(dòng)開(kāi)發(fā)的關(guān)鍵是任何一個(gè)Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)者入門(mén)時(shí)需要面對(duì)的挑戰(zhàn)。除了知識(shí)、工具之外,往往還需要思路上的指導(dǎo)。本書(shū)不但幫助Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)的初學(xué)者厘清必要的概念,還從具體的實(shí)例、設(shè)備驅(qū)動(dòng)開(kāi)發(fā)的指導(dǎo)原則循序漸進(jìn)地引導(dǎo)讀者漸入學(xué)習(xí)佳境。為了讓讀者能夠達(dá)到Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)的至臻境界,作者更是從軟件工程的角度抽象出設(shè)備驅(qū)動(dòng)開(kāi)發(fā)的一般思想。毫無(wú)疑問(wèn),本書(shū)將成為讀者學(xué)習(xí)Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)過(guò)程中的一座“燈塔”。
【備注:本書(shū)第11頁(yè),第六行鏈接已經(jīng)失效,替換為:https://pan.baidu.com/s/1472ejtnyguaKiULOWPahhw 密碼:moua】
作者簡(jiǎn)介
宋寶華,Linux布道者,知名嵌入式系統(tǒng)專(zhuān)家,《Essential Linux Device Drivers》譯者。作為較早從事Linux內(nèi)核與設(shè)備驅(qū)動(dòng)研究的專(zhuān)家之一,他在眾多國(guó)內(nèi)外知名企業(yè)開(kāi)展Linux技術(shù)培訓(xùn)。他也是一位活躍的Linux開(kāi)發(fā)者和深度實(shí)踐者,為L(zhǎng)inux官方內(nèi)核貢獻(xiàn)了大量的Linux源碼并承擔(dān)代碼審核工作。至今已向Linux官方內(nèi)核提交逾數(shù)萬(wàn)行代碼和幾百個(gè)補(bǔ)丁。他的《Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解》系列書(shū)在嵌入式Linux開(kāi)發(fā)者中有口皆碑,是眾多Linux書(shū)籍中為數(shù)不多的暢銷(xiāo)書(shū)。
精彩書(shū)評(píng)
理解軟件一定是從某個(gè)邏輯起點(diǎn)開(kāi)始,通過(guò)邏輯的延伸和數(shù)據(jù)的堆疊,首先在框架上獲知軟件是如何解決目標(biāo)問(wèn)題的。然后通過(guò)這個(gè)框架性的理解來(lái)進(jìn)一步熟知程序中更加小的細(xì)節(jié)以添加新功能或修復(fù)已遇到的問(wèn)題。我之前想,如果有一本書(shū)能在講解程序之前先詳細(xì)地介紹此程序的思想、演變、架構(gòu)和主要算法,然后再遍歷評(píng)論程序?qū)崿F(xiàn)的代碼,那絕對(duì)是秘籍,F(xiàn)在終于有了,謝謝@宋寶華即將帶給我們的絕學(xué)圣典!
—— CSR(Cambridge Silicon Radio)平臺(tái)軟件高級(jí)經(jīng)理 劉永生
“宋寶華老師的這本書(shū)是國(guó)內(nèi)少有的可與《Linux Device Driver》和《Linux Kernel Development》相媲美的Linux內(nèi)核類(lèi)書(shū)籍,甚至在所有技術(shù)類(lèi)圖書(shū)中都是精品之作。相比國(guó)內(nèi)大量技術(shù)類(lèi)圖書(shū)的呆板教條和抄襲,以及讓人讀來(lái)困倦,不知所云,該書(shū)文風(fēng)生動(dòng)而不失深刻,知識(shí)點(diǎn)全面精煉。書(shū)中不但介紹各常見(jiàn)驅(qū)動(dòng)的架構(gòu),更深入剖析內(nèi)核相關(guān)的底層實(shí)現(xiàn)機(jī)制,“授人以魚(yú)”更“授人以漁”,讓讀者真正領(lǐng)會(huì)和學(xué)習(xí)內(nèi)核社區(qū)大牛們的設(shè)計(jì)思想和技巧,從而快速提升自己的能力。愿本書(shū)的讀者通過(guò)學(xué)習(xí)能夠真正實(shí)現(xiàn)從“碼農(nóng)”到"內(nèi)核大!钡娜A麗轉(zhuǎn)變!
—— 中科院上海微系統(tǒng)所 朱軍
“Linux內(nèi)核的書(shū)籍不少,可是為什么好書(shū)少,與時(shí)俱進(jìn)的好書(shū)更加少。這是因?yàn)長(zhǎng)inux內(nèi)核每到兩三個(gè)月就更新一次,不斷有新的技術(shù)、新的框架加入。試問(wèn)有哪個(gè)作者可以一直堅(jiān)持寫(xiě)作關(guān)于Linux內(nèi)核新的變化和技術(shù)。就連國(guó)外的經(jīng)典之作《Linux Device Driver》、《Understanding Linux Kernel》都早就沒(méi)有更新的作品了,可是宋寶華老師一直在用他獨(dú)特的視角和一線Linux內(nèi)核開(kāi)發(fā)的工作實(shí)踐不斷地給大家?guī)?lái)新好的《Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解》。希望每一位Linux內(nèi)核的開(kāi)發(fā)者和愛(ài)好者都能好好學(xué)習(xí)宋老師的新作,同時(shí)學(xué)習(xí)他堅(jiān)持不懈的精神,多為L(zhǎng)inux內(nèi)核社區(qū)提供好的技術(shù)和作品!
—— NVIDIA高級(jí)系統(tǒng)軟件工程師 伍鵬 (Bryan Wu)
全書(shū)結(jié)構(gòu)
本書(shū)首先介紹Linux設(shè)備驅(qū)動(dòng)的基礎(chǔ)。第1章簡(jiǎn)要地介紹了設(shè)備驅(qū)動(dòng),并從無(wú)操作系統(tǒng)的設(shè)備驅(qū)動(dòng)引出了Linux操作系統(tǒng)下的設(shè)備驅(qū)動(dòng),介紹了本書(shū)所基于的開(kāi)發(fā)環(huán)境。第2章系統(tǒng)地講解了Linux驅(qū)動(dòng)工程師應(yīng)該掌握的硬件知識(shí),為工程師打下Linux驅(qū)動(dòng)編程的硬件基礎(chǔ),詳細(xì)介紹了各種類(lèi)型的CPU、存儲(chǔ)器和常見(jiàn)的外設(shè),并闡述了硬件時(shí)序分析方法和數(shù)據(jù)手冊(cè)閱讀方法。第3章將Linux設(shè)備驅(qū)動(dòng)放在Linux 2.6內(nèi)核背景中進(jìn)行講解,說(shuō)明Linux內(nèi)核的編程方法。由于驅(qū)動(dòng)編程也在內(nèi)核編程的范疇,因此,這一章實(shí)質(zhì)是為編寫(xiě)Linux設(shè)備驅(qū)動(dòng)打下軟件基礎(chǔ)。
其次,講解Linux設(shè)備驅(qū)動(dòng)編程的基礎(chǔ)理論、字符設(shè)備驅(qū)動(dòng)及設(shè)備驅(qū)動(dòng)設(shè)計(jì)中涉及的并發(fā)控制、同步等問(wèn)題。第4、5章分別講解Linux內(nèi)核模塊和Linux設(shè)備文件系統(tǒng);第6~9章以虛擬設(shè)備globalmem和globalfifo為主線,逐步給其添加高級(jí)控制功能;第10、11章分別闡述Linux驅(qū)動(dòng)編程中所涉及的中斷和定時(shí)器、內(nèi)核和I/O操作處理方法。
接著,剖析復(fù)雜設(shè)備驅(qū)動(dòng)的體系結(jié)構(gòu)以及塊設(shè)備、網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)。該篇講解了設(shè)備與驅(qū)動(dòng)的分離、主機(jī)控制器驅(qū)動(dòng)與外設(shè)驅(qū)動(dòng)的分離,并以大量實(shí)例(如input、tty、LCD、platform、I2C、SPI、USB等)來(lái)佐證。其中第12章和第17章遙相呼應(yīng),力圖全面地展示驅(qū)動(dòng)的架構(gòu)。Linux有100多個(gè)驅(qū)動(dòng)子系統(tǒng),逐個(gè)講解和學(xué)習(xí)都是不現(xiàn)實(shí)的,授人以魚(yú)不如授人以漁,因此我們將更多的焦點(diǎn)放在了架構(gòu)講解方面,以便讀者可以舉一反三。
本書(shū)最后4章分析了Linux的設(shè)備樹(shù)、Linux移植到新的SoC上的具體工作以及Linux內(nèi)核和驅(qū)動(dòng)的一些調(diào)試方法。這些內(nèi)容,對(duì)于理解如何從頭開(kāi)始搭建一個(gè)Linux,以及整個(gè)Linux板級(jí)支持包上上下下的關(guān)系尤為重要。
另外,本書(shū)的主要代碼都引用自Linux源代碼,為保留原汁原味,均延用了代碼的英文注釋?zhuān)渌且玫拇a則使用了中文注釋或無(wú)注釋?zhuān)卮苏f(shuō)明。
Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解4.0截圖



您現(xiàn)在查看是摘要介紹頁(yè), 詳見(jiàn)PDF附件(61056KB,640頁(yè))。
備驅(qū)動(dòng)開(kāi)發(fā)詳解4.0最新_1.jpg)
備驅(qū)動(dòng)開(kāi)發(fā)詳解4.0最新_2.jpg)
備驅(qū)動(dòng)開(kāi)發(fā)詳解4.0最新_3.jpg)
備驅(qū)動(dòng)開(kāi)發(fā)詳解4.0最新_4.jpg)
備驅(qū)動(dòng)開(kāi)發(fā)詳解4.0最新_5.jpg)
備驅(qū)動(dòng)開(kāi)發(fā)詳解4.0最新_6.jpg)