
现代的外壳
甚至在谈论手写的构建系统之前,我都需要提及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板条箱