如何設計一個作業系統

在本書中,筆者並沒有設計一個作業系統,自己都感到相當可惜,既然已經設計了 CPU0 的虛擬機、組譯器與編譯器,我們應當可以設計一個在 CPU0 上跑的作業系統,這是筆者的一個心願,相信應該在不久的未來可以完成這個任務。

台灣的黃敬群先生曾經寫過一個超小型的作業系統 CuRT,並且在 ARM 處理器上測試過,而中國的楊文博先生也寫了一本電子書,告訴我們如何在 IA32 上發展一個小型作業系統,請看參考文獻。

根據黃敬群的描述,作業系統的架構大致如下。

  • OS = Device driver + kernel + system call + shell
  • Kernel = 系統初始化 + 設定中斷表 + 設定 CPU 運作參數 + 設定記憶體管理單元 + 設定 timer + 設定堆疊 + 進入主程式 + 建立 Thread + 中斷處理程式 + Scheduler

有興趣的讀者可以觀看下列兩個網址,以取得更多的資訊。

參考文獻

  1. 黃敬群:Introduction to CuRT_v1
  2. 楊文博:免費電子書:使用開源軟體-自己動手寫作業系統, http://share.solrex.org/WriteOS/index_cht.html
  3. 30天打造OS!作業系統自作入門(附光碟), 作者:川合秀實, 譯者:王啟源、賴莉芳、張萍, 出版社:悅知文化。
  4. 自己動手寫-Orange’s 一個作業系統的實現(附光碟), 于淵, 松崗出版社。
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License