Ein Hobby -Betriebssystem, das mir hilft, etwas über Kernel zu lernen, um irgendwann in die Entwicklung von Linux -Kernel zu kommen. Derzeit unterstützt es:
Ich möchte den Code lesbar und gut organisiert machen. Ein Blog folgt der Entwicklung dieses Projekts, hier https://jmnl.xyz/, und das Wiki bietet weitere Informationen über das Projekt und seine Interna.
Installieren Sie die folgenden Pakete:
xorriso für Debian/Ubuntu; libisoburn auf archlinuxgrubmtoolsimagemagickqemu (empfohlen)bochs (optional)clang + Entwicklungspakete, z. B. base-devel auf Archlinux (optional)Laufen
make toolchain
Um den Cross-Compiler zu bauen, der benötigt wird, um Schneeflocken zusammenzustellen. In diesem Befehl wird Build-Skripte für gcc und binutils von GNU FTP-Servern heruntergeladen und ausgeführt und den Cross-Compiler in toolchain/compiler installiert.
Anstatt Ihre eigene Toolchain zu bauen, können Sie Snowflakeos mit clang Ihres Systems zusammenstellen: Überzeugen Sie einfach die folgende Gruppe von Linien im Makefile :
# CC=clang
# LD=ld
# AR=ar
# AS=as
# CFLAGS+=-target i386-pc-none-eabi -m32
# CFLAGS+=-mno-mmx -mno-sse -mno-sse2 Wenn Ihre Distribution Ihnen einen Cross -Compiler bietet, möchten Sie möglicherweise Zeit sparen und verwenden. Zu diesem Zweck müssen Sie die folgenden Variablen im Makefile bearbeiten, damit sie mit den ausführbaren Verhältnissen Ihres Cross -Compilers übereinstimmen:
AR=$(HOST)-ar
AS=$(HOST)-as
LD=$(HOST)-ld
CC=$(HOST)-gcc --sysroot=$(SYSROOT) -isystem=/$(INCLUDEDIR)
Sie können HOST bearbeiten oder die Namen ausführbaren Namen direkt bearbeiten.
Entweder laufen
make qemu # or
make bochs
Snowflakeos in einer VM zu testen. Weitere Optionen zum Kompilieren und Ausführen von Snowflakeos finden Sie im Bearbeitungs-/Debug -Zyklus.
Das Testen dieses Projekts auf echter Hardware ist möglich. Sie können SnowflakeOS.iso mit dd auf ein USB -Laufwerk kopieren, wie Sie es bei einem Live -USB eines anderen Betriebssystems tun würden, und es direkt starten.
Beachten Sie, dass dies selten getestet wird, wer weiß, was es tun wird :) Ich würde gerne davon hören, wenn Sie dies versuchen, auf welcher Hardware usw. ...
Beiträge sind in irgendeiner Form sehr willkommen! Wiki für die CONTRIBUTING.md für die Anleitung wenden.