Sind die Betriebssysteme der Zukunft unveränderlich?

Entwickler sprechen viel über „Unveränderlichkeit“. Außerhalb der technischen Welt hat es normalerweise eine negative Bedeutung: unbeweglich, unflexibel und festgefahren. Im technischen Bereich sind diese Eigenschaften jedoch von Vorteil und bedeuten, dass ein System zuverlässig und reproduzierbar ist.

Wie viele Konzepte und Trends in der Technologie ist es nichts Neues. NixOS (mehr dazu später) existiert seit über zwanzig Jahren und ChromeOS ist wahrscheinlich das am weitesten verbreitete unveränderliche Betriebssystem (OS). Die weit verbreitete Einführung von Containern mit Docker vor etwas mehr als 10 Jahren erlangte das Konzept eine breitere Aufmerksamkeit.

Normalerweise definieren Sie einen Container in einer Textdatei und eine Container-Laufzeitumgebung wandelt diese Definition in laufende Dienste um. Das bedeutet, dass es relativ einfach ist, den Container basierend auf dieser Definition herunterzufahren, neu zu erstellen und neu zu starten. Egal, wie oft Sie ihn neu erstellen und neu starten, Sie können sich darauf verlassen, dass er gleich bleibt – unveränderlich.

Entwicklungsteams nutzen heute häufig Container, verwaltet und orchestriert durch Tools wie Kubernetes. Container übernehmen das Konzept der Unveränderlichkeit teilweise.

Der

Die neuesten Gerüchte aus der EU-Tech-Szene, eine Geschichte von unserem weisen alten Gründer Boris und fragwürdige KI-Kunst. Jede Woche kostenlos in Ihrem Posteingang. Jetzt anmelden!

Es gibt immer noch ein Betriebssystem und viele andere Softwareebenen, die es umgeben. Alles muss unveränderlich sein, um ein vollständig vertrauenswürdiges, zuverlässiges und reproduzierbares Betriebssystem zu haben.

Für diejenigen von uns, die regelmäßig Windows, macOS oder die meisten Linux-Distributionen verwenden, klingt das möglicherweise extrem. Aber von Edge-Geräten und Servern bis hin zu den Desktop-Rechnern, die Sie und ich täglich verwenden, werden unveränderliche Betriebssysteme nun zur praktischen Realität.

Warum passiert das jetzt? Gabriel Aguiar Noury, Produktmanager für Ubuntu Core bei Canonical, erklärt mir, dass es an den zunehmenden Cybersicherheitsvorschriften von Regierungen auf der ganzen Welt liegt.Diese Vorschriften signalisieren Geräteherstellern und Entwicklern im Allgemeinen, dass sich Dinge ändern werden. Wir müssen konformer sein“, sagt Noury. „Wir müssen sicherstellen, dass für jedes Element unserer Produkte ein Sicherheitsplan vorliegt, der auch die Sicherheitswartung umfasst.“

Die EU führte Regulierung der Cybersicherheit im Jahr 2019, und Noury ​​fügt hinzu, dass die Frist zur Umsetzung des Gesetzes auf großes Interesse stößt. „Die EU-Cybersicherheitsverordnung gewinnt an Bedeutung, und ab 2027 müssen wir sie einhalten. Wir befinden uns also gerade in einer Phase, in der wir die Geräte, die wir auf den Markt bringen, konform machen müssen. Und dabei spielt die Idee der Unveränderlichkeit eine Rolle.“

Nix und NixOS

Nix ist das älteste noch aktive, unveränderliche Betriebssystem. „Nix“ und „NixOS“ werden oft synonym verwendet, aber sie sind unterschiedlich. Nix ist ein Paketmanager, der zum Erstellen und Installieren kleiner Abhängigkeiten wie OpenSSL für größere Abhängigkeiten wie Firefox oder eine Toolchain für Programmiersprachen verwendet wird.

Wie Valentin Gagarin, Teil des Nix-Maintainer-Teams, sagt: „Nix bedeutet für viele Menschen vieles. Aber im Kern ist Nix erstaunlich einfach.“

