owned this note changed 4 years ago
Linked with GitHub

Let's Publish a Collaborative e-Book for Linux Kernel - jserv (黃敬群), 黃睿澤 (Jui-Tse Huang)

tags: COSCUP2021 Beginner zh-tw COSCUP2021 System Software TR309

歡迎來到 https://hackmd.io/@coscup/2021 共筆

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

點擊本頁上方的 開始用 Markdown 一起寫筆記!
手機版請點選上方 按鈕展開議程列表。

Slido

演講所用的簡報

藉由 Linux 重新認識這世界

Dominic Walliman製作的〈Map of Computer Science〉短片(具備繁體中文字幕),簡潔且深刻地探討電腦科學的多個面向,諸如電腦網路、圖形處理、抽象機器及理論(如 Turing machine)、NP-Complete 問題、計算機架構、排序演算法、資料壓縮、現代密碼學、形式化方法、作業系統排程、異質多核心運算、編譯器,和程式語言等等。

上述議題幾乎涵蓋在今日的Linux核心中,換言之,Linux核心已不只是個「核心」,應看待為資訊科技的「基礎建設」,因此,電腦科學的子學科幾乎都可反映在 Linux 核心中。

Linux 核心專書數量不多且陳舊

Linux 核心的排程器考量因素眾多

  • 多核處理器的負載平衡/任務遷徙
  • 以功耗為基礎的排程策略
  • 動態電壓和頻率調整
  • CPU 頻寬控制

CFS 排程器

  • 自 Linux v2.6.23 引入的 CFS 排程器旨在將 CPU 資源按照一定比例分配給所有的行程,為了達到這個目的,CFS 引入了 virtual runtime 這個特性,在排程時,核心會選擇當前 virtual runtime 最低的行程。
  • Nice 值在 CFS 中扮演著優先權的角色,透過它將實際的 runtime 進行一定比例的縮放後,便得到該行程的 virtual runtime。
  • 值得注意的是,不同的 nice 值只決定了不同的縮放比例,一個行程所能擁有 CPU 資源的時間則會取決於其餘共同分享 CPU 資源的行程。例如,當今天有兩個不同 nice 值的行程,則由於 nice 值較小者 (優先權較高) 的 virtual runtime 增加幅度較小,因此在前點排程的原則下,其將更有機會被排程器選中。而若兩個行程的 nice 值皆為 -20 (最高的優先級),此時兩者 virtual runtime 增加的幅度相同,因此從宏觀看來,此二個行程會平分 CPU 的計算資源!而這正是 CFS 全名 Completely Fair Scheduler 裡頭 "Fair" 一詞的意義。

更新和改造《The Linux Kernel Module Programming Guide》

LaTeX 草稿和範例程式碼: GitHub

真正的問題在於經營和維護

  • 電子書應該要自由流通並接受公眾檢閱
  • 「與時俱進」反映可觀的維護成本
  • Linux 核心不只變革快,還持續面對新的技術挑戰
  • 需要創造正向循環和誘因設計

開放文化基金會 (OCF) 合作

  • 書籍訂閱的資訊將由開放文化基金會定案後公佈
    • 預計在 2021 年底
  • 訂閱/捐款者的權益
    • 取得最新的書稿,優先和作者群討論
    • 獲得導讀和解說短期課程的優惠
    • 提出想理解的 Linux 核心主題,由作者群進行撰述和補充
    • 問答和技術諮詢
    • 部分內容的客製化(用於產品的手冊或參考指引)

邀請您進行協作

  • 試閱和回報錯誤,特別是英語書寫的改進
  • 編輯並改進 LaTeX 草稿
  • 貢獻新的子主題
  • 設計練習題和作業
  • 提供開發環境(不同的硬體或虛擬機器)的測試報告和建議
  • 重新製圖和美化
  • 排版和輸出為多種格式 (如 HTML 和 EPUB)
  • 建議可洽談重新授權的 Linux 書籍或技術報告
  • 引介企業贊助

敬請聯絡

  • 發送電子郵件到 <jserv@ccns.ncku.edu.tw>,告知可幫忙試閱、校對、貢獻內文、提供練習題目、進行實驗、向量製圖、視覺改進,或推薦參考素材
  • 也可發送訊息到Facebook粉絲專頁「jserv與他愉快的小夥伴

問與答

Q: 研究 scheduler 需要的數學,有沒有個讀書單?
A: 書單在我們書本裡面就有,跟我聯繫可以取得草稿,或是等到明年發出。書單很長。

Q: 如何與時俱進?
A: 要改變出版方式,傳統出版有第一版第二版第三版,但我們書沒有這個困擾,我沒有打算靠這個獲利。探討之後發布,可以吸引開發者投入。他可以幫忙寫那一段,甚至跟OCF也在談透過其他機會去取得現有材料的重新授權,背後有很多法律的溝通。可以看到這本書跟過去真的很不一樣,過去賣完一刷兩刷三刷再出新的版本,這是出版業的常態,但我們沒有這個包袱。看能不能克服過去書籍的老舊問題。

Q: 書的 LaTeX 在 GitHub 嗎?
A: 是的,穩定版本和開發中版本都在 GitHub,前者會公開。

Select a repo