Kerla: novo jedro, napisano v Rustu in združljivo z Linux ABI

Pred kratkim so bile objavljene informacije o projektu Kerla, ki se razvija kot jedro operacijskega sistema, napisano v jeziku Rust. Koda se distribuira pod licencama Apache 2.0 in MIT. Projekt razvija japonski razvijalec Seiya Nuta, znan po izdelavi operacijskega sistema mikrojedra Resea, napisanega v jeziku C.

Novo jedro je prvotno namenjeno zagotoviti združljivost z jedrom Linuxa na ravni ABI, ki bo omogočil nespremenjene binarne datoteke, zgrajene za Linux, da se izvajajo v okolju, ki temelji na Kerla.

Glede Kerala

Kerla je monolitno jedro operacijskega sistema ustvarjen iz nič v Rustu. Na trenutni stopnji razvoja, Kerla se lahko izvaja samo v sistemih z arhitekturo x86_64 in izvaja osnovne sistemske klice, kot so write, stat, mmap, pipe in poll, podpira signale, neimenovane cevi in ​​stikala konteksta. Za nadzor procesov zagotavljajo klici, kot so fork, wait4 in execve. Obstaja podpora za tty in psevdo terminale (pty). Med datotečnimi sistemi initramfs (ki se uporabljajo za namestitev korenskega FS) sta še vedno podprta tmpfs in devfs.

Na voljo je tudi omrežni sklad s podporo za vtičnice TCP in UDP, temelji na knjižnici smoltcp. Razvijalec je pripravil zagonsko okolje, ki deluje v QEMU ali Firecracker VM s krmilnikom virtio-net, na katerega se že lahko povežete preko SSH. Musl se uporablja kot sistemska knjižnica, BusyBox pa kot uporabniški pripomoček. Na podlagi Dockerja je bil pripravljen sistem gradnje, ki omogoča ustvarjanje lastnega zagona initramfs z jedrom Kerla.

Do zdaj je bilo o njegovem novem jedru posredovanih le nekaj podrobnosti, toda tisto, kar pritegne največ pozornosti na lastnosti Kerle, je dejstvo, da je napisano v Rustu. Ali ima torej pisanje v Rustu kakšne prednosti pred drugimi jeziki ali pred obstoječo kodo? Mnogi so na to vprašanje odgovorili pritrdilno, s poudarkom na prednostih varnosti pomnilnika, ki jih zagotavlja jezik.

Na voljo je tudi pri ocenjevanju natančnosti dostopov do pomnilnika med izvajanjem. Kaj je več, Mozilla verjame, da Rust nudi zaščito pred celimi prelivi, zahteva obvezno inicializacijo vrednosti spremenljivk pred uporabo, privzeto sprejema koncept referenc in nespremenljivih spremenljivk, ponuja močno statično tipkanje za zmanjšanje logičnih napak in poenostavlja obdelavo vnosa z ujemanjem vzorcev.

Med prednostmi izpostavljamo integrirana orodja za ocenjevanje kakovosti kode in ustvarjanje enotnih testov, ki jih je mogoče izvajati ne samo na pravi strojni opremi, ampak tudi na QEMU. V bistvu je Mozilla Rust lažje razhroščevati, saj bo prevajalnik zavrnil napake. Vendar pa so zalivi pokazali na nekatere pomanjkljivosti Rusta.

»Tako kot pri C ++ je skoraj nemogoče napisati idiomatski Rust brez uporabe predlog, zato ima napihnjene binarne datoteke in počasen čas prevajanja. Vsa ta preverjanja v času prevajanja imajo tudi svoje stroške. Prav tako, če nekaj prepišete, izgubite staro zrelo kodno zbirko in nikakor ne morete izdelati kodne baze podobne kakovosti v razumnem času; veliko bolje je razširiti program v Rust kot pa ga prepisati. Bolje je razširiti program, kot pa ga prepisati v Rust, «pravi programski inženir.

Po mnenju njegovega ustvarjalca so prav zaradi tega razvijalci Linuxa, zlasti sam Linus Torvalds, zavrnili so zamisel o ponovnem pisanju celotnega jedra v Rust.

»Naredite nekaj dela, da ustvarite varne povezave, nato napišite dodatno kodo v Rustu in še vedno lahko uživate v tej zreli kodi. (To počne Linux, trudijo se dodati možnost pisanja modula jedra v Rustu), «je dodal. Razvijalci Linuxa že približno tri leta raziskujejo možnosti pisanja določenih novih modulov jedra z uporabo jezika Rust. Tako je nastal projekt »Rust for Linux«.

Nazadnje, če vas zanima več o tem, se lahko obrnete na podrobnosti V naslednji povezavi.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.