我考慮過創建一個作業系統,現在我依靠你的建議來決定從哪裡開始製作它。
答案1
你是認真的?我的意思是,有很多粉絲製作的作業系統,但這是一項繁重而艱苦的工作!
首先,作業系統至少應具有:
引導程式:將核心推入 RAM,準備 TLB 並進行一些內務處理
核心:核心是作業系統最重要的部分,它管理程式之間的實體/虛擬記憶體映射、多任務、I/O 調度、IPC、互斥體等關鍵方面。根據作業系統的不同,有多種理念(單一架構,如 Linux 架構;混合架構,如 OS X 架構;或微內核,如未完成的 Hurd)。根據它的不同,管理系統各個方面的程式碼是核心程式碼或使用者程式碼。
用戶態應用程序,它將為用戶提供與機器的一些互動。
在 GNU/Linux 和 BSD 世界中,我們有幾個,例如:
引導程式:GRUB2、GRUB、LILO、ISOLINUX...
核心:Linux、kFreeBSD...
用戶態應用程式:GNU [或] BSD Coreutils、Bash、Xorg 以及無數其他應用程式 :)
不管怎樣,如果這是你的問題,這就是你的答案,如果需要更多信息,在下面的 wiki 中,有很多關於如何開始摸索每個方面的設計決策的內容:http://wiki.osdev.org/Main_Page
有很多關於引導程式如何運作、如何在沒有 stdio.h 等商品的情況下在裸機中編程的信息,而且確實有很多有用的信息。