Fast jedes Paket, das Sie installieren, ist nicht isoliert und verwendet seinen eigenen komplexen Abhängigkeitsbaum. Um dies zu handhaben und unveränderlich zu bleiben, behält Nix beim Erstellen und Installieren eines Pakets einen kryptografischen Hash aller Elemente bei, die zum Zeitpunkt der Installation zur Installation dieser Abhängigkeit verwendet wurden.

Wenn Sie die Abhängigkeit später erneut installieren, erstellt Nix einen neuen Hash, sodass Sie bei Problemen zur funktionierenden Version zurückkehren können. „Nix verdrahtet die Beziehungen zwischen Dateien in einem Dateisystem, die Teil einer Anwendungsbinärdatei werden, und zeichnet sie auf unveränderliche Weise auf“, sagt Gagarin. „Wenn Sie diese Dateien woanders hin übertragen möchten, erhalten Sie durch Ziehen an einem Ende das Ganze, anstatt es auseinanderzubrechen.“

NixOS geht noch einen Schritt weiter. Sie können das gesamte Betriebssystem aus Paketen im Nix-Paketmanager und der Konfiguration dieser Pakete definieren. Die Konfiguration hängt von den von Ihnen installierten Paketen ab, kann aber Startgeräte, Anmeldenachrichten, Benutzerkonten und mehr umfassen. Außerdem führt Nix jeden Prozess, der diese Dateien erstellt, in einer isolierten Sandbox aus, was die Sicherheit weiter erhöht.

Für jeden, der schon einmal Mobile Device Management (MDM) oder etwas Vergleichbares verwendet hat, um konsistente Systemabbilder auf einer Flotte von Maschinen bereitzustellen, klingt dies möglicherweise nicht besonders revolutionär. Allerdings erfordert NixOS nicht das Senden großer Abbilddateien mit mehreren Gigabyte über Netzwerke. Es handelt sich lediglich um eine Textdatei, die beim Rollout erstellt wird.

Wie beim Paketmanager können Sie auch hier ein Rollback durchführen, wenn ein Problem auftritt. Mit NixOS können Sie in der Zeit, die zum Erstellen des Systems benötigt wird, zwischen verschiedenen Betriebssystemkonfigurationen wechseln. Dasselbe gilt, wenn ein Installationsvorgang unterbrochen wird. Beim Neustart wird das System in den letzten fehlerfreien Zustand zurückversetzt und Sie können es erneut versuchen.

Nix hat diese Ideen trotz ihrer modern klingenden Anwendung schon lange entwickelt. Es existiert seit mehr als 20 Jahren und ist älter als Docker und Git.

Wie Gagarin hinzufügt, war es nicht einmal das erste Mal.“Nix war auch nicht der erste Versuch, die Linux-Verpackung zu ändern. Nix hatte Vorläufer, die im Wesentlichen dasselbe taten, aber komplizierter und für das allgemeine Linux-Publikum weniger zugänglich waren. Und ich denke, was Nix anders machte, war seine konzeptionelle Einfachheit. Und es gibt es im Gegensatz zu vielen anderen immer noch.“

Gemeinschaft und Geschäft

Die Nix-Community ist Open Source und wird durch Spenden finanziert. Sie hat monatlich rund 800 aktive Mitwirkende. Doch der moderne Trend zur Unveränderlichkeit und wie gut Nix dazu passt, ist auch an Unternehmen nicht vorbeigegangen, obwohl Gagarin zugibt, dass er sich über die Ursprünge des steigenden Interesses nicht ganz sicher ist.

Drei der interessantesten kommerziellen Produkte auf Basis von NixOS sind Bestimmte Systeme, FloxUnd DevBox. Sie alle befinden sich noch in der Anfangsphase, aber sie und ähnliche Tools erkennen, dass die „einfachere“ Welt der Entwicklung mit Container-Runtimes wie Docker vielleicht doch nicht so einfach war wie versprochen, und bieten eine Alternative.

Ubuntu-Kern

Wenn viele an Linux denken, denken sie an Ubuntu aus Kanonisch. Es ist schwierig, realistische Zahlen zu erhalten, da die meisten Quellen die Desktop-Nutzung angeben, während Linux in Wirklichkeit in den Rechenzentren und auf den Servern die Nase vorn hat.

