Release van de Asterinas 0.18-kernel, geschreven in Rust en compatibel met Linux

Het Asterinas-project heeft versie 0.18 uitgebracht, een kernel geschreven in Rust en ontworpen voor gebruik in algemene besturingssystemen. De kernel biedt een ABI (Application Binary Interface) die compatibel is met de kernel. Linux en kan in plaats daarvan worden gebruikt. De Asterinas NixOS-distributie, die de Asterinas-kernel combineert met de NixOS-systeemomgeving, wordt parallel ontwikkeld. De code van het project wordt gedistribueerd onder de MPL (Mozilla Public License).

Momenteel zijn er ongeveer 240 systeemoproepen geïmplementeerd in de kernel. LinuxDe Asterinas NixOS-distributie is geverifieerd en werkt bovenop de Asterinas-kernel met meer dan 100 NixOS-pakketten. Ondersteunde pakketten zijn onder andere: 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 en Codex.

De kernel biedt volledige ondersteuning voor de x86-64-architectuur, gedeeltelijke ondersteuning voor RISC-V 64 en x86-64 met isolatie op basis van Intel TDX, evenals initiële ondersteuning voor de LoongArch 64-architectuur. Prioritaire toepassingsgebieden zijn onder andere systemen gebaseerd op Linux ABI's, maar vereisen een hoger beveiligingsniveau. Asterinas wordt bijvoorbeeld voorgesteld voor gebruik bij het creëren van een veilige systeemomgeving. virtuele machines, waarbij voor de isolatie technologieën zoals ARM CCA, AMD SEV en Intel TDX worden gebruikt, en aan de kant van het hostsysteem, wat het opstarten van containers mogelijk maakt.

Om de kans op geheugenproblemen, de belangrijkste bron van de gevaarlijkste kwetsbaarheden, te verkleinen, gebruikt Asterinas de programmeertaal Rust en beperkt het gebruik van onveilige blokken. De kernel is gebouwd met behulp van de framekernel-architectuur, die de isolatiemogelijkheden van microkernels probeert te combineren met de efficiëntie van monolithische kernels.

Kernelcomponenten in Asterinas bevinden zich in een gedeelde adresruimte en de beveiliging wordt bereikt door logische scheiding van veilige code en code die mogelijk kwetsbaar is. De kernel is verdeeld in twee delen, beide geschreven in Rust: OS Framework en OS Services. OS Services verbiedt het gebruik van onveilige blokken en alle laag-niveau bewerkingen die code-uitvoering in onveilige blokken vereisen, zijn verplaatst naar het OS Framework en alleen toegankelijk via een API op hoog niveau. Alle systeemoproepen, bestandssystemen en stuurprogramma's zijn geïmplementeerd op het niveau van OS Services en mogen geen onveilige blokken bevatten.

Voor het ontwikkelen van systeemservices en kernelmodules is de OSDK (Operating System Development Kit) beschikbaar, die het hulpprogramma cargo-osdk levert voor het maken, bouwen, testen en uitvoeren van besturingssysteemcomponenten. Ontwikkelaars kunnen ook gebruikmaken van de OSTD (Operating System Standard Library), die een aangepaste versie van de Rust-standaardbibliotheken (crate std) bevat, geschikt voor gebruik in besturingssysteemcomponenten.

Onder de wijzigingen in versie 0.18:

  • Als onderdeel van de werkzaamheden om ervoor te zorgen dat Asterinas als gastbesturingssysteem draait in Kata Containers en Confidential Containers VM-containers, is ondersteuning geïmplementeerd voor IPC- en cgroup-namespaces, nsfs (/proc/[pid]/ns), cgroups, virtio-fs (voor toegang tot een bestandssysteem dat wordt gedeeld met het hostsysteem), virtio-rng (/dev/hwrng voor entropie van de pseudo-willekeurige getallengenerator) en vsock (voor communicatie tussen het host- en gastsysteem).
  • De ptrace-systeemoproep en debugmogelijkheden in de gebruikersruimte zijn geïmplementeerd met behulp van GDB en strace.
  • Er is een nieuwe implementatie van het ext2-bestandssysteem voorgesteld en er is een NVMe-stuurprogramma toegevoegd. Een Dentry-mechanisme (Directory Entry) is toegevoegd aan het VFS en de implementatie van de paginacache is opnieuw ontworpen.
  • De Asterinas NixOS-distributie biedt de mogelijkheid om Codex, QEMU en Firefox uit te voeren.
  • De systeemoproepen pidfd_getfd, pidfd_send_signal en pivot_root zijn toegevoegd.
  • Добавлена начальная IPv6-ondersteuning.
  • Er is een capaciteitensysteem geïmplementeerd voor het delegeren van individuele, bevoorrechte bewerkingen.
  • De eerste implementatie van het LSM-framework is toegevoegd (Linux Beveiligingsmodules).

Bron: opennet.ru

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster