Izdanje jezgre Asterinas 0.18, napisane na jeziku Rust i kompatibilne s Linuxom

Predstavljen je izdanak projekta Asterinas 0.18, koji razvija jezgru napisanu na jeziku Rust i namijenjeno je korištenju u operativnim sustavima opće namjene. Jezgro pruža ABI (Application Binary Interface) koji je kompatibilan s Linux jezgrom i može se koristiti umjesto nje. Paralelno se razvija distribucija Asterinas NixOS, koja kombinira jezgru Asterinas s sustavnim okruženjem NixOS. Kod projekta distribuiran je pod MPL (Mozilla Public License) licencom.

Trenutno u jezgru postoji oko 240 sistemskih poziva Linuxa. U distribuciji Asterinas NixOS verificirano je da radi više od 100 paketa iz NixOS-a. Među podržanim paketima su: 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.

U jezgru je osigurana potpuna podrška za arhitekturu x86-64, djelomična podrška za RISC-V 64 i x86-64 s izolacijom temeljenom na Intel TDX, kao i početna podrška za arhitekturu LoongArch 64. Među prioritetnim područjima primjene su sustavi vezani uz Linux ABI, ali koji zahtijevaju viši nivo sigurnosti. Na primjer, Asterinas se predlaže za formiranje sustavnog okruženja za zaštićene, za čiju izolaciju se koriste tehnologije kao što su ARM CCA, AMD SEV i Intel TDX, kao i na strani host-sustava koji omogućava pokretanje kontejnera. virtualnih mašina, za izolaciju kojih se koriste takve tehnologije kao ARM CCA, AMD SEV i Intel TDX, kao i na strani host-sustava koji osigurava pokretanje kontejnera.

Kako bi se smanjila vjerojatnost pojave grešaka pri radu s memorijom, koje su glavni izvor najopasnijih ranjivosti, pri pisanju Asterinas koristi se jezik Rust i taktika ograničenog korištenja unsafe-blokova. Jezgro je izgrađeno koristeći arhitekturu framekernel, u kojoj se pokušavaju spojiti mogućnosti izolacije mikrojezgri s učinkovitošću monolitnih jezgra.

Komponente jezgra u Asterinas smještene su u zajedničkom adresnom prostoru, a sigurnost se postiže na razini logičke podjele sigurnog koda i koda u kojem nije isključena pojava problema sa sigurnošću. Jezgro je podijeljeno na dva dijela, napisane na Rustu: OS Framework i OS Services. U OS Services je zabranjena primjena unsafe-blokova, a sve niskonivojske operacije koje zahtijevaju izvršavanje koda u unsafe blokovima premještene su u OS Framework i dostupne su samo putem visokonivojskog API-ja. Svi sistemski pozivi, datotečni sustavi i drajveri implementiraju se na razini OS Services i ne mogu uključivati unsafe-blokove.

Za razvoj sistemskih servisa i modula jezgre, dostupan je alat OSDK (Operating System Development Kit), koji pruža alat cargo-osdk za kreiranje, kompilaciju, testiranje i pokretanje komponenti operacijskog sustava. Za programere je pripremljen set biblioteka OSTD (Operating System Standard Library), koji uključuje adaptiranu verziju standardnih Rust biblioteka (crate std) za upotrebu u komponentama operacijskog sustava.

Među promjenama u verziji 0.18:

  • Kao dio napora za omogućavanje pokretanja Asterinas-a kao gostujućeg sustava unutar VM kontejnera Kata Containers i Confidential Containers, implementirana je podrška za IPC i cgroup imenske prostore, nsfs (\proc\[pid]\ns), cgroups, virtio-fs (za pristup zajedničkom sustavu datoteka s host sustavom), virtio-rng (\dev\hwrng za entropiju za generator pseudo-slučajnih brojeva) i vsock (za komunikaciju između host i gostujućih sustava).
  • Implementiran je sistemski poziv ptrace i mogućnosti za debagiranje u korisničkom prostoru uz pomoć GDB-a i strace-a.
  • Predložena je nova implementacija datotečnog sustava ext2 i dodan NVMe drajver. U VFS je dodat mehanizam Dentry (Directory Entry) i redizajnirana je implementacija stranice keširanja.
  • U distribuciji Asterinas NixOS implementirana je mogućnost pokretanja Codex-a, QEMU-a i Firefox-a.
  • Dodani su sistemski pozivi pidfd_getfd, pidfd_send_signal, pivot_root.
  • Dodana je početna podrška za IPv6.
  • Implementiran je sustav capabilities za delegiranje pojedinačnih privilegiranih operacija.
  • Dodana je početna implementacija okvira LSM (Linux Security Modules).

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster