標籤:linux
本博即時更新《Linux裝置驅動開發詳解(第3版)》的最新進展。
2014.6.30 目前初步完成4-9章,相對於第2版,這幾章主要的變更。
[F]是修正或升級;[N]是新增知識點;[D]是刪除的內容
第4章 《Linux核心模組》
[F]改正關於模組使用非GPL license的問題;
[F]修正關於__exit修飾函數的記憶體管理
第5章 《Linux檔案系統與裝置檔案》
[F]修正關於檔案系統與塊裝置驅動關係圖;
[N]增加應用到驅動的file操作調用圖;
[N]增加通過netlink接受核心uevent的範例;
[N]增加遍曆sysfs的範例;
[N]增加為kingston 隨身碟編寫udev規則的範例;
[F]更新udev規則,以符合新版本;
[N]增加udevadm的講解;
[N]高亮Android vold
第6章 《字元裝置驅動》
[F]更新file_operations的定義,升級ioctl()原型;
[N]增加關於Linux access_ok()的講解以及Linux核心安全性漏洞的說明;
[F]修正globalmem的編碼風格;
[F]在globalmem支援2個以上執行個體的時候,從直接2個執行個體,升級為支援N個執行個體;
第7章 《Linux裝置驅動中的並發控制》
[N]繪圖深入講解單核和多核下的各種競態;
[N]增加關於編譯亂序,執行亂序,編譯屏障和記憶體屏障的講解;
[N]增加關於ARM LDREX/STREX指令的講解;
[N]對spin_lock單核和多核的使用情境進行深入分析;
[F]重新整理RCU的講解方法和執行個體;
[F]明確指明訊號量已淘汰;
[F]將globalmem中使用的訊號量換為mutex;
第8章 《Linux裝置驅動中的阻塞與非阻塞I/O》
[N]新增阻塞和非組塞的時序圖;
[F]修正globalfifo的編碼風格;
[F]修正globalfifo可讀可寫的if判斷為while判斷;
[N]新增select的時序圖;
[N]新增EPOLL的章節;
第9章 《Linux裝置驅動中的非同步通知與非同步I/O》
[F]修正關於glibc AIO支援;
[F]修正關於核心AIO支援;
[F]修正驅動AIO介面;
[D]刪除關於驅動AIO支援的錯誤執行個體;
[N]高亮C10K問題;