Installing
Image onto the medium, boot the computer from it. So far this only works in QEMU – still untested on real hardware.
⚠ Careful, pick the right drive! Writing an image
completely overwrites the target. One typo – and the wrong disk is empty. Check carefully beforehand
which device the stick is (on the Mac: diskutil list), unplug the stick, plug it back in
and see what disappears and comes back. When in doubt: better not.
That's why the NULLos tools themselves never write to real devices on the Mac, only to image files.
Getting it onto the stick is done by hand only.
USB stick
Write the .img raw onto the stick. On the Mac (replace N with the right number!):
diskutil list # which one is the stick?
diskutil unmountDisk /dev/diskN
sudo dd if=nullos-0.3-x86_64.img of=/dev/rdiskN bs=4m
diskutil eject /dev/diskN
Then boot the PC from the stick (boot menu, usually F12, F11 or Esc).
Secure Boot must be off – nb is not signed.
Status: In QEMU the image boots as a USB stick, as a SATA disk and as an NVMe SSD up to the shell, the tools run. On a real PC: coming soon
You can also build it yourself with our own tools: a script in the repo uses
part and fs to make a bootable image from the built boot partition.
Live CD/DVD (ISO)
Burn the .iso or insert it as a CD in VirtualBox, UTM or QEMU and boot. Nothing gets installed.
qemu-system-x86_64 -machine q35 -m 256M \
-drive if=pflash,format=raw,readonly=on,file=/opt/homebrew/share/qemu/edk2-x86_64-code.fd \
-device virtio-rng-pci -cdrom nullos-0.3-x86_64.iso
virtio-rng-pci gives NULLos good randomness from the host – without it, it waits about 20 seconds at startup until enough randomness is collected.
The ISO is “hybrid”: written to a stick with dd as above, it boots from there too.
Status: checked in QEMU as a CD and as a USB stick up to the shell.
Hard disk or SSD (permanent install)
Don't just splat the .img over it: the partition would only be 63 MiB and the backup
partition table would sit in the middle of the disk. There's an installer for that, which sets everything up to fit the disk:
sh tools/release/inst.sh -n -s 512 nullos-0.3-x86_64.img platte.img # dry run
sh tools/release/inst.sh -s 512 nullos-0.3-x86_64.img platte.img # 512 MiB disk
It shows the target with size and contents, and you have to type the target's name – a “y” is not enough,
and there is no switch to skip this. This first version deliberately writes only image files
(good for virtual machines). An installer inst that writes to real disks from within NULLos
itself: coming soon
SD card / Raspberry Pi
Needs the ARM64 part of the kernel. The compiler can already do ARM64, the kernel can't yet. coming soon
ESP32
The first small device will be the ESP32-C5: flash the firmware over a USB cable, later operate it only over SSH.
The plan is ready, nothing is built yet. coming soon More under Runs everywhere.