Asterinas-projektet har udgivet version 0.19, en kerne skrevet i Rust og designet til brug i generelle operativsystemer. Kernen leverer en ABI (Application Binary Interface), der er kompatibel med kernen. Linux og kan bruges i stedet. Asterinas NixOS-distributionen, som kombinerer Asterinas-kernen med NixOS-systemmiljøet, udvikles parallelt. Projektets kode har været under udvikling siden 2022 og distribueres under MPL (Mozilla Public License).
I øjeblikket er der mere end 240 systemkald implementeret i kernen. LinuxAsterinas NixOS-distributionen er verificeret til at køre oven på Asterinas-kernen med over 100 NixOS-pakker. Understøttede pakker inkluderer: 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 og Codex.
Kernen yder fuld understøttelse af x86-64-arkitekturen, delvis understøttelse af ARM64, RISC-V 64 og x86-64 med isolation baseret på Intel TDX, samt initial understøttelse af LoongArch 64-arkitekturen. Prioriterede anvendelsesområder omfatter systemer baseret på Linux ABI'er, men kræver et højere sikkerhedsniveau. For eksempel foreslås Asterinas til brug i oprettelsen af et sikkert systemmiljø. virtuel maskine, til isolering af hvilke teknologier som ARM CCA, AMD SEV og Intel TDX anvendes, samt på værtssystemsiden, hvilket sikrer lanceringen af containere.
For at reducere sandsynligheden for hukommelsesfejl, den primære kilde til de farligste sårbarheder, bruger Asterinas Rust-sproget og en begrænset brug af usikre blokke. Kernen er bygget ved hjælp af framekernel-arkitekturen, som forsøger at kombinere mikrokernernes isoleringsevner med effektiviteten af monolitiske kerner.
Kernekomponenter i Asterinas er placeret i et delt adresserum, og sikkerhed opnås gennem logisk adskillelse af sikker kode fra kode, der potentielt kan være sårbar. Kernen er opdelt i to dele, begge skrevet i Rust: OS Framework og OS Services. OS Services forbyder brugen af usikre blokke, og alle lavniveauoperationer, der kræver kodeudførelse i usikre blokke, flyttes til OS Framework og er kun tilgængelige via en API på højt niveau. Alle systemkald, filsystemer og drivere implementeres på OS Services-niveau og må ikke indeholde usikre blokke.
Til udvikling af systemtjenester og kernemoduler leveres OSDK (Operating System Development Kit), som leverer værktøjet cargo-osdk til oprettelse, opbygning, testning og kørsel af operativsystemkomponenter. Udviklere kan også få adgang til OSTD-sættet (Operating System Standard Library), som inkluderer en udgave af Rust-standardbibliotekerne (crate std) tilpasset til brug i operativsystemkomponenter.
Blandt ændringerne i Asterinas 0.19:
- DRM-undersystemet (Direct Rendering Manager), /dev/dri-enheden, KMS-grænsefladen (kernel mode setting) og driveren "modesetting" er blevet implementeret, hvilket muliggør lanceringen af en standard grafikstak baseret på X.Org Server og Mesa i stedet for den tidligere anvendte fbdev-driver, der bruger en framebuffer.
- Understøttelse af AArch64-arkitekturen (ARM64) er blevet tilføjet, og den fungerer nu som den primære udviklingsarkitektur sammen med x86-64. Et andet niveau af understøttelse er blevet implementeret for AArch64, hvilket sikrer grundlæggende funktionalitet, kontinuerlig integrationstest og delvis testdækning.
- Arbejdet med at tilpasse Asterinas til at køre som gæstesystem i Kata Containere og Fortrolige Containere fortsatte. En ny Overlayfs-implementering blev foreslået, der bestod standard testpakker for kernelfilsystemer. Linux og xfstests. En ny monterings-API er blevet implementeret. Virtio-fs-koden er blevet stabiliseret. Protokolunderstøttelse er blevet tilføjet.
direkte opstart, brugt i QEMU, Cloud Hypervisor og Firecracker. Opstartstiderne er blevet accelereret. virtuelle maskiner, hvis hukommelse er krypteret ved hjælp af Intel TDX-teknologi. - OSTD-frameworket (Operating System Standard Library) implementerer en grundlæggende API til at oprette minimalistiske hypervisorer baseret på Intel VMX.
- Tilføjet understøttelse af Rust-driverudviklingsmodellen. En aster-device-komponent med funktionalitet, der minder om kernekomponenter, er blevet tilføjet. Linux med grundlæggende primitiver og abstraktioner til driverudvikling, men skrevet i Rust uden usikker kode.
- Selvhosting er nu muligt - du kan nu bygge Asterinas-kernen fra et miljø med Asterinas-kernen og NixOS-pakkerne.
Kilde: opennet.ru
