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

Die Veröffentlichung des Projekts Asterinas 0.18 wurde vorgestellt, das einen auf Rust geschriebenen Kern entwickelt, der fĂŒr den Einsatz in allgemeinen Betriebssystemen vorgesehen ist. Der Kern bietet eine ABI (Application Binary Interface), die mit dem Linux-Kernel kompatibel ist und an dessen Stelle verwendet werden kann. Gleichzeitig wird die Asterinas NixOS-Distribution weiterentwickelt, die den Asterinas-Kern mit dem NixOS-Systemumfeld kombiniert. Der Quellcode des Projekts wird unter der MPL (Mozilla Public License) lizenziert.

Aktuell sind im Kernel etwa 240 Systemaufrufe von Linux implementiert. In der Asterinas NixOS-Distribution wurde die FunktionalitĂ€t von ĂŒber 100 Paketen aus NixOS auf dem Asterinas-Kernel 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.

Im Kernel wird volle UnterstĂŒtzung fĂŒr die x86-64-Architektur, teilweise UnterstĂŒtzung fĂŒr RISC-V 64 und x86-64 mit Isolation auf Intel TDX-Basis sowie erste UnterstĂŒtzung fĂŒr die LoongArch 64-Architektur gewĂ€hrleistet. Zu den priorisierten Anwendungsbereichen zĂ€hlen Systeme, die auf Linux ABI angewiesen sind, jedoch ein höheres Schutzniveau erfordern. Asterinas wird beispielsweise empfohlen, um Systemumgebungen zu schaffen, die geschĂŒtzt sind, virtuelle Maschinen, wobei Technologien wie ARM CCA, AMD SEV und Intel TDX zur Isolation verwendet werden, sowie auf der Host-Systemseite zur AusfĂŒhrung von Containern.

Um die Wahrscheinlichkeit von Speicherfehlern, die die Hauptursache der gefÀhrlichsten SicherheitsanfÀlligkeiten darstellen, zu verringern, wurde bei der Entwicklung von Asterinas die Programmiersprache Rust und die Taktik der begrenzten Verwendung von unsafe-Blöcken verwendet. Der Kernel basiert auf der framekernel-Architektur, die versucht, die IsolationsfÀhigkeiten von Mikrokernen mit der Effizienz monolithischer Kerne zu kombinieren.

Die Komponenten des Kernels in Asterinas sind im gemeinsamen Adressraum angeordnet, und die Sicherheit wird durch logische Trennung von sicherem Code und Code, in dem Sicherheitsprobleme auftreten können, erreicht. Der Kernel ist in zwei Teile unterteilt, die in Rust geschrieben sind: OS Framework und OS Services. In OS Services ist die Verwendung von unsafe-Blöcken untersagt, und alle niedrigstufigen Operationen, die die AusfĂŒhrung von Code in unsafe-Blöcken erfordern, wurden in das OS Framework ausgelagert und sind nur ĂŒber eine hochgradig abstrahierte API zugĂ€nglich. Alle Systemaufrufe, Dateisysteme und Treiber werden auf der Ebene von OS Services umgesetzt und dĂŒrfen keine unsafe-Blöcke enthalten.

FĂŒr die Entwicklung von Systemdiensten und Kernmodulen wird das OSDK (Operating System Development Kit) bereitgestellt, das das Werkzeug cargo-osdk zur Erstellung, Kompilierung, Testung und AusfĂŒhrung von Komponenten des Betriebssystems bietet. FĂŒr Entwickler steht eine Sammlung von Bibliotheken OSTD (Operating System Standard Library) zur VerfĂŒgung, die eine Anpassung der Standardbibliotheken von Rust (crate std) fĂŒr die Nutzung in Betriebssystemkomponenten umfasst.

Zu den Änderungen in Version 0.18:

  • Im Rahmen der Arbeiten zur UnterstĂŒtzung des Starts von Asterinas als Gastbetriebssystem in VM-Containern wie Kata Containers und Confidential Containers wurde UnterstĂŒtzung fĂŒr IPC-NamensrĂ€ume und cgroup, nsfs (/proc/[pid]/ns), cgroups, virtio-fs (fĂŒr den Zugriff auf das gemeinsame Dateisystem mit dem Host-System), virtio-rng (/dev/hwrng fĂŒr Entropie zu einem Pseudo-Zufallszahlengenerator) und vsock (fĂŒr die Interaktion zwischen Host- und GĂ€stebetriebssystemen) implementiert.
  • Der Systemaufruf ptrace sowie Debugging-Möglichkeiten im Benutzerspace mit GDB und strace wurden implementiert.
  • Eine neue Implementierung des Dateisystems ext2 wurde vorgeschlagen, und ein NVMe-Treiber wurde hinzugefĂŒgt. Im VFS wurde ein Dentry (Directory Entry)-Mechanismus hinzugefĂŒgt und die Implementierung des Seiten-Caches ĂŒberarbeitet.
  • Im Asterinas-NixOS-Distribution wurde die Möglichkeit implementiert, Codex, QEMU und Firefox zu starten.
  • Systemaufrufe pidfd_getfd, pidfd_send_signal, pivot_root wurden hinzugefĂŒgt.
  • Eine erste Implementierung IPv6-UnterstĂŒtzung.
  • Ein System von Berechtigungen wurde fĂŒr die Delegierung einzelner privilegierter Operationen implementiert.
  • Eine erste Implementierung des Frameworks LSM (Linux Security Modules) wurde hinzugefĂŒgt.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster