- Linux設備驅動開發詳解:基于最新的Linux4.0內核
- 宋寶華
- 702字
- 2018-12-31 20:25:11
推薦序二
在翻譯了《Understanding the Linux Kernel》和《Linux Kernel Development》這兩本書后,每當有讀者詢問如何學習Linux內核時,我都不敢貿然給出建議。如此龐大的內核,各個子系統之間的關系錯綜復雜,代碼不斷更新和迭代,到底該從何入手?你的出發點是哪里?你想去的彼岸又是哪里?相應的學習方法都不同。
一旦踏入Linux內核領域,要精通Linux內核的精髓,幾乎沒有捷徑可走。盡管通往山頂的路有無數條,但每條路上都布滿荊棘,或許時間和毅力才是斬荊披棘的利器。
從最初到現在,Linux內核的版本更新達上千個,代碼規模不斷增長,平均每個版本的新增代碼有4萬行左右。在源代碼的10個主要子目錄(arch、init、include、kernel、mm、IPC、fs、lib、net、drivers)中,驅動程序的代碼量呈線性增長趨勢。
從軟件工程角度來看內核代碼的變化規律,Linux的體系結構相對穩定,子系統數變化不大,平均每個模塊的復雜度呈下降趨勢,但系統整體規模和復雜性分別呈超線性和接近線性增長趨勢。drivers和arch等模塊的快速變化是引起系統復雜性增加的主因。那么,在代碼量最多的驅動程序中,有什么規律可循?最根本的又是什么?
本書更多的是關于Linux內核代碼背后機理的講解,呈現給讀者的是一種思考方法,讓讀者能夠在思考中舉一反三。盡管驅動程序只是內核的一個子系統,但Linux內核是一種整體結構,牽一發而動全局,對Linux內核其他相關知識的掌握是開發驅動的基礎。本書的內容包括中斷、定時器、進程生命周期、uevent、并發、編譯亂序、執行亂序、等待隊列、I/O模型、內存管理等,實例代碼也被大幅重構。
明代著名的思想家王明陽有句名言“知而不行,是為不知;行而不知,可以致知”。因此在研讀本書時,你一定要親身實踐,在實踐之后要提升思考,如此,你才可以越過代碼本身而看到內核的深層機理。
陳莉君
西安郵電大學
- Linux設備驅動開發詳解:基于最新的Linux4.0內核
- Mastering ElasticSearch
- Arch Linux Environment Setup How-to
- Windows Phone 7.5 Data Cookbook
- Ubuntu Linux操作系統
- 高性能Linux服務器構建實戰:系統安全、故障排查、自動化運維與集群架構
- Windows 7中文版從入門到精通(修訂版)
- Linux服務器配置與管理
- OpenSolaris設備驅動原理與開發
- Building Telephony Systems With Asterisk
- Windows 10從新手到高手
- 大學計算機應用基礎實踐教程(Windows 7+MS Office 2010)
- Docker容器技術與應用
- 再也不踩坑的kubernetes實戰指南
- Serverless Architectures with Kubernetes