Linux Kernel Doxography
這份資料嘗試把近幾年 Linux 相關的 conference 依照領域進行分類,以作為接觸 Linux kernel 時的參考資料。
這裡正在逐步將一些內容依照主題拆分出去。目前已經拆分的部分有:
- 110-1 計算機網路概論(清大開放式課程):Linux network stack 相關的資訊會放在這邊,像是 network interface 的簡介、XDP、traffic control、netfilters 等等,以及與 container 技術相關的 network namespace。這裡面原先是我學習黃能富老師在清大開放式課程開的計算機網路概論時的筆記,後來把 Linux 相關主題也整理進去。
- Embedded Linux References:整理 嵌入式 Linux 相關的主題,從 devicetree、硬體周邊、U-boot、Buildroot 等等。
- Zephyr RTOS References:主要整理 Zephyr 這個即時系統相關的資訊。
更多資源
- jserv 系列:我覺得應該不會有人不知道這個(?)
- Bootlin 上面的訓練文件:除了 Bootlin 有參與的演講資料之外,裡面的 Complete training material 部分的資料是 2020 年 8 月才剛上傳的,內容包含驅動程式開發、圖形介面相關驅動,以及 Buildroot 跟 Yocto 等 build system 的教學。
- people.kernel.org:裡面都是核心維護者親自寫的部落格文章,一直到 2020 年 12 月都有更新
- kernel newbies:介紹核心不同版本的更動。
- Linux Kernel Development
前言 - Learn Kernel the Doxographical Way
古希臘犬儒學派哲學家第歐根尼幾乎把所有叫得出名字的古希臘哲學家都罵了一遍。因為罵過的哲學家太多,現代的學者們得以透過研究他的言論,推敲其他古希臘哲學家佚失的學說。這種「從一個哲學家口中的言論,考證另外一個哲學家」的方法,稱為 doxography。
在嘗試理解 Linux 時,往往會碰到資料過時的問題。許多被視為經典的書籍,大多都是將近 10 年前的產物了。舉例來說,LDD 一書已經是 15 年前的資料,Linux Kernel Development 也是 10 年前的書。在只看文件不確定自己理解是否正確,而需要閱讀各種材料的時候,往往就需要花費心力確認資訊是否過時。這個確認的過程免不了花費不少心力 (至少對我來說是如此)。
在這個過程中,除了 git log
或 LWN 之外,另外一個有效的方法就是從各大研討會的講者口中去理解 kernel 的功能。比如說:
-
不少演講會直接以特定議題為主題,如Timekeeping in the Linux Kernel,或是 Introduction to Memory Management in Linux 這類的演講。
-
有的演講主題雖然不會直接介紹核心的某個部分,但在過程中會它做一定程度的介紹與歷史回顧。舉例來說,The Power-Supply Subsystem 這個演講標題也許看不出什麼端倪,但演講過程中一步一步展示了實作一個 platform driver 的過程,對於新手來說非常有用; USB Arsenal for Masses 這個演講主要是討論 USB 的資訊安全議題,但也同時簡介了 USB 各層。
諸如此類的狀況讓我覺得依照主題把這些演講進行有系統的分類,或許會是個有用的資源。
目前來說,計畫整理以下內容:
- 大約三年以內 Linux Foundation 的各個演講、Kernel Recipe、Linux Plumber 等研討會的影片:裡面若部分回顧到核心子系統,就會把它整理近對應的分類中。而 COSCUP 的主題若有相關,也會放進去。
目錄
Linux Kernel Doxography
The Culture
Booting
System Call
Process
Memory
I/O
File System
Virtualization
(MISC) Automotive
Miscellaneous