Canonicals unveränderliches Angebot, Ubuntu-Kernrichtet sich nicht an Desktop-Benutzer, sondern an Edge-Geräte. Das sind die kleinen Computergeräte, die man heute überall findet, von Autos über Roboter bis hin zu Smart Cities und Industrie. Edge-Geräte, auf denen oft nur eine Handvoll Dienste auf kleinen eingebetteten Platinen laufen, werden normalerweise remote und in großem Maßstab verwaltet und führen wichtige Funktionen aus, bei denen Sicherheit und Zuverlässigkeit von größter Bedeutung sind. Ein perfekter Anwendungsfall für ein unveränderliches Betriebssystem.

Noury ​​erklärt die Anwendungsfälle.“Denken Sie an das Kernbetriebssystem und die Kernelemente Ihres Geräts. Sie sollten sich während des normalen Betriebs nicht ändern und Sie sollten sie nicht warten müssen.“

Stattdessen können Sie sich mit Ubuntu Core auf die einzigartigen Funktionskomponenten für Ihren Anwendungsfall konzentrieren und darauf vertrauen, dass diese ohne Ihr Zutun nicht geändert werden. „Wenn Sie einen digitalen Kiosk, ein Smart-Home-Gerät oder einen Roboter in einer Fertigungsstraße einsetzen, möchten Sie sich auf die Lösung Ihrer Probleme konzentrieren und sicher sein, dass sich die Komponenten, auf die Sie angewiesen sind, nicht ändern, bis Sie sie ändern“, fügt Noury ​​hinzu.

Canonicals Snap-Format und Snap Store ähneln dem Nix-Paketmanager. Die Installation einer Abhängigkeit aus dem Snap Store enthält alle Abhängigkeiten zum Zeitpunkt der Installation, mit zusätzlichen Schutzfunktionen, die das Host-Betriebssystem vor der „gesnapten“ Anwendung schützen.

Für jeden macOS-Benutzer hört sich das möglicherweise so an, als würde er die Software aus dem App Store installieren. Da Linux-Benutzer es jedoch gewohnt sind, Software direkt während der Installation zu erstellen, handelt es sich um einen neuartigen Ansatz, der die Linux-Community spaltet.

Ubuntu Core funktioniert anders als NixOS. Anstatt die Konfiguration mit einer Textdatei vorzunehmen, verwenden Sie eine Reihe von Modellen, um die Kernkomponenten eines Betriebssystems zu definieren, beispielsweise die Architektur, die Basis des Betriebssystems, die zu installierenden Snaps und Snap-Versionen sowie die zu verwendenden Sicherheitsstufen.

Wenn das erledigt ist, können Sie ein Image auf allen Rechnern bereitstellen, erstellen und installieren. Wenn Sie Canonicals Multipass Mit diesem Tool können Sie Images auch lokal in einer virtuellen Maschine erstellen, testen und aufbauen, bevor Sie sie bereitstellen, und vorgefertigte Images als Grundlage für Ihr Image durchsuchen.

Obwohl Ubuntu Desktop nicht unveränderlich ist, verfügt es auch über den Snap Store für ein gewisses Maß an Unveränderlichkeit und dieser Beitrag von einem Canonical-Ingenieur Einzelheiten, wie es könnte arbeiten.

Fedora Silverblue und Vanilla OS

Von einem der anderen großen Namen in der Linux-Distribution, Fedora's unveränderliches Angebot, Silberblaukombiniert Elemente von NixOS und Ubuntu Core. Für größere grafische Anwendungen verwendet Silverblue Flatpakdas ähnlich wie der Snap Store (und App Store) funktioniert und Anwendungen als ein in sich geschlossenes Paket verteilt.

Entwicklertools verwenden Werkzeugbxdas wiederum Container verwendet, um Entwicklern eine Reihe funktionierender Abhängigkeiten pro Projekt zu ermöglichen, ohne Auswirkungen auf das Basisbetriebssystem. Es gibt jedoch keine Konfigurationsdatei, die alles zusammenhält wie bei NixOS und Ubuntu Core.

