Werkzeugkette
Womit nullos heute gebaut wird – bis es sich selbst baut.
Was gebraucht wird
| Was | Wofür | Version¹ |
| Apple clang (Xcode / Command Line Tools) | Werkzeuge für den Mac (make host), den Compiler cc und die libc bauen, GNU make | 21.0.0, make 3.81 |
llvm (Homebrew) | clang für Kernel (ELF) und Bootloader (PE/UEFI) | 23.1.4 |
lld | ld.lld (Kernel, Programme für nullos), lld-link (Bootloader) | 23.1.4 |
qemu | nullos starten; bringt die UEFI-Firmware mit (edk2/OVMF, edk2-x86_64-code.fd) | 11.1.2 |
coreutils | timeout für den Boot-Test make check | 9.12 |
| Rosetta 2 | Die x86_64-Testprogramme von cc auf dem ARM-Mac ausführen | – |
bash 5 (Homebrew) | Gegenprobe für die Shell-Tests (ohne: gespeicherte Ergebnisse) | 5.3.20 |
python3 | tools/abgleich.py (Stand aller Werkzeuge), Prüfsumme im Boot-Test | 3.15.2 |
mtools | FAT32 für die Download-Abbilder und den Platten-Boot-Test (mformat, mcopy) – bis fs das übernimmt | 4.0.49 |
xorriso | die Live-ISO | 1.5.8 |
nasm | steht in der Installationsliste, wird bisher nirgends benutzt | 3.02 |
¹ So installiert auf Max' Mac (macOS 27.0.1, Apple Silicon), nachgeschaut mit brew info und
--version am 28.10.2026. Andere Versionen gehen wahrscheinlich auch – geprüft ist nur diese.
Frischer Mac – von null auf Prompt
xcode-select --install # Apple clang, make, git
softwareupdate --install-rosetta # für die cc-Tests
# Homebrew von brew.sh installieren, dann:
brew install llvm lld qemu nasm mtools xorriso coreutils bash
git clone … nullos && cd nullos # das Repo ist noch privat
make nullos-tools && make run
Die Pfade stehen oben im Makefile (LLVM, LLD, QEMU,
OVMF) und lassen sich überschreiben, z. B. make run LLVM=/pfad/zu/llvm/bin, wenn Homebrew woanders liegt.
Alle make-Ziele
| Ziel | Was |
make nullos-tools | Werkzeuge gegen die nullos-libc, landen in /bin |
make os | Bootloader + Kernel + init.img, Startpartition in build/esp |
make run | bauen + in QEMU starten (Fenster + serielle Konsole im Terminal) |
make check | ohne Fenster booten, Befehle tippen, Antworten prüfen |
make host | alle Werkzeuge für den Mac |
make test | alle Werkzeug-Tests |
make clean | build/ löschen |
make -C cc … | test stage2 stage3 tools as-cmp kernel test-arm64 stage3-arm64 test-qemu-arm64 test-qemu-riscv64 fuzz test-clang check clean |
make -C libc … | tools test-tools, mit TARGET=nullos für nullos |
Später: nur noch eigene Werkzeuge
Der eigene Compiler cc hat Assembler und ELF-Linker eingebaut und baut schon ganz nullos allein –
Kernel, libc, 280 Werkzeuge (make -C cc kernel). Er läuft sogar auf nullos und übersetzt sich dort
selbst. Nur Archive (.a) schreibt noch llvm-ar. Das eigene mk versteht das Makefile schon
(mk -n host = make -n host). Ziel: nullos baut sich auf nullos. kommt noch