Tor activeEN
Architecture — RedderOSMinimise (back to the desktop)Close (back to the desktop)
// docs

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

  1. Hardened kernel. The base distribution's Linux kernel, booted with restrictive parameters and tuned with sysctl, blocked modules and AppArmor. See Hardening.
  2. 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.
  3. 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.
  4. Tor or no network. The firewall is loaded before any application and only lets Tor out. See Network and Tor.
  5. Login and profiles. A custom login screen opens the amnesic session or an encrypted zero-knowledge profile. See Profiles.
  6. Desktop. Xfce with Tor Browser, a terminal and the system status. There is also a text mode with no desktop.

Boot sequence

  1. GRUB shows the menu (on screen and on the serial port) and boots the kernel with the hardening parameters.
  2. The initramfs (casper on Ubuntu, live-boot on Debian) mounts the squashfs and, with toram, copies it to RAM. It does not enable any swap.
  3. systemd brings up the network (systemd-networkd, with a random MAC), the firewall (nftables), Tor and AppArmor.
  4. redderos-admin decides whether anon gets sudo in this session.
  5. Depending on the GRUB entry:
    • normal: redder-greeter opens the graphical login screen on its own X server;
    • text mode: redder-login asks for a name and passphrase on tty1;
    • self-test: redderos-selftest runs the checks and shuts down.
  6. On login, the login screen closes and the user's desktop starts as a normal logind session, 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:

BaseKernelPackageReal hardware
Ubuntu 24.04 (noble), the tested one6.8linux-image-virtualNo: virtual machines only.
Ubuntu 24.04 (noble)6.8KERNEL_PKG=linux-image-genericYes: adds drivers and firmware, but the ISO grows a lot.
Debian bookworm (the script's default)6.1 LTSlinux-image-amd64Yes: 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

ComponentFile in the OS source code
Full buildbuild.sh
Packages, users, serviceshooks/chroot.sh, config/packages.list
Boot menuconfig/grub.cfg
Firewalloverlay/etc/nftables.conf
Toroverlay/etc/tor/torrc
Hardeningoverlay/etc/sysctl.d/, overlay/etc/modprobe.d/, overlay/etc/systemd/
Profilesoverlay/usr/local/sbin/redder-profile
Login screenoverlay/usr/local/lib/redderos/greeter.py
Self-testoverlay/usr/local/sbin/redder-selftest, tests/