Izdan je kernel Asterinas 0.19, napisan na jeziku Rust i kompatibilan sa Linux-om

Objavljen je izid projekta Asterinas 0.19, ki razvija jedro, napisano v jeziku Rust in namenjeno uporabi v operacijskih sistemih splošne rabe. Jedro zagotavlja ABI (Application Binary Interface), združljivo z jedrom Linux in ga je mogoče uporabljati kot zamenjavo. Hkrati se razvija distribucija Asterinas NixOS, ki združuje jedro Asterinas s sistemskim okoljem NixOS. Koda projekta se razvija od leta 2022 in je razširjena pod licenco MPL (Mozilla Public License).

Trenutno jedro implementira več kot 240 sistemskih klicev Linux. V distribuciji Asterinas NixOS je verifikacija delovanja več kot 100 paketov iz NixOS potrdila, da delujejo nad jedrom Asterinas. Med podprtimi paketi so: 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 in Codex.

Jedro zagotavlja popolno podporo za arhitekturo x86-64, delno podporo za ARM64, RISC-V 64 in x86-64 z izolacijo na osnovi Intel TDX, kot tudi začetno podporo za arhitekturo LoongArch 64. Med prednostnimi področji uporabe so sistemi, povezani z Linux ABI, ampak zahtevajo višjo raven zaščite. Na primer, Asterinas se predlaga za oblikovanje sistemskega okolja zaščitenih, virtualnih naprav, za izolacijo katerih se uporabljajo tehnologije, kot so ARM CCA, AMD SEV in Intel TDX, pa tudi na strani gostiteljskega sistema, ki zagotavlja zagon kontejnerjev.

Za zmanjšanje verjetnosti napak pri delu z pomnilnikom, ki so glavni vir najbolj nevarnih ranljivosti, je bil pri pisanju Asterinas uporabljen jezik Rust in taktika omejenega uporabe blokov unsafe. Jedro je zgrajeno z uporabo arhitekture framekernel, ki poskuša združiti zmogljivosti izolacije mikrojedrnikov z učinkovitostjo monolitnih jedrnikov.

Komponente jedra u Asterinasu su smeštene u zajedničkom adresnom prostoru, dok se sigurnost postiže na nivou logičkog razdvajanja sigurnog koda i koda u kojem nisu isključeni sigurnosni problemi. Jezgro je podeljeno na dva dela napisane u Rustu: OS Framework i OS Services. U OS Services je zabranjena upotreba unsafe-blokova, a sve niskonivene operacije koje zahtevaju izvršenje koda u unsafe blokovima su izdvojene u OS Framework i dostupne su samo kroz visoko-nivenski API. Svi sistemski pozivi, datotečni sistemi i drajveri su implementirani na nivou OS Services i ne mogu uključivati unsafe-blokove.

Za razvoj sistemskih usluga i modula jezgra dostupan je alat OSDK (Operating System Development Kit), koji pruža alat cargo-osdk za kreiranje, kompajliranje, testiranje i pokretanje komponenti operativnog sistema. Za programere je pripremljen paket biblioteka OSTD (Operating System Standard Library), koji uključuje izdanja standardnih biblioteka Rust (crate std), prilagođenih za upotrebu u komponentama operativnog sistema.

Među promenama u Asterinas 0.19:

  • Implementiran je podsystem DRM (Direct Rendering Manager), uređaj /dev/dri, KMS (kernel mode setting) interfejs i drajver 'modesetting', koji su omogućili pokretanje uobičajenog grafičkog steka zasnovanog na X.Org Serveru i Mesu, umesto ranije korišćenog fbdev drajvera koji koristi framebuffer.


  • Dodata je podrška za arhitekturu AArch64 (ARM64), koja se sada koristi kao glavna arhitektura u razvoju, pored x86-64. Za AArch64 je implementiran drugi nivo podrške, što podrazumeva funkcionalnost osnovnih operacija, proveru u sistemu kontinuirane integracije i delimično pokrivenje testovima.
  • Nastavljeno je sa prilagođavanjem Asterinas-a za pokretanje kao gostujući sistem u VM-kontejnerima Kata Containers i Confidential Containers. Predložena je nova implementacija Overlayfs, koja uspešno prolazi kroz standardne testne setove FS jezgra Linuxa i xfstests. Implementiran je novi API za montiranje. Stabilizovan je kod virtio-fs. Dodata je podrška za protokol
    direct-boot, korišćen u QEMU, Cloud Hypervisoru i Firecrackeru. Ubrzana je inicijalizacija u virtualnim mašinama, čije se memorije šifruju uz pomoć tehnologije Intel TDX.
  • U okviru OSTD (Operating System Standard Library) implemented is the basic API for creating minimalist hypervisors based on Intel VMX.
  • Dodana je podpora za razvoj gonilnikov v jeziku Rust. Dodana je komponenta aster-device z zmogljivostmi, ki spominjajo na komponente jedra Linux z osnovnimi prvinami in abstrakcijami za razvoj gonilnikov, napisana pa je v Rustu brez unsafe-kode.
  • Zagotavljena je možnost lastne ponovne sestavitve (self-hosting) — iz okolja z jedrom Asterinas in paketi NixOS je zdaj mogoče sestaviti jedro Asterinas.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster