Kerla: nova jezgra napisana u Rustu i kompatibilna s Linux ABI

Nedavno je objavljena informacija o projektu Kerla, koji se razvija kao kernel operativnog sustava napisan na jeziku Rust. Kod se distribuira pod licencama Apache 2.0 i MIT. Projekt razvija japanski programer Seiya Nuta, poznat po stvaranju mikrokernel operativnog sustava Resea, napisanog na jeziku C.

Nova jezgra u početku ima za cilj osigurati kompatibilnost s Linux kernelom na ABI razini, što će omogućiti neizmijenjene binarne datoteke izgrađene za Linux da rade u okruženju temeljenom na Kerla.

O Keralu

Kerla je monolitna kernel operativnog sustava stvoren od nule u Rustu. U trenutnoj fazi razvoja, Kerla može se izvoditi samo na sustavima s x86_64 arhitekturom i implementira osnovne sistemske pozive kao što su write, stat, mmap, pipe i poll, podržava signale, neimenovane cijevi i preklopke konteksta. Pozivi poput fork, wait4 i execve omogućuju kontrolu procesa. Postoji podrška za tty i pseudo-terminale (pty). Među initramfs datotečnim sustavima (koji se koriste za montiranje korijenskog FS-a) i dalje su podržani tmpfs i devfs.

Mrežni stog s podrškom za TCP i UDP utičnice također je dostupan, na temelju smoltcp biblioteke. Programer je pripremio okruženje za pokretanje koje radi u QEMU ili Firecracker VM-u s kontrolerom virtio-net, na koji se već možete povezati putem SSH-a. Musl se koristi kao knjižnica sustava, a BusyBox se koristi kao korisnički uslužni program. Temeljen na Dockeru, pripremljen je build sustav koji vam omogućuje stvaranje vlastitog initramfs pokretanja s Kerla kernelom.

Do sada je bilo malo detalja o njegovom novom kernelu, ali ono što privlači najveću pozornost na Kerline značajke jest činjenica da je napisan u Rustu. Dakle, ima li pisanje na Rustu ikakvih prednosti u odnosu na druge jezike ili u odnosu na postojeći kod? Mnogi su odgovorili potvrdno na ovo pitanje, naglašavajući prednosti sigurnosti memorije koje jezik pruža.

Također je predviđeno kada se procjenjuje točnost pristupa memoriji tijekom izvođenja. Što je više, Mozilla vjeruje da Rust nudi zaštitu od prekoračenja cijelih brojeva, zahtijeva obveznu inicijalizaciju vrijednosti varijabli prije upotrebe, prihvaća koncept referenci i nepromjenjivih varijabli prema zadanim postavkama, nudi snažno statičko tipkanje kako bi se minimizirale logičke pogreške i pojednostavljuje obradu unosa kroz podudaranje uzoraka.

Među prednostima ističemo integrirane alate za procjenu kvalitete koda i stvaranje jediničnih testova koji se mogu izvoditi ne samo na stvarnom hardveru, već i na QEMU. U osnovi, Mozilla smatra da je Rust lakši za otklanjanje pogrešaka, jer će prevodilac odbaciti pogreške. Međutim, uvale su ukazivale na neke nedostatke s Rustom.

“Kao i kod C ++, gotovo je nemoguće napisati idiomatski Rust bez upotrebe predložaka, tako da ima napuhane binarne datoteke i sporo vrijeme kompajliranja. Sve ove provjere u vremenu prevođenja također imaju svoju cijenu. Također, ako nešto prepišete, gubite staru zrelu bazu koda i ne postoji način na koji možete proizvesti bazu koda slične kvalitete u razumnom vremenu; mnogo je bolje proširiti, umjesto prepisati, program u Rustu. Bolje je proširiti program umjesto da ga prepisujete u Rustu ”, kaže softverski inženjer.

Prema njegovom tvorcu, upravo iz tog razloga Linux programeri, posebno sam Linus Torvalds, odbacili su ideju prepisivanja cijelog kernela u Rust.

“Poradite na stvaranju sigurnih veza, a zatim napišite dodatni kod u Rustu i još uvijek možete uživati ​​u tom zrelom kodu. (To radi Linux, postoje napori da se doda mogućnost pisanja modula kernela u Rustu),” dodao je. Linux programeri istražuju mogućnosti pisanja određenih novih modula kernela koristeći Rust jezik oko tri godine. To je dovelo do projekta »Rust for Linux«.

Napokon, ako vas zanima više o tome, možete potražiti detalje U sljedećem linku.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.