歡迎來到...呃... Brightsystem?
這是一個完全從頭開始寫的X86_64 OS,由您真正製作。
該項目是在沒有Github CodeStealer,OpenAI的ChatpThief或其他類似內容搜索內容的預測算法的情況下編寫的。
TLDR:中間 - 局部災難!樂趣!
_old具有功能性的內核,該內核使用了Phil-Opp的出色庫和其他一些庫。該代碼的記錄不是很高,但並不是太複雜了,因此應該很可讀。它是在我的HighSchool上為一個很棒的OS開發論壇而設計的。
其他一切都是我的無依賴性重寫。目前,它只有一個可以輸入64位模式的BIOS引導加載程序。下一步是實現精靈解析器,然後是精靈加載程序,然後加載內核(這僅是Elf文件)。
新版本的BS有充分的文獻記載,包括用於進一步研究的資源。我的一部分目標是製定這項出色的演示代碼,以供將來的程序員參考和學習。
每個文件夾都有一個讀數,希望可以自言自語,但是這裡有一個粗略的內容:此存儲庫:
boot :BS的引導程序中的所有板條箱。kernel :BS'BERNEL(目前為空直到寫精靈裝載器)。lib :BS使用的輔助庫。這具有構建工具,Frieren(WIP Elf Loader)和一個公共庫(很快將分為多個板條箱)。這些板條箱有自己的庫,因為它們在BS中被多個板條板使用(例如,Bootloader加載精靈,但最終的操作系統也將能夠使用)。qemu :將BS構建為最終磁盤並在Qemu啟動的板條箱。對於具有依賴性的舊功能版本的舊版本,請在_old文件夾中運行cargo r 。
新版本使用我的自定義構建系統Bargo,因此您需要先安裝該系統(不怕 - Bargo只有1個依賴項,無依賴性的TOML PARSER,並且應該在幾秒鐘內進行編譯)。 Bargo是貨物周圍的包裝紙,因此您可以使用它幾乎完全相同的方式bargo b構建, bargo r運行, -r以釋放模式,等等。
如果您想知道為什麼BS使用Bargo代替貨物,那是因為貨物沒有我需要的所有功能。我需要後構建腳本,並且能夠將build-std用於多個目標,因為引導加載程序的目標與內核和OS不同。我嘗試了幾個小時,但無法提出一種在香草貨物中實施此功能的理智方式。
這兩個版本都在QEMU中運行,因此請確保首先安裝了該版本。如果您想手動構建並運行它,則使用下命令的命令基本上歸結為: cargo b; qemu-system-x86_64 -drive format=raw,file=target/bs.bin,index=0 。對於舊版本,您需要加載文件_old/disk.bin而不是target/bs.bin 。