Neuigkeiten

Kestrel OS 0.3.5-beta: ein Rechner, viele Bildschirme

Kestrel OS 0.3.5-beta: ein Rechner, viele Bildschirme

Die Idee

Ein gut ausgestatteter Rechner steht im Keller oder im Büro. Alles, was man sonst auf mehrere Geräte verteilt – Desktop, Browser, Terminal, Spiele – läuft dort in getrennten Sitzungen. Auf dem Laptop, dem Handy oder dem Fernseher sieht man nur den Videostream davon. Kestrel ist das Betriebssystem für genau diesen einen Rechner.

Technisch ist es ein Debian 13 auf ZFS. Die Sitzungen laufen in Containern und werden entweder mit Moonlight oder direkt im Browser gestreamt.

Was drin ist

  • Sitzungen: KDE-Plasma- und XFCE-Desktop, Workstation, Terminal, Brave-Browser und Steam. Jede Sitzung läuft als der jeweilige Benutzer, mit eigenem Home-Verzeichnis und eigener Spielebibliothek. Fremde Dateien sind darin nicht sichtbar.
  • Portal im Browser: Anmeldung lokal oder per Single Sign-on, Geräte koppeln, Apps starten und direkt im Browser streamen. Mehrere Nutzer können gleichzeitig arbeiten, die Nutzungszeiten werden pro Nutzer mitgezählt.
  • ZFS als Unterbau: Pool als einzelne Platte, Mirror oder RAID-Z, auf Wunsch verschlüsselt, dazu zusätzliche Datenvolumes und Quotas pro Nutzer.
  • Updates mit Rollback: Jedes Update landet in einer neuen Boot-Umgebung. Bootet das System danach nicht gesund, springt es von selbst auf die alte zurück. Die Releases sind mit minisign signiert, und installierte Systeme prüfen die Signatur.
  • Installer: Ein ISO für BIOS und UEFI, auch für unbeaufsichtigte Installationen.
Die Apps-Seite des Kestrel-Portals

Neu in der 0.3er-Reihe

  • App Center mit einem Katalog portabler Apps (AppImages) und zwei neuen Regalen für Strategie- und Action-Spiele. Dazu gehören 21 freie Spiele, zum Beispiel 0 A.D., OpenTTD, SuperTuxKart und Xonotic.
  • Steam ist nach der Einrichtung startklar. Das Steam-Image wird nach der Installation im Hintergrund geladen und der Client vorbereitet. Der erste Start lädt den Client deshalb nicht noch einmal herunter. Den Steam-Client selbst verteilt Kestrel nicht weiter: Er wird auf deinem Rechner geladen, und die Steam-Bedingungen bestätigst du selbst.
  • Controller funktionieren in den Desktop-Sitzungen.
  • Fehlerbehebungen, zum Beispiel für die Installation von KiCad im App Center.

Installieren und aktualisieren

Zu jedem Release gehören diese Dateien:

Datei Wofür
kestrel-0.3.5-beta-amd64.iso Installer für USB-Stick oder VM, BIOS und UEFI
kestrel-0.3.5-beta-amd64.img.zst Fertiges Disk-Image: eine Platte, ohne Verschlüsselung
kestrel-0.3.5-beta-amd64.zfs.zst Update-Payload für kestrel-update (nicht für den Handgebrauch)
SHA256SUMS und SHA256SUMS.minisig Prüfsummen und Signatur

Vor der Installation lohnt sich die Prüfung, und danach geht es auf den Stick:

sha256sum -c SHA256SUMS --ignore-missing
minisign -Vm SHA256SUMS -p kestrel-update-pubkey.pub

# sdX unbedingt durch das zuvor identifizierte USB-Gerät ersetzen
lsblk
sudo dd if=kestrel-0.3.5-beta-amd64.iso of=/dev/sdX bs=4M status=progress
sync

Achtung: Der dd-Befehl überschreibt das angegebene Gerät vollständig. Vor dem Ausführen muss klar sein, dass /dev/sdX wirklich der USB-Stick ist und kein Systemlaufwerk.

Der Installer führt durch Tastatur, Netzwerk, Speicher (Layout, Verschlüsselung, Quotas), System und Single Sign-on:

Der Speicher-Schritt des Installers

Der Screenshot stammt noch aus der 0.2.0-beta, der Ablauf ist derselbe.

Ein installiertes System aktualisiert sich so:

sudo kestrel-update check
sudo kestrel-update apply --reboot

Ehrlicher Stand: Spiele brauchen eine GPU

Steams Oberfläche läuft auch ohne Grafikkarte, 3D-Spiele brauchen aber eine echte GPU. Auf einer Maschine ohne GPU starten Spiele zwar, man sieht sie aber nicht. Das habe ich auf einer virtuellen Testmaschine selbst erlebt und deshalb in die Dokumentation geschrieben.

Controller gibt es bewusst nur in den Desktop-Sitzungen. Die gehärteten Sitzungen (Workstation, Terminal, Browser) dürfen keine Gerätedateien anlegen, deshalb gibt es dort keinen Controller.

Wie ich teste

Ein Betriebssystem, das Platten formatiert, sollte man nicht ungetestet verteilen. Deshalb läuft vor jedem Release die komplette Testkette auf meinem eigenen CI-Runner:

  • Boot-Tests unter UEFI und BIOS und der Single-Sign-on-Test
  • Installationen auf einer Platte, als verschlüsselter Mirror, als RAID-Z1 und als Mirror mit zwei Datenvolumes
  • Update-Tests, die aktualisieren, zurückrollen und einen Fehlschlag auffangen
  • Streaming-Tests: Moonlight-Kopplung, zwei gleichzeitige Sitzungen im Portal, ein echter Chrome als Browser-Client und die Nutzungsmessung

Die 0.3.5-beta hat alle diese Tests bestanden, erst danach wurden die Dateien signiert und veröffentlicht.

Wie geht es weiter?

Kestrel ist eine Beta: Ecken und Kanten sind da, und genau dafür ist die Beta gedacht. Als Nächstes möchte ich hier genauer zeigen, wie Updates mit Rollback und das Streaming-Portal von innen funktionieren.]