精通Linux驅(qū)動(dòng)程序開發(fā)

出版時(shí)間:2009  出版社:人民郵電出版社  作者:Venkateswaran, S  頁數(shù):714  
Tag標(biāo)簽:無  

前言

20世紀(jì)90年代末,我們IBM的一群同事進(jìn)行了一項(xiàng)將Linux內(nèi)核移植到一種智能手表上的工作。目標(biāo)設(shè)備雖然微不足道,但是移植Linux的任務(wù)卻相當(dāng)艱巨。在當(dāng)時(shí),內(nèi)核中還不存在MTD(MemoryTechnologyDevice,內(nèi)存技術(shù)設(shè)備)子系統(tǒng),這意味著在文件系統(tǒng)能夠運(yùn)行在這種手表的閃存之前,我們不得不從頭開發(fā)必要的存儲(chǔ)驅(qū)動(dòng)器。由于當(dāng)時(shí)內(nèi)核的輸入事件驅(qū)動(dòng)接口尚未誕生,因此手表的觸摸屏與用戶應(yīng)用程序的接口非常復(fù)雜。讓XWindows運(yùn)行在手表的LCD上十分困難,因?yàn)閄Windows和幀緩沖設(shè)備驅(qū)動(dòng)程序搭配得并不好。如果你戴著一塊防水的Linux智能手表,卻不能躺在浴缸里實(shí)時(shí)獲得股票行情,那么這塊手表還有什么用?Linux幾年前就已集成了藍(lán)牙技術(shù),而當(dāng)時(shí)我們卻花費(fèi)了數(shù)月的時(shí)間將一種專有的藍(lán)牙協(xié)議棧移植到手表上,從而使得這種手表具備了Internet連網(wǎng)能力。電源管理系統(tǒng)可以讓這種手表的電池多運(yùn)行幾個(gè)小時(shí),因此我們又設(shè)計(jì)了一個(gè)省電方案。那時(shí)候,Linux紅外項(xiàng)目Linux-Infrared還不穩(wěn)定,我們十分小心地用紅外協(xié)議棧,設(shè)計(jì)出使用紅外鍵盤作為手表的數(shù)據(jù)輸入設(shè)備。最后,由于當(dāng)時(shí)還沒有能應(yīng)用于消費(fèi)類電子產(chǎn)品的成型的編譯器發(fā)行版,我們也不得不編譯出編譯器,并交叉編譯出一個(gè)緊湊的應(yīng)用程序集。時(shí)光飛逝,當(dāng)年嗷嗷待哺的企鵝寶寶已經(jīng)成長為一名健壯的少年。過去我們編寫了成千上萬行代碼并耗時(shí)一年完成的任務(wù),若采用現(xiàn)在的內(nèi)核,只需要幾天的時(shí)間就可以完成。但是,要成為一名能巧妙地解決多種問題的高級(jí)內(nèi)核工程師,你需要理解今天的Linux內(nèi)核提供的各種功能和設(shè)施。關(guān)于本書在Linux內(nèi)核源代碼樹提供的各個(gè)子系統(tǒng)中,drivers/目錄是其中最大的一個(gè)分支,它比其他子系統(tǒng)大數(shù)倍。隨著各種新技術(shù)的廣泛應(yīng)用,內(nèi)核中新的設(shè)備驅(qū)動(dòng)程序的開發(fā)工作正在穩(wěn)步加速。最新的Linux內(nèi)核支持多達(dá)70余種設(shè)備驅(qū)動(dòng)程序的龐大家族。本書主要講解Linux設(shè)備驅(qū)動(dòng)程序,介紹了目前內(nèi)核所支持的主要設(shè)備類型的設(shè)計(jì)與開發(fā),其中包括當(dāng)年我在開發(fā)Linux-on-Watch項(xiàng)目時(shí)未遇到的設(shè)備。本書在講解每種設(shè)備驅(qū)動(dòng)程序家族的時(shí)候,先介紹與該驅(qū)動(dòng)程序相關(guān)的技術(shù),接著給出一個(gè)實(shí)際的開發(fā)例子,最后列出相關(guān)的內(nèi)核源代碼文件。在踏入Linux設(shè)備驅(qū)動(dòng)程序領(lǐng)域之前,本書先介紹了內(nèi)核以及Linux2.6的重要特性,重點(diǎn)講解了設(shè)備驅(qū)動(dòng)程序編寫者感興趣的內(nèi)核知識(shí)。

內(nèi)容概要

  本書是Linux設(shè)備驅(qū)動(dòng)程序領(lǐng)域的權(quán)威著作。全書基于2.6內(nèi)核,不僅透徹講解了基本概念和技術(shù),更深入探討了其他書沒有涵蓋或輒止淺嘗的許多重要主題和關(guān)鍵難點(diǎn),如PCMCIA、I2C和USB等外部總線、視頻、音頻、無線連網(wǎng)和閃存等技術(shù)。在解釋每一個(gè)技術(shù)時(shí),均講解了相關(guān)的內(nèi)核源碼文件,并給出了完整的開發(fā)實(shí)例?! ”緯m合中高級(jí)Linux 開發(fā)人員閱讀。

