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 。