1000 行打造作業系統
嗨!在這本書中,我們將一步步從零開始打造一個小型作業系統。
你可能會對「作業系統」或「核心」的開發感到畏懼,但其實作業系統(特別是核心)的基本功能出奇地簡單。即使是常被認為龐大的開源軟體 Linux,在 0.01 版本時也只有 8413 行程式碼。如今的 Linux 核心規模龐大,但它一開始也只是個像你有興趣做的 side project 一樣。
我們將使用 C 語言實作基本的上下文切換 (context switch)、分頁 (paging)、使用者模式 (user mode) 、命令列 shell、磁碟驅動程式,以及檔案讀寫操作。聽起來好像很多,但其實總共只需 1000 行程式碼!
不過你要記得,這件事沒聽起來那麼簡單。打造自己的作業系統最難的部分在於除錯。在你自己實作 printf
之前,連用 printf
來除錯都做不到。你將需要學習在應用程式開發中從未用過的除錯技巧與技能。尤其是在完全從零開始時,你會遇到像是開機流程與分頁機制這些具挑戰性的部分。但別擔心!我們也會學習「如何為作業系統除錯」!
除錯越困難,當成功運作時就越有成就感。讓我們一同潛入刺激的作業系統開發世界吧!
- 你可以從 GitHub 下載範例程式碼。
- 本書以 CC BY 4.0 授權條款 釋出,文中的實作範例與原始碼則採用 MIT 授權條款。
- 本書的前提是你熟悉 C 語言與類 UNIX 環境。如果你曾經執行過
gcc hello.c && ./a.out
,那你就準備好了! - 本書最初是作為我所著書籍 微核心設計與實作(日文書)附錄內容所撰寫。
Happy OS hacking!