Asterinas projekts ir izlaidis 0.19 versiju — kodolu, kas rakstīts Rust valodā un paredzēts lietošanai vispārējas nozīmes operētājsistēmās. Kodols nodrošina ar kodolu saderīgu ABI (lietojumprogrammu bināro saskarni). Linux un to var izmantot tā vietā. Paralēli tiek izstrādāta Asterinas NixOS izplatīšana, kas apvieno Asterinas kodolu ar NixOS sistēmas vidi. Projekta kods tiek izstrādāts kopš 2022. gada un tiek izplatīts saskaņā ar MPL (Mozilla publiskā licence).
Pašlaik kodolā ir ieviesti vairāk nekā 240 sistēmas izsaukumi. LinuxIr pārbaudīts, ka Asterinas NixOS izplatījums darbojas uz Asterinas kodola ar vairāk nekā 100 NixOS pakotnēm. Atbalstītās pakotnes ietver: 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 un Codex.
Kodols nodrošina pilnīgu atbalstu x86-64 arhitektūrai, daļēju atbalstu ARM64, RISC-V 64 un x86-64 ar izolāciju, kuras pamatā ir Intel TDX, kā arī sākotnējo atbalstu LoongArch 64 arhitektūrai. Prioritārās lietojumprogrammu jomas ietver sistēmas, kuru pamatā ir Linux ABI, bet tiem nepieciešams augstāks drošības līmenis. Piemēram, Asterinas tiek piedāvāts izmantot drošas sistēmas vides izveidei. virtuālās mašīnas, kuras izolēšanai tiek izmantotas tādas tehnoloģijas kā ARM CCA, AMD SEV un Intel TDX, kā arī resursdatora sistēmas pusē, kas nodrošina konteineru palaišanu.
Lai samazinātu atmiņas kļūdu iespējamību, kas ir galvenais bīstamāko ievainojamību avots, Asterinas izmanto Rust valodu un ierobežotu nedrošu bloku izmantošanu. Kodols ir veidots, izmantojot framekernel arhitektūru, kas cenšas apvienot mikrokodolu izolācijas iespējas ar monolītu kodolu efektivitāti.
Asterinas kodola komponenti atrodas koplietojamā adrešu telpā, un drošība tiek panākta, loģiski atdalot drošo kodu no koda, kas varētu būt potenciāli ievainojama. Kodols ir sadalīts divās daļās, abas rakstītas Rust valodā: OS Framework un OS Services. OS Services aizliedz nedrošu bloku izmantošanu, un visas zema līmeņa darbības, kurām nepieciešama koda izpilde nedrošos blokos, tiek pārvietotas uz OS Framework un pieejamas tikai caur augsta līmeņa API. Visi sistēmas izsaukumi, failu sistēmas un draiveri tiek ieviesti OS Services līmenī un nevar ietvert nedrošus blokus.
Sistēmas pakalpojumu un kodola moduļu izstrādei tiek nodrošināts OSDK (Operētājsistēmas izstrādes komplekts), kas nodrošina cargo-osdk utilītu operētājsistēmas komponentu izveidei, veidošanai, testēšanai un palaišanai. Izstrādātāji var piekļūt arī OSTD (Operētājsistēmas standarta bibliotēkas) komplektam, kas ietver Rust standarta bibliotēku (crate std) izdevumu, kas pielāgots lietošanai operētājsistēmas komponentos.
Starp izmaiņām Asterinas 0.19 versijā:
- Ir ieviesta DRM (Direct Rendering Manager) apakšsistēma, /dev/dri ierīce, KMS (kodola režīma iestatīšanas) saskarne un "modesetting" draiveris, kas ļauj palaist standarta grafikas steku, kuras pamatā ir X.Org Server un Mesa, iepriekš izmantotā fbdev draivera vietā, kas izmanto kadru buferi.
- Ir pievienots atbalsts AArch64 (ARM64) arhitektūrai, kas tagad kalpo kā primārā izstrādes arhitektūra līdzās x86-64. AArch64 ir ieviests otrais atbalsta līmenis, kas nodrošina pamata funkcionalitāti, nepārtrauktu integrācijas testēšanu un daļēju testēšanas pārklājumu.
- Turpinājās darbs pie Asterinas pielāgošanas darbībai kā viessistēmai Kata konteineros un Confidential konteineros. Tika piedāvāta jauna Overlayfs ieviešana, kas veiksmīgi iztur standarta kodola failu sistēmas testus. Linux un xfstests. Ir ieviesta jauna montāžas API. Virtio-fs kods ir stabilizēts. Ir pievienots protokolu atbalsts.
tiešā palaišana, ko izmanto QEMU, Cloud Hypervisor un Firecracker. Palaišanas laiki ir paātrināti. virtuālās mašīnas, kuras atmiņa ir šifrēta, izmantojot Intel TDX tehnoloģiju. - OSTD (operētājsistēmas standarta bibliotēkas) ietvars ievieš pamata API minimālistisku hipervizoru izveidei, kuru pamatā ir Intel VMX.
- Pievienots atbalsts Rust draivera izstrādes modelim. Pievienots aster-device komponents ar funkcionalitāti, kas atgādina kodola komponentus. Linux ar pamata primitīviem un abstrakcijām draiveru izstrādei, bet rakstīts Rust valodā bez nedroša koda.
- Pašmitināšana tagad ir iespējama — tagad varat veidot Asterinas kodolu no vides, izmantojot Asterinas kodolu un NixOS pakotnes.
Avots: opennet.ru
