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

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

前言

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

內(nèi)容概要

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

作者簡介

Sreekrishnan Venkateswaran 世界頂級Linux開發(fā)技術(shù)專家。在IBM工作多年,有豐富的嵌入式Linux和驅(qū)動程序開發(fā)經(jīng)驗,曾經(jīng)將Linux移植到了手表、音樂播放器、VoIP電話、心臟起搏器以及遠程門診監(jiān)控系統(tǒng)等各種設(shè)備上。目前負責IBM印度公司的嵌入式解決方案組。他曾擔任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)注與評論

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

編輯推薦

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

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


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


用戶評論 (總計37條)

 
 

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

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

京ICP備13047387號-7