Kerla projekt arendab Rustis Linuxiga ühilduvat tuuma

Kerla projekt arendab Rust keeles kirjutatud operatsioonisüsteemi tuuma. Uus kernel on esialgu keskendunud Linuxi tuumaga ühilduvuse pakkumisele ABI tasemel, mis võimaldab Linuxi jaoks kompileeritud muutmata käivitatavatel failidel töötada Kerla-põhises keskkonnas. 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.

Praeguses arendusjärgus saab Kerla töötada ainult x86_64 süsteemides ja rakendab põhilisi süsteemikutseid, nagu kirjutamine, stat, mmap, toru ja poll, toetab signaale, nimeta torusid ja kontekstilüliteid. Protsesside juhtimiseks pakutakse selliseid kõnesid nagu fork, wait4 ja execve. Tugi on tty- ja pseudoterminalidele (pty). Praegu toetatud failisüsteemid on initramfs (kasutatakse juurfailisüsteemi ühendamiseks), tmpfs ja devfs. Pakutakse TCP- ja UDP-pistikupesade toega võrgupinu, mis on rakendatud smoltcp teegi alusel.

Arendaja on koostanud QEMU-s või Firecrackeri virtuaalmasinas virtio-neti draiveriga töötava alglaadimiskeskkonna, millega saab juba SSH kaudu ühenduse luua. musli kasutatakse süsteemiteegina ja BusyBoxi kasutajautiliitidena.

Kerla projekt arendab Rustis Linuxiga ühilduvat tuuma

Valmistatud on Dockeri-põhine ehitussüsteem, mis võimaldab luua Kerla kerneliga oma alglaadimisinitramfsid. Eraldi arendatakse kaladele sarnast nsh-tarkvara kest ja Waylandi protokollil põhinev Kazari GUI pinu.

Kerla projekt arendab Rustis Linuxiga ühilduvat tuuma

Rooste keele kasutamine projektis võimaldab vähendada koodis esinevate vigade arvu, kasutades ohutuid programmeerimisvõtteid ja suurendades probleemide tuvastamise efektiivsust mäluga töötamisel. Rooste tagab mälu ohutuse kompileerimise ajal, kontrollides viidet, objektide omandiõigust ja objekti eluea jälgimist (ulatusalasid) ning hinnates mälupöörduste õigsust käitusajal. Lisaks pakub Rust kaitset täisarvude ületäitumise eest, nõuab muutuvate väärtuste lähtestamist enne kasutamist, rakendab vaikimisi muutumatute viidete ja muutujate kontseptsiooni, pakub tugevat staatilist tippimist loogikavigade minimeerimiseks ja lihtsustab sisendväärtuste käsitlemist. tänu mustri sobitamisele..

Madala taseme komponentide, näiteks OS-i kerneli, arendamiseks pakub Rust tuge töötlemata osutitele, struktuuride pakkimisele, monteerija sisestele ja assemblerfailide manustamisele. Et töötada ilma standardteegiga sidumata, on stringide, vektorite ja bitilippudega toimingute tegemiseks eraldi kastipaketid. Teiseks eeliseks on sisseehitatud tööriistad koodikvaliteedi hindamiseks (linter, roosteanalüsaator) ja ühiktestide loomiseks, mida saab käivitada mitte ainult reaalsel riistvaral, vaid ka QEMU-s.

Allikas: opennet.ru

Lisa kommentaar