Try NULLos in QEMU
You do not need a computer of your own for NULLos. QEMU is a free program that emulates a whole PC. NULLos starts
inside it in a window, and nothing changes on your computer.
What is checked (as of 30 Oct 2026, NULLos 0.3.2): On a Mac with Apple chip and QEMU 11.1.2, NULLos
starts into the desktop with the command below. The steps for Windows and Linux are only put together
from the QEMU instructions and the package lists of the Linux systems, not tested.
1. Install QEMU
| System | How |
| macOS | With Homebrew: brew install qemu (tested) |
| Windows | Download the installer from qemu.weilnetz.de/w64, linked from qemu.org (not tested). Windows may warn about the installer's signature: according to that page, the newer installers are signed with an expired certificate |
| Debian, Ubuntu | sudo apt install qemu-system-x86 ovmf (not tested) |
| Fedora | sudo dnf install qemu-system-x86 edk2-ovmf (not tested) |
| Arch | sudo pacman -S qemu-desktop edk2-ovmf (not tested) |
ovmf or edk2-ovmf is the UEFI firmware. NULLos only starts with UEFI.
2. Download and check NULLos
Download the image nullos-0.3.2-x86_64.img and the file SHA256SUMS from nullos.de
into the same folder. Then check that the file is complete and unchanged:
| System | Command in the download folder | good if |
| macOS | shasum -a 256 --ignore-missing -c SHA256SUMS | nullos-0.3.2-x86_64.img: OK |
| Linux | sha256sum --ignore-missing -c SHA256SUMS | nullos-0.3.2-x86_64.img: OK |
| Windows (PowerShell) | Get-FileHash .\nullos-0.3.2-x86_64.img | the same number as in SHA256SUMS |
For Windows: Get-FileHash at Microsoft.
3. Start
Open a terminal (Windows: PowerShell) in the folder with the image and enter the command for your system.
macOS (tested):
qemu-system-x86_64 -machine q35,i8042=off -m 1G \
-drive if=pflash,format=raw,readonly=on,file=$(brew --prefix)/share/qemu/edk2-x86_64-code.fd \
-vga none -device VGA,xres=1280,yres=800,edid=on -display cocoa,zoom-to-fit=on \
-device qemu-xhci -device usb-kbd -device usb-tablet -device virtio-rng-pci \
-drive format=raw,file=nullos-0.3.2-x86_64.img
Then make the window bigger. Thanks to zoom-to-fit the picture grows with it.
Linux (not tested): as on the Mac, but with your system's firmware file and -display gtk:
qemu-system-x86_64 -machine q35,i8042=off -m 1G \
-drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.fd \
-vga none -device VGA,xres=1280,yres=800,edid=on -display gtk \
-device qemu-xhci -device usb-kbd -device usb-tablet -device virtio-rng-pci \
-drive format=raw,file=nullos-0.3.2-x86_64.img
| System | Firmware file (per package list) |
| Debian, Ubuntu | /usr/share/OVMF/OVMF_CODE_4M.fd |
| Fedora | /usr/share/edk2/ovmf/OVMF_CODE.fd |
| Arch | /usr/share/edk2/x64/OVMF_CODE.4m.fd |
Windows (not tested), in PowerShell as one line:
& "C:\Program Files\qemu\qemu-system-x86_64.exe" -machine q35,i8042=off -m 1G -drive "if=pflash,format=raw,readonly=on,file=C:\Program Files\qemu\share\edk2-x86_64-code.fd" -vga none -device VGA,xres=1280,yres=800,edid=on -device qemu-xhci -device usb-kbd -device usb-tablet -device virtio-rng-pci -drive format=raw,file=nullos-0.3.2-x86_64.img
The install folder C:\Program Files\qemu and the location of the firmware inside it are not verified. If you
find edk2-x86_64-code.fd somewhere else, use that path.
i8042=off turns off the old PS/2 keyboard and mouse. That way the mouse does not stay trapped in the window.
4. First start
After a few seconds the desktop appears, with two windows on top:
- „Neues Eingabegerät“ ("new input device"): NULLos asks whether it may use the mouse. Allow it, otherwise
the mouse does not move.
- „Passwort festlegen“ ("set password"): here you set your password and enter it twice. **There is no
default password.**
The password must have at least 12 characters, with upper- and lower-case letters, at least one digit and
one special character. Ideally build it from a long, easy-to-remember word or a short sentence, such as
Sunflower7!Garden, Coffee+2Croissants or Bicycle#Berlin1987. Do not use these examples: since they are
published here, many people know them – which makes them insecure. In 0.3.2, NULLos only checks the length.
From then on you use this password to unlock the screen and to log in.
Important: NULLos keeps the password only while it is running. After switching off it is gone, and on the
next start you set a new one.
5. The text console
Ctrl+Alt+F1 switches from the desktop to the text console (checked on 30 Oct 2026). There NULLos asks:
Benutzer:
Type root. If you have not set a password yet, NULLos asks for a new one now, otherwise for your password:
Benutzer: root
Erststart: root hat noch kein Passwort.
Neues Passwort für root (mindestens 12 Zeichen):
Nochmal:
Passwort für root gesetzt.
root@nullos:~ $
For 0.4 the plan is that the question for the user goes away. Then the password is enough.
How to go on from there: First steps.
Keys in QEMU
| What | Mac | Windows, Linux |
| Release mouse and keyboard from the window | Ctrl+Option+G | Ctrl+Alt+G |
| Fullscreen on and off | menu „View“ → „Enter Fullscreen“ | Ctrl+Alt+F |
| Quit NULLos | close the QEMU window | the same |
The keys are listed in the QEMU documentation, the Mac
version in the source code of QEMU's Mac interface. On the Mac, QEMU uses the Option key instead of Alt. The keys
in this table were not tried out ourselves.
If it does not work
| What you see | What to do |
Shell> (UEFI shell) instead of NULLos | check the path to the image file in the command |
| The mouse does not move | allow it in the window „Neues Eingabegerät“ |
| The mouse stays trapped in the window | use the release keys above; keep i8042=off in the command |
| No desktop, only „Benutzer:“ | you started the ISO: from CD and USB stick, 0.3.2 starts only the text console. Use the .img |
More options, for example SSH from your own computer: QEMU and SSH. Programs other than QEMU:
Virtualization.