Architecture
RedderOS uses the base distribution's kernel and stacks several layers on top of it. None of them writes to the computer's disk.
The layers
- Hardened kernel. The base distribution's Linux kernel, booted with restrictive parameters and tuned with sysctl, blocked modules and AppArmor. See Hardening.
- Live initramfs. GRUB (BIOS or UEFI) loads the kernel and the initramfs, which mounts the compressed system (squashfs) from the USB stick and copies it to RAM.
- System in RAM. The root is an in-memory overlay: everything that changes during the session lives in RAM and disappears at shutdown. No swap, logs kept only in memory and no dumps.
- Tor or no network. The firewall is loaded before any application and only lets Tor out. See Network and Tor.
- Login and profiles. A custom login screen opens the amnesic session or an encrypted zero-knowledge profile. See Profiles.
- Desktop. Xfce with Tor Browser, a terminal and the system status. There is also a text mode with no desktop.
Boot sequence
- GRUB shows the menu (on screen and on the serial port) and boots the kernel with the hardening parameters.
- The initramfs (
casperon Ubuntu,live-booton Debian) mounts the squashfs and, withtoram, copies it to RAM. It does not enable any swap. - systemd brings up the network (
systemd-networkd, with a random MAC), the firewall (nftables), Tor and AppArmor. redderos-admindecides whetheranongetssudoin this session.- Depending on the GRUB entry:
- normal:
redder-greeteropens the graphical login screen on its own X server; - text mode:
redder-loginasks for a name and passphrase ontty1; - self-test:
redderos-selftestruns the checks and shuts down.
- normal:
- On login, the login screen closes and the user's desktop starts as a normal
logindsession, with no X running as root. On logout, the profile is closed (or the amnesic session is wiped) and the login screen returns.
Build base and kernel
The ISO built with BASE=ubuntu uses Linux 6.8, the Ubuntu 24.04 (noble) kernel, in its
linux-image-virtual variant. It is designed for virtual machines: it boots fine in QEMU, but it
lacks drivers for real hardware, such as Wi-Fi and some graphics cards.
The build script supports two bases:
| Base | Kernel | Package | Real hardware |
|---|---|---|---|
| Ubuntu 24.04 (noble), the tested one | 6.8 | linux-image-virtual | No: virtual machines only. |
| Ubuntu 24.04 (noble) | 6.8 | KERNEL_PKG=linux-image-generic | Yes: adds drivers and firmware, but the ISO grows a lot. |
| Debian bookworm (the script's default) | 6.1 LTS | linux-image-amd64 | Yes: already includes drivers for real hardware. |
To use RedderOS on a laptop you need to build the ISO with one of the last two options. How to do it is covered in Building the ISO.
Where everything lives
| Component | File in the OS source code |
|---|---|
| Full build | build.sh |
| Packages, users, services | hooks/chroot.sh, config/packages.list |
| Boot menu | config/grub.cfg |
| Firewall | overlay/etc/nftables.conf |
| Tor | overlay/etc/tor/torrc |
| Hardening | overlay/etc/sysctl.d/, overlay/etc/modprobe.d/, overlay/etc/systemd/ |
| Profiles | overlay/usr/local/sbin/redder-profile |
| Login screen | overlay/usr/local/lib/redderos/greeter.py |
| Self-test | overlay/usr/local/sbin/redder-selftest, tests/ |