Kerla: uus tuum, mis on kirjutatud Rustis ja ühildub Linuxi ABI-ga

Hiljuti avaldati teave Kerla projekti kohta, mida arendatakse Rust keeles kirjutatud operatsioonisüsteemi tuumana. Koodi levitatakse Apache 2.0 ja MIT litsentside all. Projekti arendab Jaapani arendaja Seiya Nuta, kes on tuntud C-keeles kirjutatud mikrokerneli operatsioonisüsteemi Resea loomise poolest.

Uue kerneli eesmärk on esialgu tagada ühilduvus Linuxi tuumaga ABI tasemel, mis võimaldab Linuxi jaoks loodud muutmata binaarfaile Kerla-põhises keskkonnas töötada.

Kerali kohta

Kerla on monoliitne operatsioonisüsteemi tuum loodud nullist Rustis. Praeguses arengujärgus Kerla saab käivitada ainult x86_64 arhitektuuriga süsteemides ja rakendab põhilisi süsteemikutseid, nagu kirjutamine, stat, mmap, toru ja poll, toetab signaale, nimeta torusid ja kontekstilüliteid. Kõned nagu fork, wait4 ja execve võimaldavad protsesse juhtida. Tugi on tty- ja pseudoterminalidele (pty). Initramfs failisüsteemidest (kasutatakse juur-FS-i ühendamiseks) toetatakse endiselt tmpfs ja devfs.

Samuti on saadaval võrgupinn, mis toetab TCP- ja UDP-pesasid, Põhineb smoltcp teegil. Arendaja on koostanud QEMU-s või Firecracker VM-is töötava alglaadimiskeskkonna draiveriga virtio-net, millega saab juba SSH kaudu ühenduse luua. Musli kasutatakse süsteemiteegina ja BusyBoxi kasutajautiliidina. Dockeri baasil on ette valmistatud ehitussüsteem, mis võimaldab luua Kerla tuumaga oma initramfsi alglaadimise.

Seni on selle uue kerneli kohta esitatud vähe üksikasju, kuid Kerla funktsioonidele tõmbab kõige rohkem tähelepanu asjaolu, et see on kirjutatud Rust keeles. Nii et kas selle kirjutamisel Rustis on eeliseid teiste keelte või olemasoleva koodi ees? Paljud vastasid sellele küsimusele jaatavalt, rõhutades mälu turvalisuse eeliseid, mida keel pakub.

Seda pakutakse ka mälupöörduse täpsuse hindamisel käitamisajal. Mis veel, Mozilla usub, et Rust pakub kaitset täisarvude ülevoolu eest, nõuab muutujate väärtuste kohustuslikku lähtestamist enne kasutamist, võtab vaikimisi kasutusele viidete ja muutumatute muutujate kontseptsiooni, pakub tugevat staatilist tippimist, et minimeerida loogilisi vigu ja lihtsustab sisendtöötlust mustrite sobitamise kaudu.

Eeliste hulgas tõstame esile integreeritud tööriistad koodi kvaliteedi hindamiseks ja ühikutestide loomine, mida saab käivitada mitte ainult päris riistvaras, vaid ka QEMU-s. Põhimõtteliselt leiab Mozilla, et Rusti on lihtsam siluda, kuna kompilaator lükkab vead tagasi. Lahed viitasid aga mõnele Rusti puudusele.

"Nagu ka C ++ puhul, on idiomaatilist Rusti peaaegu võimatu kirjutada ilma malle kasutamata, seetõttu on sellel ülepuhutud kahendfailid ja aeglased kompileerimisajad. Kõik need kompileerimisaja kontrollid on samuti tasulised. Samuti, kui kirjutate midagi ümber, kaotate vana küpse koodibaasi ja te ei saa kuidagi mõistliku aja jooksul sarnase kvaliteediga koodibaasi toota; palju parem on programmi Rustis laiendada, mitte ümber kirjutada. Parem on programmi laiendada, mitte Rustis ümber kirjutada, ”ütleb tarkvarainsener.

Selle looja sõnul on just sel põhjusel Linuxi arendajad, eriti Linus Torvalds ise, nad lükkasid tagasi idee kogu tuum Rustis ümber kirjutada.

"Tehke natuke tööd, et luua turvalisi linke, seejärel kirjutage lisakood Rusti ja saate endiselt seda küpset koodi nautida. (Seda teeb Linux, tehakse jõupingutusi, et lisada võimalus kirjutada Rustis tuumamoodul), ”lisas ta. Linuxi arendajad on umbes kolm aastat uurinud võimalusi kirjutada teatud uusi kerneli mooduleid, kasutades Rust keelt. Sellest sai alguse projekt "Rust for Linux".

Lõpuks, kui olete huvitatud sellest rohkem teada saama, võite tutvuda üksikasjadega Järgmisel lingil.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.