Asterinas 0.18

Veröffentlicht wird Asterinas 0.18.0 — ein experimentelles Betriebssystem und Kernel, die in Rust geschrieben wurden und mit Linux ABI kompatibel sind. Das Projekt wird als Versuch positioniert, eine "produktionsreife" Alternative zu Linux zu schaffen, die sich auf Speichersicherheit, Leistung und die Ausführung einer normalen Linux-Benutzerumgebung konzentriert. Der Code von Asterinas ist offen und auf GitHub, die Hauptlizenz des Projekts ist MPL 2.0. Die Veröffentlichung Asterinas 0.18.0 wurde am 4. Juni 2026 veröffentlicht, und am 9. Juni wurde darauf aufmerksam gemacht Phoronix.


Der Schwerpunkt der Veröffentlichung liegt darauf, Asterinas für die Verwendung als Gastbetriebssystem für VM-basierte Kata Containers und Confidential Containersvorzubereiten. Dafür wurden dem Kernel die fehlenden Low-Level-Mechanismen hinzugefügt: Namespaces, cgroups, virtio-fs, virtio-rng und ein überarbeiteter vsock für den Datenaustausch zwischen Host und Gastsystem.

Liste der wichtigsten Änderungen:

  • Vorbereitung für den Start in Kata Containers und Confidential Containers.
    Asterinas 0.18 macht einen wichtigen Schritt in Richtung Ausführung als Gastbetriebssystem innerhalb isolierter Container-Virtual Machines. Dies ist wichtig für Szenarien, in denen Container nicht direkt auf dem Host-Kernel ausgeführt werden, sondern innerhalb einer separaten VM, einschließlich confidential computing-Umgebungen.

  • Unterstützung für Namespaces.
    Der Kernel hat IPC-Namespaces und cgroup-Namespaces sowie nsfs mit der Darstellung von Namespaces über /proc/[pid]/ns hinzugefügt. Dies bringt Asterinas näher an das Isolationsmodell für Prozesse, das von Linux-Containern verwendet wird.

  • Erste Unterstützung für cgroups.
    Der PID-Sub-Controller und partielle Unterstützung für den CPU-Sub-Controller wurden implementiert. Insbesondere hat es die Statistiken cpu.stat sowie Platzhalter für die Grenzwertdateien cpu.weight und cpu.max gegeben. Dies ist noch keine vollständige Implementierung des gesamten cgroups-Mechanismus, aber bereits eine notwendige Grundlage für Container-Szenarien.

  • virtio-fs für den Austausch des Dateisystems mit dem Host.
    Die Unterstützung für virtio-fs wurde hinzugefügt, die es dem Gastsystem ermöglicht, das vom Host bereitgestellte Dateisystem zu verwenden. Für VM-Container ist dies einer der Schlüsselmechanismen für die Datenübertragung ohne schwere Umgehungslösungen.

  • virtio-rng und /dev/hwrng.
    virtio-rng wurde hinzugefügt mit Export der Hardware-Entropie über /dev/hwrng. Dies ist notwendig für das richtige Funktionieren kryptographischer Operationen und Zufallszahlengeneratoren innerhalb des Gastbetriebssystems.

  • Überarbeiteter vsock.
    vsock wurde vollständig neu geschrieben – ein Kommunikationsmechanismus zwischen dem Host und der Gäste-VM. Im Kontext von Kata Containers und Confidential Containers ist dies wichtig für Steuerkanäle, Agenten und den Dienstkontakt zwischen VM und Laufzeitumgebung.

  • Ptrace und Unterstützung für die Debugging von Userspace ist verfügbar.
    Der Systemaufruf ptrace sowie die wichtigsten Operationen PTRACE_SETOPTIONS, PTRACE_SYSCALL, PTRACE_PEEK und PTRACE_POKE wurden implementiert. Dadurch können auf Asterinas gängige Debugging-Tools wie GDB und strace verwendet werden. Es wurden Dokumentationen für die geprüfte Nutzung und CI-Tests hinzugefügt.

  • Neuer NVMe-Treiber.
    Der NVMe-Treiber wurde in die Blockschicht integriert. Dies erweitert die Möglichkeiten von Asterinas im Umgang mit modernen Speichermedien und bringt das System näher an den praktischen Einsatz auf realer und virtualisierter Serverhardware.

  • Völlig neu geschriebener EXT2-Treiber.
    Das Dateisystem EXT2 wurde von Grund auf neu implementiert. Die Entwickler verbinden dies mit einer allgemeinen Modernisierung des Storage-Stacks: Das Dateisystem soll zuverlässiger und besser für den Betrieb einer realen Benutzerumgebung geeignet sein.

  • Änderungen in VFS und Page Cache.
    Dem VFS wurde ein Mechanismus zur Dentry-Revalidierung hinzugefügt, die Implementierung des Page Cache wurde überarbeitet, pivot_root wurde implementiert, und die Unterstützung für O_TMPFILE bei open/openat wurde eingeführt. Außerdem wurde ein Fehler im Page Cache behoben, der zu einer Leckage von nicht initialisiertem Speicher im Userspace führen konnte.

  • Erweiterung von procfs.
    Die folgenden Einträge wurden hinzugefügt: /proc/mounts, /proc/[pid]/auxv, /proc/[tid], zusätzliche Einträge in /proc/[pid]/maps und mountstats. Dies erhöht die Kompatibilität mit Linux-Anwendungen und Diagnosetools, die auf die gewohnte Struktur von /proc angewiesen sind.

  • Netzwerkverbesserungen.
    Neben dem neu geschriebenen vsock gibt es nun erste Unterstützung für IPv6, Korrekturen in der Implementierung von UDP und eine Überprüfung der Berechtigungen beim Binden an privileged Ports: Der Bind-Versuch an solche Ports wird jetzt ohne CAP_NET_BIND_SERVICE abgelehnt.

  • Mechanismus für Capabilities und erstes LSM-Framework.
    In der Version wurde die Implementierung von Capabilities, die Unterstützung des Capability Bounding Sets, Korrekturen bei Systemaufrufen im Zusammenhang mit den Anmeldeinformationen sowie das erste Framework für LSM eingeführt. Dies ist Teil der Arbeiten zur Annäherung des Sicherheitsmodells von Asterinas an Linux.

  • Verbesserungen bei PCI, TTY und Konsole.
    Die Erkennung von PCI-Geräten wurde verbessert, Unterstützung für PCI ECAM auf x86 hinzugefügt, Unterstützung für mehrere TTYs, die NS16550A UART-Konsole, /dev/ttyS0 und den Parameter console=ttyS0 implementiert. Dies optimiert auch die Bearbeitung von Tastatureingaben.

  • Erweiterung von Asterinas NixOS.
    In Asterinas NixOS werden nun über 100 beliebte Pakete, einschließlich Codex, QEMU und Firefox, überprüft. Für Firefox wurde zusätzlich die Unterstützung von ARCH_GET_GS und ARCH_SET_GS hinzugefügt.

  • Neue Testpakete.
    Im Projekt sind Linux kselftest, xfstests, Standardtests von Go, Python und JDK sowie QEMU-Tests für Virtualisierungsanwendungen integriert. Dies ist ein wichtiges Zeichen für das Wachstum des Projekts: Asterinas wird zunehmend unter realen Linux-Belastungen getestet.

  • Änderungen in OSTD und OSDK.
    In OSTD wurde das crate log durch eine eigene Logging-API ersetzt, die DMA-API überarbeitet, ein Framework für typisierte Speicheroperationen hinzugefügt und das Pod-Refactoring unter Verwendung von zerocopy durchgeführt. Eine Docker-Umgebung für ARM/aarch64 wurde für die Entwicklung hinzugefügt.

  • Dokumentation aktualisiert.
    Im Asterinas Book wurden Kodierungsrichtlinien, eine Soundness-Analyse für OSTD sowie Dokumentationen zu Kata Containers und Confidential Containers hinzugefügt. Dies betont, dass das containerbasierte Virtualisierungsszenario zu einem der Hauptschwerpunkte des Projekts geworden ist.

Asterinas 0.18 kann nicht als Ersatz für Linux im täglichen Gebrauch betrachtet werden, aber das Release bringt das Projekt deutlich in Richtung praktischer Server- und Containerszenarien voran. Besonders wichtig sind drei Aspekte: die Kompatibilität mit Linux-Programmen, die Unterstützung von Isolationsmechanismen und die Funktionsweise in VM-basierten Containerumgebungen.

Quelle: linux.org.ru

60GB SSD 8Gb DDR4