我有一個班級專案來創建我自己的作業系統。我對此想了很多,現在一切看起來都很困惑

我有一個班級專案來創建我自己的作業系統。我對此想了很多,現在一切看起來都很困惑

我考慮過創建一個作業系統,現在我依靠你的建議來決定從哪裡開始製作它。

答案1

你是認真的?我的意思是,有很多粉絲製作的作業系統,但這是一項繁重而艱苦的工作!

首先,作業系統至少應具有:

  1. 引導程式:將核心推入 RAM,準備 TLB 並進行一些內務處理

  2. 核心:核心是作業系統最重要的部分,它管理程式之間的實體/虛擬記憶體映射、多任務、I/O 調度、IPC、互斥體等關鍵方面。根據作業系統的不同,有多種理念(單一架構,如 Linux 架構;混合架構,如 OS X 架構;或微內核,如未完成的 Hurd)。根據它的不同,管理系統各個方面的程式碼是核心程式碼或使用者程式碼。

  3. 用戶態應用程序,它將為用戶提供與機器的一些互動。

在 GNU/Linux 和 BSD 世界中,我們有幾個,例如:

引導程式:GRUB2、GRUB、LILO、ISOLINUX...

核心:Linux、kFreeBSD...

用戶態應用程式:GNU [或] BSD Coreutils、Bash、Xorg 以及無數其他應用程式 :)

不管怎樣,如果這是你的問題,這就是你的答案,如果需要更多信息,在下面的 wiki 中,有很多關於如何開始摸索每個方面的設計決策的內容:http://wiki.osdev.org/Main_Page

有很多關於引導程式如何運作、如何在沒有 stdio.h 等商品的情況下在裸機中編程的信息,而且確實有很多有用的信息。

相關內容