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