Zweiter Versuch, ein Betriebssystem zu machen
Stellen Sie sicher, dass die folgenden Programme installiert sind:
HINWEIS: Möglicherweise benötigen Sie mehr Pakete, um das SySroot zu erstellen, z flex bison automake autoconf autopoint gperf help2man texinfo libgmp-dev libmpc-dev libmpfr-dev
Auf Debian -basierten Systemen empfehle ich die Installation von LLVM, Clang und LLD von hier: https://apt.llvm.org
Wenn Sie ein aktuelles Debian-basiertes System (Ubuntu, Linux Mint, Pop_os!, Usw.) haben, können Sie die meisten von ihnen mit diesem Befehl installieren:
sudo apt install clang lld llvm xorriso tar qemu-system-x86 qemu-system-arm
Für Meson, Ninja und Xbstrap stellen Sie zunächst sicher, dass Sie Python und Python-Pip installiert haben und dann ausführen:
python -m pip install meson ninja xbstrap
Befolgen Sie diese Schritte, um das Betriebssystem zu erstellen und auszuführen:
Klonen Sie dieses Repo mit:
git clone --depth=1 https://github.com/ilobilo/ilobilix
Derzeit müssen Sie die Sysroot manuell erstellen:
boostrap.ymlmkdir build-sysrootpushd build-sysrootxbstrap init ..xbstrap install basesysroot in IloBilix-Quelle nicht vorhanden ist, die zum build-sysroot/system-root verlinkt, erstellen Sie sie mit:ln -s $BUILD_SYSROOT_DIR$/system-root $KERNEL_DIR$/sysrootln -s build-sysroot/system-root ../sysrootpopd Richten Sie das Build -System ein:
meson setup builddir --cross-file cross-files/meson-kernel-clang-(x86_64/aarch64)(-ccache).cross-file -Doptions=values
Bauen und laufen Sie den Kernel:
ninja -C builddir <see Ninja Targets>
| Zielname | Beschreibung |
|---|---|
| run_bios | Laufen Sie mit Legacy BIOS (nur auf x86_64) |
| run_bios_debug | Gleich, aber mit aktivierter Debugging |
| run_uefi | Laufen Sie mit UEFI |
| run_uefi_debug | Gleich, aber mit aktivierter Debugging |
| Norun | Führen Sie das Betriebssystem nicht aus |
Anmerkungen:
-d int und -monitor telnet:127.0.0.1:12345 . Wenn gdb -Option aktiviert ist, fügt -s -S hinzurun_bios verwendet, ansonsten run_uefi .| Projektoptionen | Standardwert | Beschreibung |
|---|---|---|
| kernel_cflags | Zusätzliche C -Compiler -Argumente für Kernel | |
| kernel_cxxflags | Zusätzliche CPP -Compiler -Argumente für Kernel | |
| modules_cflags | Zusätzliche C -Compiler -Argumente für Module | |
| modules_cxxflags | Zusätzliche CPP -Compiler -Argumente für Module | |
| kernel_ubsan | FALSCH | Aktivieren Sie Ubsanitizer im Kernel |
| modules_ubsan | FALSCH | Aktivieren Sie Ubsanitizer in Modulen |
| 5lvl_paging | FALSCH | Aktivieren Sie 5 Level Paging im Kernel |
| SYSCALL_DEBUG | FALSCH | SYSCall -Protokoll in der seriellen Konsole drucken |
| GDB | FALSCH | Fügen Sie beim Debuggen -s -S zu QEMU hinzu |
| nocakel | FALSCH | Deaktivieren Sie Qemu -Beschleuniger |
| VNC | FALSCH | Start QEMU VNC Server unter 127.0.0.1:5901 |
https://discord.gg/fm5gk3rps7