不覺間已經在頭條更新了幾個LINUX內核模塊的分析文檔,為了讓自己持續進行分析,有必要對分析文檔進行規劃。說明已進行的分析模塊以及將要進行分析的模塊。
本次分析文章的輸出主要從幾個方面推進:
一、LINUX VFS模塊分析(已完結)
主要分析LINUX VFS模型,包括VFS與進程模塊的關聯,系統調用實現(open、read、write等)、文件系統的註冊等等,目前已完成的分析內容如下:
《
《 》
《 》
《 》
《 》
《 》
《 》
《 》
《 》
《 》
《 》
《 》
二、設備文件系統分析(已完結)
在理解LINUX VFS的基礎上,針對具體的文件系統進行分析,此處主要分析設備文件系統devtmpfs,在目前的內核中雖然還存在設備文件系統模塊,但大多數的系統均不會選擇該內核模塊,而是藉助sysfs的uevent、udev、mdev,通過在用戶層調用mknod接口實現inode的創建,而設備文件所依附的文件系統只要支持對設備文件的處理即可(比如ramfs等即可)。但為了理解原理此處還是分析了設備文件系統。目前完成的分析文檔如下:
《 》
三、sockfs分析(已完結)
在分析完devtmpfs之後,針對文件系統中比較特殊的模塊socket,分析sockfs的實現,而針對sockfs模塊,主要分析sockfs的註冊及掛載、sockfs相關協議簇以及具體協議的抽象與架構等。分析完這個文件系統,我們應該知道vfs與sockfs模塊的關聯等,同時也解決了我的一個疑問:sockfs既然也是文件系統,為什麼我們在文件系統中看不到socket對應的文件呢?(因為其目錄dentry只要不提供lookup等接口,我們就獲取不到相應的文件了)。目前已完成的內容如下:
《 》
《 》
《 》
《 》
四、sysfs文件系統分析(已完結)
在分析完sockfs後,接著就開始分析sysfs,因sysfs與linux設備驅動模型有很大關聯,因此若要理解設備驅動模型,則最好對sysfs文件系統有了解,針對sysfs文件系統主要包括文件系統註冊、文件創建及目錄創建以及文件相應的讀寫系統調用接口等。目前已完成的內容如下:
《 》
《 》
《 》
《 》
《 》
五、設備驅動模型分析(已完結)
在熟悉了sysfs的基礎上,我開始了設備驅動模型的分析,目前該模塊也已經完成,主要的分析如下:
《 》
《 》
《 》
《 》
《 》
《 》
六、PLATFORM模塊分析(已完成)
在完成了設備驅動模型分析後,我們就針對內核中如何使用設備驅動模型的部分進行實例分析,首先就分析PLATFORM模塊,包括總線註冊、設備註冊、驅動註冊等
《 》
七、I2C模塊分析(已完成)
此模塊可能會劃分幾個部分分析,目前規劃如下:
《 》
《 》
《 》
《 》
《 》
八、SPI模塊分析(待更新)
此模塊可能也會劃分幾個部分分析,規劃如下:
《SPI總體框架分析》
《SPI Master分析》
《SPI device and driver分析》
《SPI通用接口分析(供內核啟動模塊調用的讀寫接口等)》
九、混雜設備模塊分析(待更新)
十、看門狗模塊分析(待更新)
十一、LINUX MTD模塊分析(待更新)
此處也可能會劃分多個模塊
十二、終端設備驅動分析(待更新)
十三、字符設備模塊分析(待更新)
十四、PCI設備驅動模塊分析(待更新)
目前暫且規劃如此,後續會不斷更新該文中的鏈接
閱讀更多 jerry的編程路 的文章