第1章 引言
1.1 演進
1.2 GNUCopy1eft
1.3 kerne1.org
1.4 郵件列表和論壇
1.5 Linux發(fā)行版
1.6 查看源代碼
1.7 編譯內核
1.8 可加載的模塊
1.9 整裝待發(fā)
第2章 內核
2.1 啟動過程
2.1.1 BIOS.pmvided physica1 RAM map
2.1.2 758MB LOWMEM avai1ab1e
2.1.3 Kerne1 command 1in:r oroot=/dev/hda1
2.1.4 Ca1ibrating de1ay BogoMIPS(1pj=2394935)
2.1.5 Checking HLT instruction
2.1.6 NET:Registered protoco1 fami1y2
2.1.7 Freeing initrd memory:387kfreed
2.1.8 io schedu1er anticipatory registered(defau1t)
2.1.9 Setting up standard PCI resources
2.1.10 EXT3-fs:mountedfi1esystem
2.1.11 INIT:version2.8 5booting
2.2 內核模式和用戶模式
2.3 進程上下文和中斷上下文
2.4 內核定時器
2.4.1 HZ和Jiffies
2.4.2 長延時
2.4.3 短延時
2.4.4 Pentium時間戳計數器
2.4.5 實時鐘
2.5 內核中的并發(fā)
2.5.1 自旋鎖和互斥體
2.5.2 原子操作
2.5.3 讀一寫鎖
2.5.4 調試
2.6 proc文件系統(tǒng)
2.7 內存分配
2.8 查看源代碼
第3章 內核組件
3.1 內核線程
3.1.1 創(chuàng)建內核線程
3.1.2 進程狀態(tài)和等待隊列
3.1.3 用戶模式輔助程序
3.2 輔助接口
3.2.1 鏈表
3.2.2 散列鏈表
3.2.3 工作隊列
3.2.4 通知鏈
3.2.5 完成接口
3.2.6 kthread輔助接口
3.2.7 錯誤處理助手
3.3 查看源代碼
第4章 基本概念
4.1 設備和驅動程序介紹
4.2 中斷處理
4.2.1 中斷上下文
4.2.2 分配IRQ號
4.2.3 設備實例:導航桿
4.2.4 softirq和task1et
4.3 Linux設備模型
4.3.1 udev
4.3.2 sysfs、kobject和設備類
4.3.3 熱插拔和冷插拔
4.3.4 微碼下載
4.3.5 模塊自動加載
4.4 內存屏障
4.5 電源管理
4.6 查看源代碼
第5章 字符設備驅動程序
5.1 字符設備驅動程序基礎
5.2 設備實例:系統(tǒng)CMOS
5.2.1 驅動程序初始化
5.2.2 打開與釋放
5.2.3 數據交換
5.2.4 查找
5.2.5 控制
5.3 檢測數據可用性
5.3.1 輪詢
5.3.2.Fasync
5.4 和并行端口交互
5.5 RTC子系統(tǒng)
5.6 偽字符驅動程序
5.7 混雜驅動程序
5.8 字符設備驅動程序注意事項
5.9 查看源代碼
第6章 串行設備驅動程序
6.1 層次架構
6.2 UART驅動程序
6.2.1 設備實例:手機
6.2.2 RS.4 85
6.3 TTY驅動程序:
6.4 線路規(guī)程
6.5 查看源代碼
第7章 輸入設備驅動程序
7.1 輸入事件驅動程序
7.2 輸入設備驅動程序
7.2.1 ser1o
7.2.2 鍵盤
7.2.3 鼠標
7.2.4 觸摸控制器
7.2.5 加速度傳感器
7.2.6 輸出事件
7.3 調試
7.4 查看源代碼
第8章 I2C協議
8.1 12C/SMBus是什么
8.2 I2C核心
8.3 總線事務
8.4.設備實例:EEPROM
8.4.1 初始化
8.4.2 探測設備
8.4.3 檢查適配器的功能
8.4.4 訪問設備
8.4.5 其他函數
8.5 設備實例:實時時鐘
8.6 i2c.dev
8.7 使用LM.Sensors監(jiān)控硬件
8.8 SPI總線
8.9 Wire總線
8.10 調試
8.11 查看源代碼
第9章 PCMCIA和CF
9.1 PCMCIA/CF是什么
9.2 Linux—PCMCIA子系統(tǒng)
9.3 主機控制器驅動程序
9.4 PCMCIA核心
9.5 驅動程序服務
9.6 客戶驅動程序
9.6.1 數據結構
9.6.2 設備實例:PCMCIA卡
9.7 將零件組裝在一起
9.8 PCMCIA存儲
9.9 串行PCMCIA
9.10 調試
9.11 查看源代碼
第10章 PCI
10.1 PCI系列
10.2 尋址和識別
10.3 訪問PCI
10.3.1 配置區(qū)
10.3.2 I/O和內存
10.4 DMA
10.5 設備實例:以太網一調制解調器卡
10.5.1 初始化和探測
10.5.2 數據傳輸
10.6 調試
10.7 查看源代碼
第11章 USB
11.1 I.ISB體系架構
11.1.1 總線速度
11.1.2 主機控制器
11.1.3 傳輸模式
11.1.4 尋址
11.2 Linux.USB子系統(tǒng)
11.3 驅動程序的數據結構
11.3.1 usb—device結構體
11.3.2 URB
11.3.3 管道
11.3.4 描述符結構
11.4 枚舉
11.5 設備實例:遙測卡
11.5.1 初始化和探測過程
11.5.2 卡寄存器的訪問
11.5.3 數據傳輸
11.6 類驅動程序
11.6.1 大容量存儲設備
11.6.2 USB.串行端口轉換器
11.6.3 人機接口設備
11.6.4 藍牙
11.7 gadget驅動程序
11.8 調試
11.9 查看源代碼
第12章 視頻驅動程序
12.1 顯示架構
12.2 Linux視頻子系統(tǒng)
12.3 顯示參數
12.4 幀緩沖API
12.5 幀緩沖驅動程序
12.6 控制臺驅動程序
12.6.1 設備實例:手機
12.6.2 啟動1ogo
12.7 調試
12.8 查看源代碼
第13章 音頻驅動程序
13.1 音頻架構
13.2 Linux聲音子系統(tǒng),
13.3 設備實例:MP3播放器
13.3.1 驅動程序函數和結構體
13.3.2 ALSA編程
13.4 調試
13.5 查看源代碼
第14章 塊設備驅動程序
14.1 存儲技術
14.2 Linux塊I/O層
14.3 I/O調度器
14.4 塊驅動程序數據結構和方法
14.5 設備實例:簡單存儲控制器
14.5.1 初始化
14.5.2 塊設備操作
14.5.3 磁盤訪問
14.6 高級主題
14.7 調試
14.8 查看源代碼
第15章 網絡接口卡
15.1 驅動程序數據結構
15.1.1 套接字緩沖區(qū)
15.1.2 網絡設備接口
15.1.3 激活
15.1.4 數據傳輸
15.1.5 看門狗
15.1.6 統(tǒng)計
15.1.7 配置
15.1.8 總線相關內容
15.2 與協議層會話
15.2.1 接收路徑
15.2.2 發(fā)送路徑
15.2.3 流量控制
15.3 緩沖區(qū)管理和并發(fā)控制
15.4 設備實例:以太網NIC
15.5 ISA網絡驅動程序
15.6 ATM
15.7 網絡吞吐量
15.7.1 驅動程序性能
15.7.2 協議性能
15.8 查看源代碼
第16章 Linux無線設備驅動
16.1 藍牙
16.1.1 B1ueZ
16.1.2 設備實例:CF卡
16.1.3 設備實例:USB適配器
16.1.4 RFCOMM
16.1.5 網絡
16.1.6 HID
16.1.7 音頻
16.1.8 調試
16.1.9 關于源代碼
16.2 紅外
16.2.1 Linux—IrDA
16.2.2 設備實例:超級I/0芯片
16.2.3 設備實例:IRDong1e
16.2.4 IrCOMM
16.2.5 聯網
16.2.6 IrDA套接字
16.2.7 LIRC
16.2.8 查看源代碼
16.3 WiFi
16.3.1 配置
16.3.2 設備驅動程序
16.3.3 查看源代碼
16.4 蜂窩網絡
16.4.1 GPRS
16.4.2 GDMA
16.5 當前趨勢
第17章 存儲技術設備
17.1 什么是閃存
17.2 Linux.MTD子系統(tǒng)
17.3 映射驅動程序
17.4 NOR芯片驅動程序
17.5 NAND芯片驅動程序
17.6 用戶模塊
17.6.1 塊設備模擬
17.6.2 字符設備模擬
17.6.3 JFFS2
17.6.4 YAFFS2
17.7 MTD工具
17.8 配置MTD
17.9 XIP
17.10 FWH
17.11 調試
17.12 查看源代碼
第18章 嵌入式Linux
18.1 挑戰(zhàn)
18.2 元器件選擇
18.3 工具鏈
18.4 Boot1oader
18.5 內存布局
18.6 內核移植
18.7 嵌入式驅動程序
18.7.1 閃存
18.7.2 LIART
18.7.3 按鈕和滾輪
18.7.4 PCMCIA/CF
18.7.5 SD/MMC
18.7.6 USB
18.7.7 RTC
18.7.8 音頻
18.7.9 觸摸屏
18.7.10 視頻
18.7.11 CPLD/FPGA
18.7.12 連接性
18.7.13 專用領域電子器件
……
第19章 用戶空間的驅動程序
第20章 其他設備和驅動程序
第21章 高度設備驅動程序
第22章 維護與發(fā)布
第23章 結束語
附錄