xinionos/nutzlast/VERTRAG.md
Thomas Reitz d9ed1bc2ff XinionOS als eigenes Erzeugnis herausgeloest
Die Geraeteschicht — Abbild, zwei Wurzeln, Selbstprueflauf, Ruecksprung —
verlaesst die Ablage der ersten Appliance und wird ein eigenes Erzeugnis
mit eigenem Takt und eigenem Nachweis.

Drei Gruende, nach Gewicht: Der Cyber Resilience Act verpflichtet fuer das
gesamte Produkt einschliesslich der Betriebssystemschicht — vier gewachsene
Basissysteme waeren vier Stuecklisten und vier Schwachstellenprozesse, eine
gemeinsame Basis ist ein Dossier. Der Ruecksprung wird nur einmal richtig
gebaut, weil er nur geprueft wird wenn ihn jemand braucht. Und eine
abgegrenzte Aufgabe laesst sich ausschreiben, was unmittelbar auf das
groesste benannte Risiko des Hauses einzahlt.

Der Einwand der Vertraeglichkeitsmatrix wird durch den Nutzlast-Vertrag
entkraeftet statt weggeredet: Die Nutzlast liegt in der Wurzel und wird mit
ihr getauscht. Eine Fassung, ein Rueckweg, keine Matrix.

Das OS kennt kein Produkt — Regel 1. Alle Namen sind entkoppelt, die
Statusseite ist auf die Standardbibliothek umgestellt, weil jede
Abhaengigkeit im Grund-OS eine Verpflichtung ueber die Produktlebensdauer
ist.

Nichts davon ist gelaufen. Der Inhalt gilt als Bauplan.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 08:02:55 +02:00

3.6 KiB

Der Nutzlast-Vertrag

XinionOS liefert ein Gerät, das startet, sich prüft und zurückspringt. Was darauf arbeitet, ist die Nutzlast — und dieser Vertrag ist alles, was die beiden voneinander wissen.

Er ist bewusst klein. Je mehr das Betriebssystem über die Nutzlast weiß, desto weniger Produkte kann es tragen.

Der Grundsatz: eine Fassung, ein Rückweg

Die Nutzlast liegt in der Wurzel und wird mit ihr getauscht. Damit erbt sie den A/B-Wechsel und den Rücksprung, ohne selbst etwas dafür zu tun.

Das ist die wichtigste Festlegung dieses Dokuments, und sie ist eine Entscheidung gegen eine naheliegende Alternative: Nutzlast und Betriebssystem getrennt zu versionieren. Das klingt flexibler und erzeugt eine Verträglichkeitsmatrix — welche Nutzlastfassung läuft auf welcher OS-Fassung —, die gepflegt und geprüft werden muss. Vor allem aber gäbe es zwei Rücksprünge, die zueinander passen müssten.

Ein Abbild, eine Fassung, ein Rückweg. Wer die Nutzlast aktualisieren will, baut ein neues Abbild.

Was die Nutzlast bereitstellt

Pfad Pflicht Zweck
/opt/nutzlast/bin/selbstpruefung ja Meldet mit Rückgabewert 0, dass die Nutzlast arbeitsfähig ist
/opt/nutzlast/nutzlast.target ja systemd-Ziel, unter dem alle Dienste der Nutzlast hängen
/opt/nutzlast/kennung ja Name und Fassung, einzeilig — erscheint auf der Statusseite
/opt/nutzlast/bin/einrichten nein Wird bei der Ersteinrichtung einmalig aufgerufen

Wie der Selbstprüflauf zusammenspielt

Der Selbstprüflauf des Betriebssystems prüft seine Sachen — Wurzel erkennbar, Bestandsbereich eingehängt und beschreibbar, Statusseite antwortet. Danach ruft er /opt/nutzlast/bin/selbstpruefung auf.

Fällt einer von beiden durch, gilt der Start als misslungen. Das ist der ganze Mechanismus: Die Nutzlast entscheidet über den Rücksprung mit, ohne dass das Betriebssystem wissen muss, woran sie das erkennt.

Was die Nutzlast dort prüft, ist ihre Sache. Eine Fach-Appliance fragt ihre Datenbank; eine Anwendungsplattform fragt, ob ihre Dienste bereit sind; ein Proxy prüft, ob er lauscht.

Was die Nutzlast nicht darf

Sich selbst aktualisieren. Kein Dienst, der im Hintergrund neue Fassungen holt. Das umginge Updatekanal, Signaturprüfung und Rücksprung — also alles, wofür dieses Betriebssystem da ist.

Zustand außerhalb des Bestandsbereichs ablegen. Alles Dauerhafte gehört nach /bestand. Was in der Wurzel liegt, ist beim nächsten Fassungswechsel weg — das ist Absicht.

In die andere Wurzel schreiben. Die gehört dem Fassungswechsel.

Drei Beispiele

Eine Anwendungsplattform (Helm-Bündel, Kubernetes): Die Nutzlast bringt die Laufzeitumgebung und das Bündel mit; ihr Selbstprüflauf fragt, ob die Freigabe ausgerollt und erreichbar ist.

Eine Fach-Appliance mit Wirt-Diensten: Die Nutzlast bringt ihre Dienste als systemd-Units unter nutzlast.target; ihr Selbstprüflauf fragt Datenbank und Dienste ab.

Ein Proxy: Ein einziger Dienst, ein dreizeiliger Selbstprüflauf.

Keines der drei erfordert eine Änderung am Betriebssystem. Wenn doch, ist der Vertrag falsch geschnitten — dann wird er geändert und nicht umgangen.

Was noch offen ist

  • Wie die Nutzlast ins Abbild kommt. Als Verzeichnis beim Bau oder als signiertes Paket, das das Bauwerkzeug einliest. Zu entscheiden, bevor das zweite Produkt gebaut wird.
  • Die Signatur. Nutzlast und Abbild müssen gemeinsam signiert und vor dem Umschalten geprüft werden.
  • Ob die Statusseite Angaben der Nutzlast anzeigt — und wenn ja, wie sie sie bekommt, ohne dass das Betriebssystem sie versteht.