En gruppe udviklere fra Kina udvikler Asterinas-kernen, der er skrevet i Rust og beregnet til brug i generelle operativsystemer. For at lette integrationen med allerede udviklede systemkomponenter tilbyder kernen en ABI (Application Binary Interface), som er kompatibel med Linux-kernen og kan bruges i stedet for den. Projektets kode distribueres under MPL (Mozilla Public License).
Projektet har været under udvikling siden efteråret 2022 og har til hensigt at opnå et niveau egnet til bred anvendelse i år. virtuelle maskiner med x86-64-arkitektur. Fra næste år planlægger man at fokusere på at implementere understøttelse af hardware og andre CPU-arkitekturer. Prioriterede anvendelsesområder nævnes som systemer, der er afhængige af Linux ABI, men kræver et højere niveau af sikkerhed. For eksempel foreslås det at anvende Asterinas til at opbygge et systemmiljø for sikre. virtual machines, som isolerer disse ved hjælp af teknologier som ARM CCA, AMD SEV og Intel TDX, samt på værtsystemet, der sikrer kørsel af containere.
For at reducere sandsynligheden for fejl i hukommelsen, som er den primære kilde til de farligste sårbarheder, er Rust og en taktik med begrænset brug af unsafe-blokke blevet anvendt i udviklingen af Asterinas. Kernen er bygget med en framekernel-arkitektur, hvor udviklerne har forsøgt at kombinere mikrokerne-isoleringsevner med effektiviteten af monolitiske kerner.
Kernens komponenter i Asterinas er placeret i et fælles adresseområde, og sikkerhed opnås gennem logisk opdeling af sikker kode og kode, hvor problemer med sikkerhed ikke kan udelukkes. Kernen er opdelt i to dele, skrevet i Rust: OS Framework og OS Services. Anvendelse af unsafe-blokke er forbudt i OS Services, og alle lavniveauoperationer, der kræver udførelse af kode i unsafe-blokke, er flyttet til OS Framework og er kun tilgængelige via et højere niveau API. Alle systemopkald, filsystemer og drivere implementeres på niveauet OS Services og kan ikke inkludere unsafe-blokke.
Når du udvikler systemtjenester og kernekomponenter, anbefales det at bruge OSDK (Operating System Development Kit), som leverer værktøjet cargo-osdk til oprettelse, bygning, test og kørsel af operativsystemkomponenter. Der er også forberedt et sæt af OSTD (Operating System Standard Library) biblioteker til udviklerne, som er en udgave af de standard Rust biblioteker (crate std), tilpasset til brug i operativsystemkomponenter.
Kilde: opennet.ru
