
現代的外殼
甚至在談論手寫的構建系統之前,我都需要提及esque.toml。這是一個配置文件,具有可用於自定義的大量選項。設置此功能花費了很多時間,這就是為什麼它現在是構建Esque OS的標準。
cargorustcddmtools (McOpy,MMD,...)dosfstools (mkfs.vfat)python >= 3python.tomlpython.xbstrap$ sudo apt install cargo rustc binutils mtools dosfstools python3 python3-pip ; pip install --user xbstrap toml y.py是受Rustc的x.py啟發的實用程序。您可以使用該目錄的Sysroot中可以找到的Esque.toml文件配置內核。該文件提供許多選項,在構建之前先查看它。
您可以簡單地使用
./y.py build
該系統非常可配置。只需鍵入
./y.py --help
查看所有選項。
首先,您必須輸入Esque.toml並將enable-kvm更改為false。
不建議在窗戶上建造。我是長期的Linux用戶,整個構建過程都是為我設計的,但是,使用winy.ps1構建,但尚未進行優化。
在Windows上,只能以與Linux上相同的方式執行某些y.py命令(示例: ./y.py build lun dd以創建IMG文件)。因此,您有兩個選擇
對於某些人來說,這可能是首選選項。在這種情況下,您可以運行所有命令,除了使用WSL ./y.py run 。
這需要上述Dependencies (On Linux)部分中列出的所有依賴項
winy.ps1是一個powershell腳本,可以決定本地運行和不進行。用法等於./y.py Eg ./winy run運行內核,並且./winy build使用WSL構建了內核的某些部分,而其他部分則是本質上的。
注意這需要您使您的執行程序繞過。您可以通過打開具有管理員特權的命令主機來暫時更改此操作並鍵入
Set-ExecutionPolicy Bypass這需要上面列出的所有依賴項,除了WSL上的貨物和Rustc。它需要窗戶上的貨物,Rustc和tar Binary。可以使用Rustup Binary rustup.rs輕鬆安裝所述依賴項
在WSL上運行以下命令(假設Ubuntu):
$ sudo apt install binutils mtools dosfstools python3 python3-pip ; pip install --user xbstrap toml操作系統應接近無依賴性。不幸的是,該系統取決於總共2個板條箱:
bitflags
spin
超過10多個我們自己的依賴性在crates/子目錄中維持。這些依賴性包括焦油加載器等等。
std::sync::{Mutex,...}的替代品。這是一個非常有用的板條箱,幾乎在所有主要的奧斯泰夫項目中都使用。將來可能會放下這個板條箱。 雖然它可能會產生更大的二進製文件,但可以說,C,它在剝離後仍會產生小型二進製文件。當前的內核大小約為300K,這對我來說是可以接受的。由於其巨大的“ UEFI”依賴性,Bootloader的大約270K。
Esque是一種核心,旨在團結Linux和Windows的各個方面,同時是一個類似於Exokernel的系統。 Exokernel是一個僅提供基本內容的內核,並且通過模塊加載了任何其他內容(例如網絡堆棧)。
由於Linux上的軟件可用性很大,因此Esque的目標是與之兼容。由於使用fake-root ,它可以實現文件系統兼容性。有兩個主要。真正的根和假根。假路徑的一個示例是/home/user/或/bin/* 。真正的根路徑始於設備:路徑方案。示例: initramfs:/myfile , C:/Binaries/* , B:/BOOT/EFI/BOOTX64.EFI C:/Users/User/ proc:/CpuInfo 。
Linux syscalls位於其實際位置(0、1、2、3、4 ...),而ESQUE SYSCALLS則位於(sys_num + 0x1000)
是的 - 否。在Esque中,應用程序有三種不同的虛擬“空間”。其中只有兩個是真實的。有
我知道,沒有多少人願意將自己的時間用於這樣的內核。無論大小,我仍然會很樂意歡迎任何貢獻。請閱讀貢獻文件並查看文檔目錄中的文件
在Initramf中,截至目前,沒有任何目錄支持。您只需將文件放入initramfs/ subdirectory即可創建一個新的InitraMF。然後,使用./y.py initramfs完成的initramfs將在build/initramfs.tar中找到。引導加載程序期望在根部分區上找到此文件。
然後,所有以.system結尾的文件將由Initramfs加載。預計所說的.system文件之一會加載文件系統。
雖然不可能沒有不安全代碼的操作系統是不可能的,但我試圖在此處限制它。在任何時候,
./y.py count-unsafe
可以調用將顯示有關代碼不安全性的信息。在寫作時,產生以下輸出:
A total of 52 occurences have been found (1641 LOC, 0.* percent Percent)
alloc板條箱