SnowflakeOS
v0.7
一個愛好的操作系統,可以幫助我了解內核知識,最終進入Linux內核發展。目前支持:
我的目標是使代碼可讀且組織良好。一個博客遵循此項目的開發,此處https://jmnl.xyz/,Wiki提供了有關該項目及其內部內容的更多信息。
安裝以下軟件包:
xorriso for Debian/Ubuntu; libisoburn在Archlinux上grubmtoolsimagemagickqemu (推薦)bochs (可選)clang +開發軟件包,例如Archlinux(可選)的base-devel跑步
make toolchain
為了構建編譯雪花製成所需的交叉補充商。此命令將從GNU FTP服務器下載並運行用於gcc和binutils的構建腳本,並在toolchain/compiler中安裝交叉補償器。
您可以使用系統的clang來編譯雪花鏈,而不是構建自己的工具鏈:只需輸入主要Makefile中的以下一組線:
# CC=clang
# LD=ld
# AR=ar
# AS=as
# CFLAGS+=-target i386-pc-none-eabi -m32
# CFLAGS+=-mno-mmx -mno-sse -mno-sse2 如果您的發行版為您提供交叉編譯器,則可能需要節省時間並使用它。為此,您必須在主Makefile中編輯以下變量,以使它們匹配交叉編譯器的可執行文件:
AR=$(HOST)-ar
AS=$(HOST)-as
LD=$(HOST)-ld
CC=$(HOST)-gcc --sysroot=$(SYSROOT) -isystem=/$(INCLUDEDIR)
您可以編輯HOST ,也可以直接進行硬碼。
運行
make qemu # or
make bochs
在VM中測試Snowflakeos。有關如何編譯和運行Snowflakeos的更多選項,請參見編輯/調試週期。
可以在實際硬件上測試此項目。您可以使用dd將SnowflakeOS.iso複製到USB驅動器,就像製作另一個操作系統的實時USB一樣,然後直接啟動它。
請注意,這很少經過測試,誰知道它會做什麼:)如果您嘗試此操作,我很想听聽哪種硬件等...
以任何形式都歡迎捐款!請諮詢CONTRIBUTING.md 。