作者簡介
陳毅(Ian)
Ian 目前是交大資工的碩士班學生,同時也是具有熱忱的 5G 軟體工程師。
喜歡學習各種不同新興技術,同時也深信技術分享能使自己成長,希望有朝一日能夠成為頂尖的軟體產業工作者。
這本書是我因為興趣學習作業系統時整理的筆記,很高興這個作品幫助到了很多像我一樣想要自學業系統的人,在我編寫內容的期間也收到了成功大學教授 Jserv 與金門大學陳鍾誠教授的協助肯定,相信這本書絕對能夠成為你系統開發的敲門磚。
✔臉書專頁:AwesomeCS
✔Software Developer @Saviah Technologies | Graduate Student @NYCU
✔Google DSC Leader @NCTU 2021
✔StarBugs 專欄寫手
✔COSCUP 2021 IT Team lead
✔曾在 SITCON、COSCUP、GDG DevFest、六角學院 擔任講者
如果有任何疑問想要聯絡作者,可以透過 LinkedIn 找到我(也歡迎認同我的技能XD):www.linkedin.com/in/ian-chen-88b70b1aa/
| CHAPTER 01 | 知己知彼百戰百勝
1-1 一次搞懂 ISA、CISC 與 RISC
1-2 數值系統與補數
1-3 關於計算機,你必須知道的事:CPU 快取
1-4 透過數位邏輯電路學習 Bitwise 操作
1-5 透過 RISC-V 模擬器搞懂指令管線化
1-6 淺談分支預測與 Hazards 議題
1-7 goto die? 那個 goto 到底能不能用啊?
1-8 IEEE-754 與浮點數運算
1-9 組譯器與連結器
| CHAPTER 02 | ISA 是什麼? 能吃嗎?
2-1 RISC V:: 關於基本暫存器
2-2 RISC V::RV32I 指令介紹
2-3 RISC V:: 中斷與異常處理 — 異常篇
2-4 RISC V:: 中斷與異常處理 – 中斷篇
2-5 RISC V:: 中斷與異常處理 -- PLIC 介紹
| CHAPTER 03 | 必須要會的實用工具
3-1 GNU Debugger
3-2 GNU Compiler Collection
3-3 Git
3-4 學習撰寫Makefile
3-5 善用 Linux man-pages
| CHAPTER 04 | 學習作業系統,從自幹開始!
4-1 UNIX、BSD 與 Linux 的愛恨情仇
4-2 Hello, OS!
4-3 實作動態記憶體分配
4-4 學習上下文交換
4-5 任務排程
4-6 再談中斷與異常
4-7 軟體與硬體的距離
4-8 淺談檔案系統
4-9 實作 Shell
4-10 淺談特權模式與模式切換
4-11 認識 Microkernel
| CHAPTER 05 | 並行程式設計(使用 C 語言)
5-1 Program, Process and Thread
5-2 POSIX Thread 介紹
5-3 並行程式的潛在問題 (一)
5-4 並行程式的潛在問題 (二)
5-5 並行程式的潛在問題 (三)