iT邦幫忙

2021 iThome 鐵人賽

DAY 1
0
Software Development

閱讀 Linux Kernel 文件系列 第 1

# Day1 簡介

Linux 是一個泛用型的作業系統,在各式各樣、形形色色的機器上都找的到他的蹤跡,
而 Linux Kernel 文件,大概可以算是認識 Linux 內部設計,
或廣泛的來說,認識作業系統實作細節的第一步吧!

參賽目的

  • 養成每天學習的習慣
    主要是想要讓自己養成每天學習和紀錄學習歷程的習慣,而且和同事一起參賽感覺很有趣!
  • 練習文筆
    期許自己能夠和參賽同事一樣,能洋洋灑灑、言之有物的把想要表達得東西,用精準的詞語、深入淺出的方式,清清楚楚地以文章的形式,傳達給各位讀者;並且對每一個自己使用的詞語、技術名詞、技術細節都有很高的掌握度!

接下來,向各位工商一下,同事們的深度系列文:

這篇系列文的安排

  • 目前是打算以閱讀筆記的形式來進行,並且將閱讀文件中,知之並不甚詳的部分也一併檢閱和記錄下來
  • 行有餘力的話,會將閱讀過的文件翻譯過後,送 kernel documentation patch
  • 預計閱讀的文件類別列舉如下:
    1. riscv 相關文件開始: 公司主要使用的是 RISC-V 架構,所以和 RISC-V 相關的文件實在是不能不看
    2. Cache and TLB Flushing Under Linux: 先前工作項目中,有經歷和 cache 操作相關的項目,但當時沒有好好的仔細閱讀這份文件,是時候補足少小不努力的部分了
    3. cgroup v1 相關: 最近的工作項目中,有 cgroup 相關項目
    4. high resolution timer 相關: 同上
    5. DVFS: 最近剛好同事有碰到相關業務
    6. 其餘的就等上述的看完再說囉 XD

文件數量真的族繁不及備載,並且有許多有趣的文件,例如: Kernel tracing、Kernel Virtualization、...,但這些文件數量都非常的龐大,希望有機會能好好的閱讀和記錄他們

暖身一下:

arch/riscv 開發人員的維護守則
=============================

概述
----
RISC-V 指令集架構是公開開發的:
正在開發中的草案可供所有人檢閱和實驗自己的實作。
新模組或擴充指令集的草案可能會在開發過程中發生變化——
有時會變化的與先前的草案不相容。
這樣的彈性可能會對 RISC-V Linux 的維護帶來挑戰。
Linux 維護者反對混亂,且 Linux 開發過程更傾向接受,經過仔細審查和測試的程式碼而非實驗性質的程式碼。
我們希望將相同的原則,運用在檢視這些可能被接受且放進核心的 RISC-V 相關程式碼中。

附註提交檢查事項
------------------
我們將只會接受,和那些被 RISC-V 基金會列為"凍結"或是"批准生效"的模組和擴充指令集相關的 patches。
(當然,開發人員可以自行維護含有他們想要有的擴充指令集的 Linux 核心程式碼。)

此外,RISC-V 規格允許實作者創造自己的擴充指令集。
這些自己定義的擴充指令集不需要經過 RISC-V 基金會的任何審查或批准過程。
為了避免這些擴充指令集造成維護的複雜性,以及對效能產生影響,
我們將只接受已被 RISC-V 基金會正式"凍結"或"批准"的擴充指令集實作。
(當然,實作者可以自行維護含有自己擴充指令集實作的 Linux 核心程式碼。)

送一下 patch

$ git send-email --to corbet@lwn.net \
                 --to src.res@email.cn \
                 --to linux-doc-tw-discuss@lists.sourceforge.net \
                 --cc linux-doc@vger.kernel.org \
                 --cc ycliang@cs.nctu.edu.tw \
                 --cc ycliang@andestech.com \
                 0001-docs-zh_TW-Add-translation-for-riscv-patch-acceptanc.patch

後記

  • patch archive:marc.info,看到這個網頁的時候,嚇了一大跳,想說自己是不是編碼設定有誤,炸了一大堆看不懂的東西到 mailing list 上面;
  • patch archive:spinics.net,到這裡看,才發現應該是虛驚一場,看起來是前一個網站的 rendering 出了一些狀況,呼~XD

註記

[1] RISC-V 是一個開源的指令集架構,使用者能夠自行定義不同的擴充指令集
[2] 在 Spec 的 Prefix 有註明: Frozen: 在 ratification 前可能會有小改動,但不應該有任何大的改動Ratified: 則是以生效的
[3] 關於RISC-V 更詳細的說明,強烈推薦閱讀 予焦啦!Hoddarla 專案起步:使用 Golang 撰寫 RISC-V 作業系統的初步探索 以及 Port Alpine Linux to open source RISC-V platform,當然 Specification 也是可以啦XDD

今天就先這樣囉!感謝收看!


下一篇
# Day2 Boot image header in RISC-V Linux
系列文
閱讀 Linux Kernel 文件30

尚未有邦友留言

立即登入留言