Vanille-Betriebssystem ist ähnlich. Das gesamte Betriebssystem ist nicht unveränderlich, aber wichtige Teile davon sind es. Es hat seinen eigenen Ansatz für einen Paketmanager in Form von Ca.das Pakete in einem Container installiert, alles vom Host-Betriebssystem isoliert und wiederum den Wechsel zwischen Versionen erleichtert.

Neben Einzelinstallationen lassen sich mit Apx auch Entwicklerumgebungen auf Basis anderer Linux-Distributionen definieren, was Vanilla OS als eine Art Linux-Hub positioniert. Auch Systemupdates werden anders gehandhabt, indem temporäre Partitionen (wiederum basierend auf Container-Images) für das Update erstellt werden, auf die erst nach einem erfolgreichen Neustart umgeschaltet wird (aktuelle Versionen von macOS machen etwas Ähnliches).

Wenn Sie besonders vorsichtig sein und die Unveränderlichkeit sicherstellen möchten, können Sie das gesamte Dateisystem schreibgeschützt machen, sodass alles in Containern ausgeführt werden muss.

Weder Fedora Silverblue noch Vanilla OS gehen so weit, die Unveränderlichkeit zu wahren wie bei NixOS, aber sie machen die wichtigsten und anfälligsten Teile unveränderlich.

Wem kann man vertrauen?

Vertrauen ist ein zentraler Aspekt dieser Diskussion. Das Verkaufsargument für unveränderliche Betriebssysteme ist, dass sie vertrauenswürdig und sicher sind. Aber warum sollten Sie ihnen vertrauen?

Wie Noury ​​sagt: „Unveränderlichkeit bedeutet nicht unbedingt Sicherheit.“ Die Präventivmaßnahmen bestehen im Wesentlichen darin, dass sie Tests und Rollbacks ermöglichen, wenn es Probleme gibt, und dass Dienste normalerweise in isolierten Sandboxen (Containern oder etwas anderem) ausgeführt werden, was bedeutet, dass jeder betrügerische Dienst nur minimale Auswirkungen auf alles andere haben kann.

Bei kommerziellen Angeboten wie Ubuntu Core oder kommerziell unterstütztem NixOS überwachen die Entwickler normalerweise Common Vulnerabilities and Exposures (CVE)-Datenbanken, um sicherzustellen, dass die Veröffentlichungen frei von Schwachstellen sind. Diese Quellen sind jedoch alles andere als perfekt und weisen nicht auf Fehler hin, sodass Entwickler weiterhin ihre eigenen Tests durchführen müssen – was dank unveränderlicher Betriebssysteme zum Glück einfacher ist.

Eine unabänderliche Zukunft

Wie ich in diesem Artikel bereits erläutert habe, sind viele der von Ihnen verwendeten Betriebssysteme aufgrund des gestiegenen Sicherheitsbedarfs moderner Verbrauchergeräte ohnehin teilweise unveränderlich, insbesondere was die Installation von Updates betrifft, selbst wenn Sie nicht auf ein völlig unveränderliches Betriebssystem wie NixOS mit all seinen Einschränkungen setzen möchten.

Einer meiner letzten Artikel behandelte Homebrewder Paketmanager für macOS (und jetzt auch Linux), und der je nach Verwendung ein gewisses Maß an Unveränderlichkeit bei der Installation von Anwendungen hinzufügt.

Obwohl die Communities rund um die in diesem Artikel erwähnten unveränderlichen Betriebssysteme hart daran gearbeitet haben, möglichst zugängliche und benutzerfreundlich gestaltete Systeme zu entwickeln, ist ein vollständig unveränderliches Betriebssystem immer noch komplexer als ein „herkömmliches“. Sie müssen verstehen, dass eine Anwendung nicht unbedingt einer Installation entspricht und wie Sie zwischen ihnen wechseln können. Aufgrund der Mehrfachinstallationen können sie auch mehr Speicherplatz beanspruchen, was leicht vergessen wird.

Ich bin mir nicht sicher, ob völlig unveränderliche Betriebssysteme schon jetzt die Zukunft der Betriebssysteme sind, aber einige ihrer Konzepte und Prinzipien sind es definitiv. Sie sind ein klassisches Beispiel dafür, dass es manchmal 20 Jahre oder länger dauern kann, bis ein technisches Konzept seine Zeit findet.

Comments are closed.