版本 abd0c4606195c04785bc623c5e573eaea3c5e306
Linux 核心設計 (Spring 2019)
- 第 1 週 (Feb 19): 誠實面對自己
- 注意: 每週均安排隨堂測驗,採計其中最高分的 8 次
- 學期評分方式: 隨堂測驗 (25%) + 個人作業 (25%) + 分組報告及專題 (25%)
+ 自我評分 (25%)
- 歷屆修課學生心得: 張家榮, 陳品睿, 蕭奕凱
- GNU/Linux 開發工具共筆:
務必 自主 學習 Linux 操作, Git, HackMD, LaTeX 語法
(特別是數學式), GNU make, perf, gnuplot
- 透過 Computer Systems: A
Programmer’s Perspective 學習系統軟體: 本學期教科書 (第 2
週可向助教購書)
- Bit-wise operations / bit-wise 的應用 / 以位元駕馭能量
- What
comes after Moore’s Law?: 隨著 Moore’s Law 時代的結束,
通用化硬體效能不再如以往快速進步, 因此軟硬體也必須因應如此的變化,
這篇點出 4 個面向:
- Ephemeral
applications (短暫的軟體):
這點是以企業軟體來談,許多組織的觀點認為軟體壽命比運作其的硬體來得長久。在許多大企業依然如此,然而後續將大量導入
mobile, web, analytics
與其他軟體,更趨向快速轉變以符合客戶與市場所需;
- New workloads, such as machine learning: 呼應諸多計算架構大師所說的
Domain-Specific Architecture (DSA);
- Cloud platforms:
對於雲端應用而言,使用者不會在意它是在哪種處理器與加速器上運作的;
- Open source software:
主要在於特定的軟體開發商因人力與成本而減少支援硬體的範圍,開放原始碼軟體這時能夠作為考慮方案。儘管無法消弭對硬體的相依性,但不像軟體開發商對硬體平台支援或不支援的要求;
- The
Era of General Purpose Computers is Ending:
過往是研究員和從業者就設計瓶頸與發熱問題來說明困境,這篇則由製程發展與已發生的現象,討論以下變遷:
- 能追上最先進製程的晶圓廠商越來越少
- TOP 500
中使用特殊晶片比例不斷上升
- 特殊化處理器各方面變得更為經濟實惠
- linked list
和非連續記憶體操作 / linked
list 題目分析
- 第 2 週 (Feb 26): C 語言程式設計
- 第 3 週 (Mar 5): 編譯器和連結器
- 第 4 週 (Mar 12): 計算機架構 CS:APP 第 3 章重點提示和練習
- 現代處理器設計:原理和關鍵特徵
- Arm 處理器: 系列講座導論,
架構和指令集, 基礎指令和開發環境, 虛擬化技術和應用
- 你可曾想過,就算選修了電機資訊相關科系大部份的課程,自己仍對每天用的手機,完全沒概念,是不是很沮喪呢?裡頭運作
ARM 處理器,但你知道裡面的 CPU pipeline 如何運作?裡頭的 cache
如何運作?四核心、八核心到底又如何運作?CPU 和 GPU 之間如何通訊?
- 系列講座預計涵蓋 ARMv7-A/M, ARMv8-A/M, virtualization extension,
以及對應的系統軟體技術,像是 big.LITTLE, hypervisor, 和 TEE
的概念介紹
- 虛擬機器設計與實作
- Linux: 透過 eBPF
觀察作業系統行為: 動態追蹤技術(dynamic
tracing)是現代軟體的進階除錯和追蹤機制,讓工程師以非常低的成本,在非常短的時間內,克服一些不是顯而易見的問題。它興起和繁榮的一個大背景是,我們正處在一個快速增長的網路互連異質運算環境,工程人員面臨著兩大方面的挑戰:
- 規模:無論是使用者規模還是機房的規模、機器的數量都處於快速增長的時代;
- 複雜度:業務邏輯越來越複雜,運作的軟體也變得越來越複雜,我們知道它會分成很多很多層次,包括作業系統核心和其上各種系統軟體,像資料庫和網頁伺服器,再往上有腳本語言或者其他高階語言的虛擬機器或執行環境,更上面是應用層面的各種業務邏輯的抽象層次和很多複雜的程式邏輯。
- 第 5 週 (Mar 19): Linux Process/Thread
- 第 6 週 (Mar 26)
- 第 7 週 (Apr 2): 停課一次
- 第 8 週 (Apr 9)
- 第 9 週 (Apr 16)
- 第 10 週 (Apr 23)
- 第 11 週 (Apr 30)
- 第 12 週 (May 7)
- 第 13 週 (May 14)
- 第 14 週 (May 21)
- 第 15 週 (May 28)
- 第 16 週 (Jun 4)
- 第 17 週 (Jun 11)
- 第 18 週 (Jun 18)