出版時間: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
無
評論、評分、閱讀與下載