Publication du noyau Asterinas 0.19, écrit en Rust et compatible avec Linux

La version 0.19 du projet Asterinas a été publiée, développant un noyau écrit en Rust, destiné à être utilisé dans des systèmes d'exploitation à usage général. Le noyau fournit une ABI (Interface binaire d'application) compatible avec le noyau Linux et pouvant être utilisé à la place de celui-ci. Parallèlement, la distribution Asterinas NixOS se développe, combinant le noyau Asterinas avec l'environnement système NixOS. Le code du projet est en développement depuis 2022 et est distribué sous la licence MPL (Mozilla Public License).

Actuellement, le noyau implémente plus de 240 appels système Linux. Dans la distribution Asterinas NixOS, le fonctionnement de plus de 100 paquets de NixOS a été vérifié sur le noyau Asterinas. Parmi les paquets pris en charge se trouvent : 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 et Codex.

Le noyau assure un support complet de l'architecture x86-64, un support partiel de l'ARM64, du RISC-V 64 et du x86-64 avec isolation basée sur Intel TDX, ainsi qu'un support initial de l'architecture LoongArch 64. Les domaines d'application prioritaires mentionnés sont les systèmes basés sur l'ABI Linux, mais nécessitant un niveau de protection plus élevé. Par exemple, Asterinas est proposé pour la création d'environnements système sécurisés. machines virtuelles, pour lesquels des technologies telles que ARM CCA, AMD SEV et Intel TDX sont utilisées, ainsi que du côté du système hôte, garantissant l'exécution des conteneurs.

Pour réduire la probabilité d'erreurs lors de l'utilisation de la mémoire, qui sont la principale source des vulnérabilités les plus dangereuses, le langage Rust et la tactique d'utilisation limitée des blocs unsafe ont été employés dans l'écriture d'Asterinas. Le noyau est construit à l'aide de l'architecture framekernel, qui cherche à allier les capacités d'isolation des micro-noyaux avec l'efficacité des noyaux monolithiques.

Les composants du noyau dans Asterinas sont placés dans un espace d'adresses commun, et la sécurité est atteinte au niveau de la séparation logique entre le code sécurisé et celui dans lequel des problèmes de sécurité peuvent survenir. Le noyau est divisé en deux parties, écrites en Rust : OS Framework et OS Services. L'utilisation de blocs unsafe est interdite dans OS Services, et toutes les opérations basse niveau nécessitant l'exécution de code dans des blocs unsafe sont transférées à OS Framework et accessibles uniquement via une API de haut niveau. Tous les appels système, systèmes de fichiers et pilotes sont réalisés au niveau d'OS Services et ne peuvent pas inclure de blocs unsafe.

Pour le développement de services système et de modules du noyau, un outil OSDK (Kit de développement de système d'exploitation) est fourni, offrant l'utilitaire cargo-osdk pour créer, compiler, tester et exécuter les composants du système d'exploitation. Un ensemble de bibliothèques OSTD (Bibliothèque standard de système d'exploitation) a été préparé pour les développeurs, comprenant une édition des bibliothèques standard de Rust (crate std), adaptée pour une utilisation dans les composants du système d'exploitation.

Parmi les modifications dans Asterinas 0.19 :

  • Un sous-système DRM (Direct Rendering Manager) a été implémenté, l'appareil /dev/dri, l'interface KMS (kernel mode setting) et le pilote « modesetting », permettant de lancer la pile graphique de base basée sur X.Org Server et Mesa, au lieu du pilote fbdev auparavant utilisé, basé sur le framebuffer.


  • Le support de l'architecture AArch64 (ARM64) a été ajouté, qui est désormais utilisé comme architecture principale lors du développement, aux côtés de x86-64. Pour AArch64, un deuxième niveau de support a été implémenté, impliquant le fonctionnement d'une fonctionnalité de base, la vérification dans le système d'intégration continue et une couverture partielle par des tests.
  • Le travail d'adaptation d'Asterinas pour le lancement en tant que système invité dans des conteneurs VM avec Kata Containers et Confidential Containers a été poursuivi. Une nouvelle implémentation d'Overlayfs a été proposée, réussissant les tests standards du système de fichiers du noyau Linux et xfstests. Une nouvelle API de montage a été réalisée. Le code de virtio-fs a été stabilisé. Le support du protocole
    direct-boot, utilisé dans QEMU, Cloud Hypervisor et Firecracker, a été amélioré. Le démarrage est accéléré dans des machines virtuelles, dont la mémoire est chiffrée à l'aide de la technologie Intel TDX.
  • Dans le cadre du framework OSTD (Operating System Standard Library), une API de base a été mise en place pour créer des hyperviseurs minimalistes basés sur Intel VMX.
  • Le support du modèle de développement de pilotes en Rust a été ajouté. Un composant aster-device avec des fonctionnalités rappelant les composants du noyau Linux, comportant des primitives de base et des abstractions pour le développement de pilotes, a été créé en Rust sans code unsafe.
  • La possibilité de recompilation autonome (self-hosting) a été assurée : dans un environnement avec le noyau Asterinas et les paquets NixOS, il est désormais possible de construire le noyau Asterinas.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster