Das Unternehmen SUSE hat den zweiten Prototyp der ALP-Plattform „Punta Baretti“ (Adaptable Linux Platform) veröffentlicht, die als Fortsetzung der Entwicklung der SUSE Linux Enterprise-Distribution positioniert wird. Das wichtigste Unterscheidungsmerkmal von ALP ist die Trennung der Basiskomponenten der Distribution in zwei Teile: ein reduziertes „Host-OS“ zur Ausführung auf Hardware und eine Schicht zur Anwendungsunterstützung, die auf Container- und virtuelle Maschinen fokussiert ist. Die Builds sind für die Architektur x86_64 vorbereitet. ALP wird ursprünglich mit einem offenen Entwicklungsprozess entwickelt, bei dem Zwischenversionen und Testergebnisse allen Interessierten öffentlich zugänglich sind.
Die Architektur von ALP basiert auf der Entwicklung einer „Host-OS“-Umgebung, die minimal erforderlich ist, um die Hardware zu unterstützen und zu verwalten. Alle Anwendungen und Benutzerkomponenten sollen nicht in einer gemischten Umgebung, sondern in separaten Containern oder in virtuellen Maschinen wurde vereinfacht., die über das „Host-OS“ ausgeführt werden und voneinander isoliert sind. Diese Anordnung ermöglicht es den Nutzern, sich auf ihre Anwendungen zu konzentrieren und Arbeitsabläufe von der zugrunde liegenden Systemumgebung und Hardware zu abstrahieren.
Als Basis für das „Host-OS“ kommt das Produkt SLE Micro zum Einsatz, das auf den Entwicklungen des Projekts MicroOS basiert. Für das zentrale Management stehen die Konfigurationsmanagement-Systeme Salt (bereits vorinstalliert) und Ansible (optional) zur Verfügung. Für die Ausführung isolierter Container sind die Tools Podman und K3s (Kubernetes) verfügbar. Unter den in Container ausgegliederten Systemkomponenten finden sich yast2, podman, k3s, cockpit, GDM (GNOME Display Manager) und KVM.
Zu den Besonderheiten der Systemumgebung gehört die standardmäßige Verwendung der Festplattenschlüsselung (FDE, Full Disk Encryption), wobei die Schlüssel im TPM gespeichert werden können. Die Root-Partition wird im Nur-Lese-Modus gemountet und ändert sich während des Betriebs nicht. In dieser Umgebung kommt ein Verfahren zur atomaren Installation von Updates zum Einsatz. Im Gegensatz zu den atomaren Updates basierend auf ostree und snap, die in Fedora und Ubuntu verwendet werden, nutzt ALP anstelle der Erstellung separater atomarer Images und der Implementierung einer zusätzlichen Lieferinfrastruktur den Standard-Paketmanager und den Snapshot-Mechanismus im Btrfs-Dateisystem.
Es gibt einen anpassbaren Modus für die automatische Installation von Updates (z. B. kann die Auto-Installation nur für kritische Sicherheitsupdates aktiviert oder auf die manuelle Bestätigung der Installationen zurückgekehrt werden). Live-Patches unterstützen die Aktualisierung des Linux-Kernels ohne Neustart und Unterbrechung des Betriebs. Um die Ausfallsicherheit des Systems (Self-Healing) zu gewährleisten, wird der letzte stabile Zustand durch Btrfs-Snapshots festgehalten (im Fall von Anomalien nach Updates oder Änderungen an den Einstellungen wird das System automatisch in den vorherigen Zustand versetzt).
Die Plattform verwendet einen mehrversionsfähigen Software-Stack – durch den Einsatz von Containern können verschiedene Versionen von Tools und Anwendungen gleichzeitig verwendet werden. Beispielsweise können Anwendungen ausgeführt werden, die in ihren Abhängigkeiten unterschiedliche Versionen von Python, Java und Node.js verwenden, wobei inkompatible Abhängigkeiten voneinander getrennt werden. Die grundlegenden Abhängigkeiten werden in Form von BCI-Sets (Base Container Images) bereitgestellt. Der Benutzer kann Software-Stapel erstellen, aktualisieren und löschen, ohne andere Umgebungen zu beeinträchtigen.
Wesentliche Änderungen im zweiten Prototyp von ALP:
- Der D-Installer wurde implementiert, bei dem die Benutzeroberfläche von den internen Komponenten von YaST getrennt ist und die Möglichkeit besteht, verschiedene Frontends zu nutzen, einschließlich eines Frontends zur Verwaltung der Installation über eine Weboberfläche. Die grundlegende Benutzeroberfläche zur Installation basiert auf Webtechnologien und umfasst einen Handler, der den Zugriff auf D-Bus-Aufrufe über HTTP ermöglicht, sowie die Weboberfläche selbst. Diese wurde in JavaScript unter Verwendung des React-Frameworks und der PatternFly-Komponenten entwickelt. Zur Gewährleistung der Sicherheit unterstützt D-Installer die Installation auf verschlüsselten Partitionen und ermöglicht die Verwendung von TPM (Trusted Platform Module) zur Entschlüsselung der Bootpartition, wobei anstelle von Passwörtern Schlüssel verwendet werden, die im TPM-Chip gespeichert sind.
- Einige Kunden von YaST (Bootloader, iSCSIClient, Kdump, Firewall usw.) können jetzt in separaten Containern ausgeführt werden. Es wurden zwei Arten von Containern implementiert — Management-Container für die Arbeit mit YaST im Textmodus, in der GUI und über die Web-Oberfläche sowie Testcontainer für automatisierte Textprüfung. Eine Reihe von Modulen wurde ebenfalls für die Verwendung in Systemen mit Transaktionsaktualisierungen angepasst. Zur Integration mit openQA wird die Bibliothek libyui-rest-api mit einer REST API-Implementierung angeboten.
- Die Ausführung in Containern der Cockpit-Plattform wurde realisiert, auf denen die Web-Oberfläche des Konfigurators und Installateurs basiert.
- Die Möglichkeit zur Verwendung von Full Disk Encryption (FDE) wird in Installationen über herkömmlicher Hardware und nicht nur in Virtualisierungs- und Cloud-Systemen unterstützt.
- Als Hauptbootloader wird GRUB2 eingesetzt.
- Konfigurationen zur Bereitstellung von Containern zur Erstellung von Firewalls (firewalld-container) und zur zentralen Verwaltung von Systemen und Clustern (warewulf-container) wurden hinzugefügt.
Quelle: opennet.ru
