Kerla: novi kernel napisan u Rustu i kompatibilan sa Linux ABI

Nedavno su objavljene informacije o Kerla projektu, koji se razvija kao kernel operativnog sistema napisan na Rust jeziku. Kod se distribuira pod licencama Apache 2.0 i MIT. Projekat razvija japanski programer Seiya Nuta, poznat po kreiranju mikrokernel operativnog sistema Resea, napisanog na jeziku C.

Novi kernel ima za cilj prvobitno osigurati kompatibilnost s Linux kernelom na ABI nivou, koji će omogućiti neizmijenjene binarne datoteke izgrađene za Linux da rade u okruženju baziranom na Kerla.

O Keralu

Kerla je monolitno jezgro operativnog sistema kreirano od nule u Rustu. U trenutnoj fazi razvoja, Kerla može se izvoditi samo na sistemima sa x86_64 arhitekturom i implementira osnovne sistemske pozive kao što su write, stat, mmap, pipe i poll, podržava signale, neimenovane cijevi i prebacivanje konteksta. Pozivi kao što su fork, wait4 i execve pružaju za kontrolu procesa. Postoji podrška za tty i pseudo-terminale (pty). Među initramfs sistemima datoteka (koji se koriste za montiranje korijenskog FS-a), tmpfs i devfs su još uvijek podržani.

Mrežni stog sa podrškom za TCP i UDP utičnice je takođe obezbeđen, Zasnovano na smoltcp biblioteci. Programer je pripremio okruženje za pokretanje koje radi u QEMU ili Firecracker VM sa drajverom virtio-net, na koji se već možete povezati preko SSH-a. Musl se koristi kao sistemska biblioteka, a BusyBox se koristi kao korisnički uslužni program. Zasnovano na Dockeru, pripremljen je build sistem koji vam omogućava da kreirate sopstveni initramfs boot sa Kerla kernelom.

Do sada je dato nekoliko detalja o novom kernelu, ali ono što najviše privlači pažnju na Kerline karakteristike je činjenica da je napisan u Rustu. Dakle, da li pisanje na Rustu ima neke prednosti u odnosu na druge jezike ili u odnosu na postojeći kod? Mnogi su odgovorili potvrdno na ovo pitanje, ističući prednosti sigurnosti memorije koje jezik pruža.

Također je predviđeno kada se procjenjuje tačnost pristupa memoriji u vrijeme izvođenja. Šta više, Mozilla vjeruje da Rust nudi zaštitu od prekoračenja cijelih brojeva, zahtijeva obaveznu inicijalizaciju vrijednosti varijabli prije upotrebe, usvaja koncept referenci i nepromjenjivih varijabli prema zadanim postavkama, nudi snažno statičko kucanje kako bi se minimizirale logičke greške i pojednostavljuje obradu unosa kroz uparivanje obrazaca.

Među prednostima izdvajamo integrisane alate za procenu kvaliteta koda i kreiranje 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 grešaka, jer će kompajler odbaciti greške. Međutim, uvale su ukazivale na neke nedostatke Rusta.

“Kao i kod C++, gotovo je nemoguće napisati idiomatski Rust bez korištenja šablona, ​​tako da ima naduvene binarne datoteke i sporo vrijeme kompajliranja. Sve ove provjere u vrijeme kompajliranja također imaju svoju cijenu. Također, ako nešto prepišete, gubite staru zrelu kodnu bazu i ne postoji način na koji možete proizvesti bazu koda sličnog kvaliteta u razumnom vremenu; mnogo je bolje proširiti, nego ponovo pisati, program u Rustu. Bolje je proširiti program umjesto da ga prepisujete u Rust-u “, kaže softverski inženjer.

Prema njegovom kreatoru, upravo iz tog razloga Linux programeri, posebno sam Linus Torvalds, odbacili su ideju o ponovnom pisanju cijelog kernela u Rustu.

“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 već oko tri godine istražuju mogućnosti pisanja određenih novih modula kernela koristeći Rust jezik. To je dovelo do projekta »Rust for Linux«.

Konačno, ako ste zainteresirani da saznate više o tome, možete potražiti detalje Na sledećem linku.


Sadržaj članka pridržava se naših principa urednička etika. Da biste prijavili grešku, kliknite ovdje.

Budite prvi koji komentarišete

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.