本科生實驗做一個操作系統項目,應該如何開始呢?

謝謝熱心的知友

vczh   (專業造輪子,前排已拉黑。gaclib.net)     972018-09-03 00:55:16

首先確定自己的操作系統只運行在hyper-v裡面,所以你可以寫一些其實並不真正跨硬體的代碼,沒關係,反正只是做著玩的。

其次,你可以去下載Intel的開發手冊,其中有一本就是在教你如何動手寫操作系統的。當然這些都是最基礎的內容,你寫出來的操作系統除了可以運行以外什麼都幹不了。虛擬內存是包括在這本書裡面的,然後你就可以寫一個簡單的鍵盤驅動程序和命令行屏幕驅動程序,和一個超級垃圾的沒有文件夾的文件系統的驅動程序。整出最開始的一批API。

等你終於可以實現載入【自己發明的exe格式】來往屏幕上打字之後,你就可以開始去改clang++,讓他生成你的格式,然後用這個新的後端吧clang++編譯一遍。然後clang++自帶的STL你也改一通,把底層的東西換成調用你自己的API的代碼。兩個一合併你就有屬於你的操作系統的C++編譯器了。

接下來隨便玩。因為從這一刻開始,你終於可以用C++來編寫你的操作系統和裡面的程序,而不是一個指令一個指令慢慢寫了。你首先可以把你的超級垃圾的沒有文件夾的文件系統的驅動程序換成一個正常的,然後開始編寫你的網路協議棧(不考慮性能的話,看一下標準一天就做出來了,很簡單的),然後就可以開始添加你的應用程序了。最重要的是,所有的開發工作都可以在你自己的操作系統裡面完成,爽的一筆(逃

知乎用户     32018-09-03 01:54:27
看來那個30天自製操作系統還是太low,照輪子哥這個方法最多一個星期
溫酒     12018-09-03 02:03:32

硬核之路……你怎麼不教點簡單的……?