Arquitetura
O RedderOS usa o kernel da distribuição base e empilha várias camadas por cima. Nenhuma escreve no disco do computador.
As camadas
- Kernel reforçado. O kernel Linux da base, arrancado com parâmetros restritivos e ajustado com sysctl, módulos bloqueados e AppArmor. Ver Reforço.
- initramfs live. O GRUB (BIOS ou UEFI) carrega o kernel e o initramfs, que monta o sistema comprimido (squashfs) a partir da pen USB e o copia para a RAM.
- Sistema na RAM. A raiz é um overlay em memória: tudo o que muda durante a sessão vive na RAM e desaparece ao desligar. Sem swap, registos só em memória e sem dumps.
- Rede Tor ou nada. A firewall é carregada antes de qualquer aplicação e só deixa sair o Tor. Ver Rede e Tor.
- Entrada e perfis. Um ecrã de entrada próprio abre a sessão amnésica ou um perfil cifrado de conhecimento zero. Ver Perfis.
- Ambiente de trabalho. Xfce com Tor Browser, terminal e o estado do sistema. Existe um modo de texto sem ambiente de trabalho.
Sequência de arranque
- O GRUB mostra o menu (ecrã e porta série) e arranca o kernel com os parâmetros de reforço.
- O initramfs (
casperno Ubuntu,live-bootno Debian) monta o squashfs e, comtoram, copia-o para a RAM. Não ativa nenhuma swap. - O systemd levanta a rede (
systemd-networkd, com MAC aleatório), a firewall (nftables), o Tor e o AppArmor. - O
redderos-admindecide seanontemsudonesta sessão. - Conforme a entrada do GRUB:
- normal: o
redder-greeterabre o ecrã de entrada gráfico num servidor X próprio; - modo de texto: o
redder-loginpede nome e frase emtty1; - autoteste: o
redderos-selftestexecuta as verificações e desliga.
- normal: o
- Ao entrar, o ecrã de entrada fecha-se e o ambiente de trabalho do utilizador arranca como uma
sessão normal do
logind, sem X com privilégios de root. Ao terminar sessão, o perfil é fechado (ou a sessão amnésica é esvaziada) e o ecrã de entrada volta.
Base e kernel do build
A ISO construída com BASE=ubuntu usa Linux 6.8, o kernel do Ubuntu 24.04 (noble), na
variante linux-image-virtual. Está pensada para máquinas virtuais: arranca bem no QEMU, mas
faltam-lhe controladores de hardware real, como os de Wi-Fi e de algumas placas gráficas.
O script de build admite duas bases:
| Base | Kernel | Pacote | Hardware real |
|---|---|---|---|
| Ubuntu 24.04 (noble), a que foi testada | 6.8 | linux-image-virtual | Não: só máquinas virtuais. |
| Ubuntu 24.04 (noble) | 6.8 | KERNEL_PKG=linux-image-generic | Sim: acrescenta controladores e firmware, mas a ISO cresce bastante. |
| Debian bookworm (predefinida no script) | 6.1 LTS | linux-image-amd64 | Sim: já inclui controladores de hardware real. |
Para usar o RedderOS num portátil, é preciso construir a ISO com uma das duas últimas opções. Como fazê-lo, em Construir a ISO.
Onde está cada coisa
| Peça | Ficheiro no código do SO |
|---|---|
| Build completo | build.sh |
| Pacotes, utilizadores, serviços | hooks/chroot.sh, config/packages.list |
| Menu de arranque | config/grub.cfg |
| Firewall | overlay/etc/nftables.conf |
| Tor | overlay/etc/tor/torrc |
| Reforço | overlay/etc/sysctl.d/, overlay/etc/modprobe.d/, overlay/etc/systemd/ |
| Perfis | overlay/usr/local/sbin/redder-profile |
| Ecrã de entrada | overlay/usr/local/lib/redderos/greeter.py |
| Autoteste | overlay/usr/local/sbin/redder-selftest, tests/ |