目前最全面深入的Linux裝置驅動程式著作

2021-08-23 14:59:20 字數 2290 閱讀 9168

《精通linux驅動程式開發(英文版)》

在linux核心源**樹提供的各個子系統中,drivers/目錄是其中最大的乙個分支,它比其他子系統大數倍。隨著各種新技術的廣泛應用,核心中新的裝置驅動程式的開發工作正在穩步加速。最新的linux核心支援多達70餘種裝置驅動程式的龐大家族。

本書相關資訊:

《精通linux驅動程式開發(英文版)》主要講解linux裝置驅動程式,介紹了目前核心所支援的主要裝置型別的設計與開發,其中包括當年我在開發linux-on-watch專案時未遇到的裝置。本書在講解每種裝置驅動程式家族的時候,先介紹與該驅動程式相關的技術,接著給出乙個實際的開發例子,最後列出相關的核心源**檔案。在踏入linux裝置驅動程式領域之前,本書先介紹了核心以及linux 2.6的重要特性,重點講解了裝置驅動程式編寫者感興趣的核心知識。

讀者物件

各章概述

前4章為你閱讀本書剩餘部分打下了基礎,接下來的16章討論了不同的linux裝置驅動程式家族,之後的第21章描述了裝置驅動程式的除錯技術,第22章講解了維護和交付裝置驅動程式的相關事宜,最後一章給出了當你接到乙個新裝置驅動程式開發任務的時候,要首先查驗的專案清單。

第3章講解了對驅動程式開發有用的一系列核心api。這一章首先介紹了核心執行緒(它提供了一種在核心空間執行後台任務的能力),接下來講解了一系列的輔助api(如鍊表、工作佇列、完成函式、通知鏈等)。這些輔助api能簡化**、剔除核心中的冗餘並有助於核心的長期維護。

第4章為你打下駕馭linux裝置驅動程式開發藝術的基礎。這一章通過呈現一般的pc相容系統和嵌入式裝置的體系結構的鳥瞰圖介紹了裝置和驅動程式,並講解了中斷處理和核心裝置模型等基本的驅動程式概念。

第5章介紹了linux字元裝置驅動程式的體系結構。這一章引入了幾個新概念,譬如輪詢、非同步通知和i/o控制等。由於本書後面介紹的大多數裝置都可以看作「超級」字元裝置,所以這些概念也與後續章節密切相關。

第6章講解了核心串列埠裝置驅動程式的層次結構。

第7章討論了核心中為鍵盤、滑鼠和觸控螢幕控制器等輸入裝置服務的輸入子系統。

第8章講解了通過i2c匯流排或smbus匯流排與系統連線的裝置(如eeprom)的驅動程式。同時,這一章也介紹了spi匯流排和1-wire匯流排等其他序列介面。

第9章分析了pcmcia子系統。這一章將教會你如何編寫含pcmcia或compact flash元件的裝置的驅動程式。

第10章描述了核心對pci及其衍生匯流排裝置的支援。

第11章**了usb的體系結構,並講解了如何利用linux核心usb子系統的api來開發usb裝置驅動程式。

第13章描述了linux音訊子系統的架構,並給出了音訊裝置驅動程式的實現方法。

第14章集中描述儲存裝置(如硬碟)的驅動程式。在這一章裡,你也將學習到linux塊子系統所支援的幾種不同的i/o排程策略。

第15章分析了網路裝置驅動程式,你將學習核心中與網路相關的資料結構以及網路裝置驅動程式與協議層介面的實現方法。

第16章描述了各種無線網路裝置的驅動程式,如藍芽、紅外、無線區域網wifi和蜂窩通訊等。

第17章講解了如何讓快閃儲存器在嵌入式裝置上執行起來,這一章最後講解了pc上的fwh(firmware hub,韌體中心)的驅動程式。

第18章步入嵌入式linux的世界。這一章介紹嵌入式裝置中的引導引導程式(bootloader)、核心以及裝置驅動程式等主要的韌體組成。由於linux在嵌入式領域越來越受歡迎,你很有可能將從本書中學到的linux驅動程式開發技能應用於嵌入式領域。

第19章講解了如何在使用者空間驅動各種裝置。一些裝置驅動程式(尤其是那些重策略、輕效能的裝置)更適合在使用者空間被驅動。這一章也分析了linux程序排程對使用者空間裝置驅動程式響應時間的影響。

第20章描述了之前尚未論及的裝置驅動程式系統,如錯誤偵測和校驗(edac)、火線介面以及acpi等。

第21章講解了用來除錯linux核心**的各種除錯工具。在這一章中,你也將學習到跟蹤(trace)工具、核心探測點(probe)、崩潰轉儲(crash-dump)和剖析器(profiler)的使用方法。當你在開發linux驅動程式的時候,請用本章學到的驅動除錯技能武裝自己。

第22章給出了裝置驅動程式軟體開發生命週期的概況。

第23章給出了當你開始進行乙個新裝置驅動程式開發工作時,應該查驗的工作專案清單。本書最後是對「下一步怎麼做」的思考。

裝置驅動程式中有時候需要以組合語言實現一些**片段,因此,附錄a介紹了linux彙編程式設計的不同方面。x86系統上的一些裝置驅動程式直接或間接地依賴於bios,因此,附錄b講解了linux如何與bios互動。附錄c描述了2.6核心提供的seq檔案——用於監控和追蹤資料點的輔助介面。

Linux下nf conntrack(最全面)

總結如下 dmesg grepnf conntrack 連線跟蹤表nf conntrack 如果輸出值中有 nf conntrack table full,dropping packet 說明伺服器nf conntrack表已經被打滿 如果伺服器上跑著iptables,必須使用的情況下 net.nf...

最全面清除html字串的方式

如何清除html字串?我在網上搜尋了很多種方法都不盡人意,故自己在寫好的基礎上對整體功能進行自測,以期達到能清除任意格式的html字串。html標籤有以下幾種格式 h1 p p class container p 正確渲染html字串 var str 111 sdfsdfsdf請看題 i 0,s 0...

全面深入linux系統(第二節命令)

1 linux的簡短介紹 linux是一套免費使用和自由傳播的 類unix 作業系統 是乙個基於 posix 和unix 的多使用者 多工 支援 多執行緒和多 cpu的作業系統。它能執行主要的unix工具軟體 應用程式和網路協議。它支援 32位和 64位硬體。linux繼承了 unix以網路 為核心...