作者簡介

Sreekrishnan Venkateswaran 世界頂級(jí)Linux開發(fā)技術(shù)專家。在IBM工作多年,有豐富的嵌入式Linux和驅(qū)動(dòng)程序開發(fā)經(jīng)驗(yàn),曾經(jīng)將Linux移植到了手表、音樂播放器、VoIP電話、心臟起搏器以及遠(yuǎn)程門診監(jiān)控系統(tǒng)等各種設(shè)備上。目前負(fù)責(zé)IBM印度公司的嵌入式解決方案組。他曾擔(dān)任Linux Magazine的特邀編輯,主持內(nèi)核技術(shù)專欄作。

書籍目錄

Chapter 1 Introduction Chapter 2 A Peek Inside the Kernel Chapter 3 Kernel FacilitiesChapter 4 Laying the GroundworkChapter 5 Character DriversChapter 6 Serial DriversChapter 7 Input DriversChapter 8 The Inter-Integrated Circuit ProtocolChapter 9 PCMCIA and Compact FlashChapter 10 Peripheral Component InterconnectChapter 11 Universal Serial Bus Chapter 12 Video DriversChapter 13 Audio Drivers Chapter 14 Block Drivers Chapter 15 Network Interface CardsChapter 16 Linux Without WiresChapter 17 Memory Technology Devices Chapter 18 Embedding Linux Chapter 19 Drivers in User Space Chapter 20 More Devices and DriversChapter 21 Debugging Device Drivers Chapter 22 Maintenance and DeliveryChapter 23 Shutting DownAppendix A Linux Assembly Appendix B Linux and the BIOSAppendix C Seq Files Index 

章節(jié)摘錄

插圖:Linux has trekked many a terrain and is now state of the art, so you can use it as avehicle to understand operating system concepts, processor architectures, and evenindustry domains. When you learn a technique used by a device driver subsystem,look one level deeper and probe the underlying reasons behind that design choice.  Wherever not explicitly stated, the text assumes the 32-bit x86 architecture. Thebook is, however, mindful of the fact that you are more likely to write device driversfor embedded devices than for conventional PC-compatible systems. The chapter onserial drivers, for example, examines two devices: a touch controller on a PC deriva-tive and a UART on a cell phone. Or the chapter on I2C device drivers looks at anEEPROM on a PC system and a Real Time Clock on an embedded device. The bookalso teaches you about the core infrastructure that the kernel provides for most driverclasses, which hides architecture dependencies from device drivers.  Device driver debugging techniques are discussed near the end of the book inChapter 21, so you might find it worthwhile to forward to that chapter as you developdrivers while reading the book.  This book is based on the 2.6 kernel, which has substantial changes across the boardfrom 2.4, touching all major subsystems. Hopefully, you have installed a 2.6,basedLinux on your system by now and started experimenting with the kernel sources. Eachchapter takes the liberty, of profusely pointing you to relevant kernel source files fortwo main reasons:

媒體關(guān)注與評(píng)論

目前最全面深入的Linux設(shè)備驅(qū)動(dòng)程序著作,世界級(jí)Linux技術(shù)大師力作,大量技術(shù)內(nèi)幕首次公開?!斑@是我讀過的最全面的Linux設(shè)備驅(qū)動(dòng)程序著作。”   ——Alan Cox,Linux內(nèi)核維護(hù)者“這本書涵蓋了各種Linux設(shè)備驅(qū)動(dòng)程序,全面而翔實(shí)?!薄  猅heodore Ts’o,Linux基金會(huì)CTO,北美第一位內(nèi)核開發(fā)者

編輯推薦

在回顧了驅(qū)動(dòng)開發(fā)的各種基礎(chǔ)知識(shí)和最新的Linux 2.6內(nèi)核相關(guān)特性之后,《精通Linux驅(qū)動(dòng)程序開發(fā)(英文版)》的作者不僅講述了其他設(shè)備驅(qū)動(dòng)程序圖書中都會(huì)涉及的較容易的內(nèi)容,更迎難而上,深入探討了驅(qū)動(dòng)開發(fā)包括嵌入式Linux開發(fā)中必須面對(duì)的難點(diǎn),比如PCMCIA、USB、I2C、視頻、音頻、閃存、無線通信等,揭示了許多內(nèi)幕技術(shù)的秘密。對(duì)每種驅(qū)動(dòng)程序,書中在剖析關(guān)鍵技術(shù)之外,還帶你查看相關(guān)的內(nèi)核源代碼,提供完整的實(shí)例。時(shí)至今日,Linux操作系統(tǒng)以其跨平臺(tái)、開源、支持眾多應(yīng)用軟件和網(wǎng)絡(luò)協(xié)議等優(yōu)點(diǎn),已經(jīng)成為應(yīng)用最廣泛的開發(fā)平臺(tái)。在這部貼近實(shí)戰(zhàn)、實(shí)例豐富的著作中,世界上經(jīng)驗(yàn)最豐富的Linux驅(qū)動(dòng)程序開發(fā)者之一系統(tǒng)全面地闡述了如何為各種設(shè)備開發(fā)可靠的驅(qū)動(dòng)程序。

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


    精通Linux驅(qū)動(dòng)程序開發(fā) PDF格式下載


