Veröffentlichung des Kernels Asterinas 0.18, geschrieben in Rust und kompatibel mit Linux.

Die Version 0.18 des Asterinas-Projekts wurde veröffentlicht, das ein Kernelement entwickelt, das in der Programmiersprache Rust geschrieben ist und für den Einsatz in allgemeinen Betriebssystemen gedacht ist. Der Kern bietet eine ABI (Application Binary Interface), die mit dem Linux-Kernel kompatibel ist und als Ersatz verwendet werden kann. Parallel dazu wird die Asterinas NixOS-Distribution entwickelt, die den Asterinas-Kernel mit der Systemumgebung NixOS kombiniert. Der Code des Projekts wird unter der MPL (Mozilla Public License) lizenziert.

Derzeit sind im Kern rund 240 Linux-Systemaufrufe implementiert. In der Asterinas NixOS-Distribution wurde die Funktionalität von über 100 NixOS-Paketen über den Asterinas-Kern verifiziert. Zu den unterstützten Paketen gehören: Xfce, Firefox, bash, systemd, Podman, QEMU, rsync, Apache httpd, nginx, SQLite, Redis, Clang, GCC, Go, Lua, Node.js, OpenJDK, Perl, PHP, Python, Ruby, Rust, Git, FFmpeg, PyTorch, TensorFlow, Ollama und Codex.

Der Kern unterstützt vollständig die x86-64-Architektur, teilweise die RISC-V 64 und x86-64 mit Intel TDX-basiertem Isolationsmanagement sowie eine anfängliche Unterstützung der LoongArch 64-Architektur. Zu den prioritären Anwendungsbereichen gehören Systeme, die auf dem Linux ABI basieren, jedoch einen höheren Schutzbedarf haben. Beispielsweise wird Asterinas zur Schaffung eines geschützten Systemumfelds empfohlen, virtuellen Maschinen, für dessen Isolierung Technologien wie ARM CCA, AMD SEV und Intel TDX verwendet werden, sowie auf der Seite des Hostsystems, das die Ausführung von Containern ermöglicht.

Um die Wahrscheinlichkeit von Speicherfehlern zu verringern, die die Hauptquelle für die gefährlichsten Sicherheitsanfälligkeiten darstellen, wird bei der Entwicklung von Asterinas die Programmiersprache Rust und eine Taktik zur begrenzten Verwendung von unsafe-Blöcken eingesetzt. Der Kernel ist mit einer Framekernel-Architektur aufgebaut, in der versucht wurde, die Isolationsmöglichkeiten von Mikrokernen mit der Effizienz monolithischer Kerne zu kombinieren.

Die Kernkomponenten in Asterinas sind im gemeinsamen Adressraum angeordnet, während die Sicherheit durch logische Trennung zwischen sicherem Code und potenziell unsicherem Code erreicht wird. Der Kern ist in zwei Teile unterteilt, die in Rust geschrieben sind: OS Framework und OS Services. In OS Services sind unsafe-Blöcke untersagt, und alle low-level Operationen, die unsafe-Blöcke erfordern, wurden in das OS Framework übertragen und sind nur über eine hochgradige API zugänglich. Alle Systemaufrufe, Dateisysteme und Treiber werden auf der Ebene von OS Services implementiert und dürfen keine unsafe-Blöcke enthalten.

Für die Entwicklung von Systemdiensten und Kernmodulen steht das OSDK (Operating System Development Kit) zur Verfügung, das das Tool cargo-osdk bereitstellt, um Komponenten des Betriebssystems zu erstellen, zu kompilieren, zu testen und auszuführen. Entwicklern wird ein Set von Bibliotheken, die OSTD (Operating System Standard Library) umfasst, zur Verfügung gestellt, das eine angepasste Version der Standardbibliotheken von Rust (crate std) enthält, die für die Verwendung in Komponenten des Betriebssystems geeignet ist.

Zu den Änderungen in Version 0.18:

  • Im Rahmen der Implementierung von Asterinas als Gastsystem in VM-Containern wie Kata Containers und Confidential Containers wurde die Unterstützung für IPC-Namensräume und cgroup, nsfs (/proc/[pid]/ns), cgroups, virtio-fs (zum Zugriff auf das gemeinsame Dateisystem mit dem Host) sowie virtio-rng (/dev/hwrng für Entropie zur Erzeugung von Pseudozufallszahlen) und vsock (für die Interaktion zwischen Host- und Gastsystemen) realisiert.
  • Der Systemaufruf ptrace und Debugging-Funktionen im Benutzermodus mit GDB und strace wurden implementiert.
  • Eine neue Implementierung des Dateisystems ext2 wurde vorgeschlagen, und ein NVMe-Treiber hinzugefügt. Im VFS wurde ein Dentry-Mechanismus (Directory Entry) integriert und die Implementierung des Seitencaches überarbeitet.
  • Im Asterinas NixOS-Distribution wurde die Möglichkeit zur Ausführung von Codex, QEMU und Firefox implementiert.
  • Die Systemaufrufe pidfd_getfd, pidfd_send_signal und pivot_root wurden hinzugefügt.
  • Eine erste Version wurde hinzugefügt. IPv6-Unterstützung.
  • Ein Berechtigungssystem wurde implementiert, um die Delegierung einzelner privilegierter Operationen zu ermöglichen.
  • Eine erste Implementierung des LSM (Linux Security Modules)-Frameworks wurde hinzugefügt.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster