Kerla projekt arendab Linuxi ühilduvat kernelit Rust-i keeles.

Kerla projekti raames töötatakse välja operatsioonisüsteemi kernelit, mis on kirjutatud Rust-i keeles. Uus kernel on algselt suunatud ABI tasemel Linuxi kerneliga ühilduvuse tagamisele, mis võimaldab Kerla-põhises keskkonnas käitada muutmata täitmisfaile, mis on loodud Linuxile. Kood on litsentseeritud Apache 2.0 ja MIT alla. Projekti arendab Jaapani arendaja Seiya Nuta, kes on tuntud kernelipõhise operatsioonisüsteemi Resea loomise poolest, mis on kirjutatud C keeles.

Kerla arenguetapis suudab see töötada ainult x86_64 arhitektuuri süsteemides ja rakendab põhiväärtpabereid, nagu write, stat, mmap, pipe ja poll, toetades signaale, nimetamata kanaleid ja konteksti vahetusi. Protsesside haldamiseks pakutakse selliseid kõnesid nagu fork, wait4 ja execve. Toetatakse tty-d ja pseudoterminaale (pty). Hetkel on faidisüsteemides toetatud initramfs (kasutatakse juur-FS-i mountimiseks), tmpfs ja devfs. Pakutakse ühenduskihti, mis toetab TCP ja UDP sokke, kasutades smoltcp teeki.

Arendaja on ette valmistanud laadimiskeskkonna, mida käivitatakse QEMU-s või virtuaalmasinas Firecrackeris virtio-net juhiga, millega saab juba SSH kaudu ühendust võtta. Süsteemiraamatukoguna kasutatakse muslit ning kasutaja utiliitidena — BusyBoxi.

Kerla projekt arendab Linuxi ühilduvat kernelit Rust-i keeles.

Dockeri põhjal on loodud ehitussüsteem, mis võimaldab luua oma laadimis-initramfs Kerla tuumaga. Eraldi arendatakse fish-i sarnast tarkvarakeelt nsh ja GUI-kihi Kazari, mis põhineb Waylandi protokollil.

Kerla projekt arendab Linuxi ühilduvat kernelit Rust-i keeles.

Rust'i kasutamine projektis vähendab koodivigu, rakendades turvalise programmeerimise tehnikaid ning parandades probleemide tuvastamise tõhusust mälu haldamisel. Rust tagab mälu turvalise kasutamise kompileerimise ajal, kontrollides viiteid, jälgides objektide omandit ja arvestades objektide elutsüklit (nähtavust), samuti hinnates mälu juurdepääsu õigsust koodi täitmise ajal. Lisaks pakub Rust vahendeid täisarvude ülevoolu ennetamiseks, nõuab muutuja väärtuste kohustuslikku algväärtustamist enne nende kasutamist, rakendab muutujaid ja viiteid põhjalikult muutumatuks (immutable) ning pakub tugevat staatilist tüpiseerimist loogikavigade minimeerimiseks, muudab sisendite käsitlemise lihtsamaks, pakkudes mustrite järgi sobitamise tööriistu.

Madala taseme komponentide, näiteks OS-i tuuma, arendamiseks pakub Rust toimetajaid, andmestruktuuride pakkimist, assembleri inline-sisendeid ja failide integreerimist assembleris. Standardraamatukogist sõltumatute tegevuste jaoks on olemas eraldi crate-pakid stringide, vektorite ja bitiflagide töötlemiseks. Eeliste hulka kuuluvad ka sisseehitatud tööriistad koodi kvaliteedi hindamiseks (linter, rust-analyzer) ja unit-testide loomine, mida saab käitada mitte ainult reaalsetel seadmetel, vaid ka QEMU-s.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster