Projekat Asterinas je objavio verziju 0.19, kernel napisan u Rustu i dizajniran za upotrebu u operativnim sistemima opšte namjene. Kernel pruža ABI (Application Binary Interface) kompatibilan sa kernelom. Linux i može se koristiti umjesto toga. Distribucija Asterinas NixOS, koja kombinuje Asterinas kernel sa NixOS sistemskim okruženjem, razvija se paralelno. Kod projekta je u razvoju od 2022. godine i distribuira se pod MPL (Mozilla Public License).
Trenutno je u kernelu implementirano više od 240 sistemskih poziva. LinuxDistribucija Asterinas NixOS-a je provjerena za rad na Asterinas kernelu sa preko 100 NixOS paketa. Podržani paketi uključuju: 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 i Codex.
Jezgro pruža punu podršku za x86-64 arhitekturu, djelomičnu podršku za ARM64, RISC-V 64 i x86-64 sa izolacijom zasnovanom na Intel TDX-u, kao i početnu podršku za LoongArch 64 arhitekturu. Prioritetna područja primjene uključuju sisteme zasnovane na Linux ABI-ji, ali koji zahtijevaju viši nivo sigurnosti. Na primjer, Asterinas se predlaže za upotrebu u stvaranju sigurnog sistemskog okruženja. virtuelne mašine, za čiju izolaciju se koriste tehnologije poput ARM CCA, AMD SEV i Intel TDX, kao i na strani host sistema, što osigurava pokretanje kontejnera.
Da bi se smanjila vjerovatnoća memorijskih grešaka, glavnog izvora najopasnijih ranjivosti, Asterinas koristi Rust jezik i ograničenu upotrebu nesigurnih blokova. Jezgro je izgrađeno korištenjem framekernel arhitekture, koja pokušava kombinovati izolacijske mogućnosti mikrojezgri s efikasnošću monolitnih jezgri.
Komponente jezgra u Asterinasu nalaze se u zajedničkom adresnom prostoru, a sigurnost se postiže logičkim odvajanjem sigurnog koda od koda koji bi potencijalno mogao biti ranjiv. Jezgro je podijeljeno na dva dijela, oba napisana u Rustu: OS Framework i OS Services. OS Services zabranjuje upotrebu nesigurnih blokova, a sve operacije niskog nivoa koje zahtijevaju izvršavanje koda u nesigurnim blokovima premještaju se u OS Framework i dostupne su samo putem API-ja visokog nivoa. Svi sistemski pozivi, datotečni sistemi i drajveri implementirani su na nivou OS Services i ne mogu uključivati nesigurne blokove.
Za razvoj sistemskih servisa i kernel modula, obezbijeđen je OSDK (Operating System Development Kit), koji pruža uslužni program cargo-osdk za kreiranje, izgradnju, testiranje i pokretanje komponenti operativnog sistema. Programeri također mogu pristupiti OSTD (Operating System Standard Library) skupu, koji uključuje izdanje standardnih biblioteka Rust (crate std) prilagođeno za upotrebu u komponentama operativnog sistema.
Među promjenama u Asterinasu 0.19:
- Implementirani su DRM (Direct Rendering Manager) podsistem, /dev/dri uređaj, KMS (kernel mode setting) interfejs i "modesetting" drajver, što omogućava pokretanje standardnog grafičkog steka baziranog na X.Org Serveru i Mesi, umjesto prethodno korištenog fbdev drajvera, koji koristi framebuffer.
- Dodana je podrška za arhitekturu AArch64 (ARM64), koja sada služi kao primarna razvojna arhitektura uz x86-64. Za AArch64 je implementiran drugi nivo podrške, osiguravajući osnovnu funkcionalnost, kontinuirano integracijsko testiranje i djelimičnu pokrivenost testiranjem.
- Nastavljen je rad na prilagođavanju Asterinasa za pokretanje kao gostujućeg sistema u Kata kontejnerima i Confidential kontejnerima. Predložena je nova implementacija Overlayfs-a koja uspješno prolazi standardne pakete testova kernel datotečnog sistema. Linux i xfstests. Implementiran je novi API za montiranje. Kod virtio-fs je stabiliziran. Dodana je podrška za protokole.
direktno pokretanje, koristi se u QEMU, Cloud Hypervisor i Firecracker. Vrijeme pokretanja je ubrzano. virtuelne mašine, čija je memorija šifrirana pomoću Intel TDX tehnologije. - OSTD (Standardna biblioteka operativnog sistema) okvir implementira osnovni API za kreiranje minimalističkih hipervizora zasnovanih na Intel VMX-u.
- Dodana je podrška za model razvoja Rust drajvera. Dodana je komponenta aster-device sa funkcionalnošću koja podsjeća na komponente kernela. Linux sa osnovnim primitivima i apstrakcijama za razvoj drajvera, ali napisan u Rustu bez nesigurnog koda.
- Samostalno hostovanje je sada moguće - sada možete izgraditi Asterinas kernel iz okruženja s Asterinas kernelom i NixOS paketima.
izvor: opennet.ru