用戶評(píng)論 (總計(jì)37條)

 
 

  •   書的內(nèi)容豐富,linux驅(qū)動(dòng)的方方面面都有涉及,深入學(xué)習(xí)還得研究linux內(nèi)核源碼
  •   深入淺出地講解了linux驅(qū)動(dòng)的知識(shí), 書里的內(nèi)容如果靠一個(gè)人的自學(xué)是很難學(xué)到的, 而且是圖靈系列的圖書,值得推薦, 如果想攀登計(jì)算機(jī)領(lǐng)域的頂峰, 必須要閱讀的一本書籍。
  •   這是本很不錯(cuò)的介紹linux驅(qū)動(dòng)的書。值得一看。
  •   這本書是我讀過所有l(wèi)inux書中最好的!真的是受益匪淺!
  •   英文版看著才過癮,深入淺出,需要一定基礎(chǔ)
  •   剛看了第一章,感覺英文也不是很累,就當(dāng)鍛煉一下自己的英文水平了。
    書很好懂吧,也許是第一章的緣故,努力看完。
    (當(dāng)當(dāng)寫評(píng)價(jià)不給啥好處的???)
  •   書籍質(zhì)量還可以,至于書的內(nèi)容怎么樣看個(gè)人
  •   書的內(nèi)容和質(zhì)量都很不錯(cuò),就是物流不給力
  •   書的質(zhì)量還是挺好的,有機(jī)會(huì)就拜讀一下
  •   總體很不錯(cuò)了,專門做某一方面得再買專門的書
  •   以前的評(píng)論不能全信,要買書最好能到書店看看。
  •   還是原版的書看上去有感覺
  •   書是不錯(cuò),但從351頁開始到366頁,變成了31-46,怎么搞的?
  •   已經(jīng)看過電子版的,很好,很強(qiáng)大,推薦!
  •   LDD3給出了理論知識(shí)點(diǎn),這本書是理論和實(shí)際相結(jié)合。只能說相當(dāng)給力。
  •   很好!很好!很好!很好!很好!很好!
  •   怕困難的別買!怕辛苦的別買!能夠堅(jiān)持的必須購買!
  •   soperfect!!!
  •   讀了1
    左右 里面每章基本是先講解相關(guān)概念 然后給出源代碼目錄 看完這本書能大體上對(duì)linux驅(qū)動(dòng)有相關(guān)了解 只有由于不夠詳細(xì) 具體的還需要自己另找資料 畢竟這本書所包含的內(nèi)容實(shí)在是不少~
  •   書是非常好,可是外殼有一道皺紋。心理有些糾結(jié)到底是換還是不換!
  •   書很不錯(cuò)哦, 值得研讀。
  •   就是買到的像是箱底的書,封皮也太“新”了~~
  •   很有用的書,而且書的質(zhì)量很好,慢慢學(xué)習(xí)
  •   看了一部分,感覺講的很實(shí)用
  •   剛拿到書 還沒有看內(nèi)容 感覺像盜版的 印刷質(zhì)量很差
  •   剛看了一部分,感覺還可以吧,但是最好配合別的書籍和代碼,有的地方不是很詳細(xì)
  •   書的質(zhì)量太差了,封面被劃花的痕跡很難看,內(nèi)容就是嚴(yán)重的盜版,字體很難看
  •   買的頁數(shù)比較厚的書,沒有一次不給我把封皮折了!!有的明顯就是包裝之前的折痕!!到底搞什么搞!這么厚的書還沒看,看到折痕就心里不爽?。。。。。。。。。。。。。。。。?!氣死我了!?。?!
  •   英文字體好不習(xí)慣。你能
  •   書的內(nèi)容很詳盡,有很多內(nèi)容是別的書沒有的。E文,讀起來有點(diǎn)挑戰(zhàn)阿!
  •   相比于其他影印的書籍,這本書的紙的質(zhì)量很不錯(cuò),和原版的差不多。內(nèi)容不用說了,絕對(duì)的經(jīng)典。
  •   紙很薄 ,714頁的書厚度和600頁的一樣。
  •   拿到手上一看,感覺有點(diǎn)別扭,細(xì)一看,好大的字體!比Understand Linux Kernel 影印版的字體大一號(hào),頁數(shù)上少近兩百頁,標(biāo)價(jià)卻還貴一塊錢。。。。。
  •   紙質(zhì)量不好 發(fā)灰, 味道不好
  •   配合LDD一起看,可以學(xué)到更多東西
  •   總的來講,是本好書,較之《linux驅(qū)動(dòng)程序》,看這本書對(duì)初學(xué)者而言可能比較容易上手,但最好還是結(jié)合《linux驅(qū)動(dòng)程序》來看,因?yàn)橛械牡胤經(jīng)]有那本講的清楚。
  •   這本書是英文的,讀起來有些難度,自己正在翻譯,只做學(xué)習(xí)之用,呵呵,這本書介紹的很全面,是驅(qū)動(dòng)開發(fā)人員的很好參考
 

250萬本中文圖書簡介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7