Neseniai buvo paskelbta informacija apie „Kerla“ projektą. „Kerla“ kuriama kaip operacinės sistemos branduolys, parašytas „Rust“ kalba. Kodas platinamas pagal „Apache 2.0“ ir MIT licencijas. Projektą kuria japonų kūrėjas Seiya Nuta, žinomas dėl „Resea“ mikrobranduolio operacinės sistemos, parašytos C kalba, sukūrimo.
Naujasis branduolys iš pradžių siekia užtikrinti suderinamumą su „Linux“ branduoliu ABI lygmeniu, leisdamas nemodifikuotiems „Linux“ sukurtiems dvejetainiams failams veikti „Kerla“ pagrindu sukurtoje aplinkoje.
Apie Keralą
„Kerla“ yra monolitinis operacinės sistemos branduolys, sukurtas nuo nulio naudojant „Rust“. Dabartiniame kūrimo etape „Kerla“ gali veikti tik x86_64 sistemose ir įgyvendina pagrindinius sisteminius iškvietimus, tokius kaip „write“, „stat“, „mmap“, „pipe“ ir „poll“. Ji palaiko signalus, neįvardytus kanalus ir kontekstinius jungiklius. Tokie iškvietimai kaip „fork“, „wait4“ ir „execve“ naudojami procesams valdyti. Palaikomi tty ir pseudoterminalai (pty). Vis dar palaikomos initramfs (naudojamos pagrindinei failų sistemai prijungti), tmpfs ir devfs failų sistemos.
Taip pat pateikiamas tinklo paketas su TCP ir UDP lizdų palaikymu, pagrįstas „smoltcp“ biblioteka. Kūrėjas parengė įkrovos aplinką, kuri veikia QEMU arba „Firecracker“ virtualiose mašinose, naudodama „virtio-net“ tvarkyklę, prie kurios jau galima prisijungti per SSH . „Musl“ naudojama kaip sistemos biblioteka, o „BusyBox“ – kaip vartotojo programa . Parengta „Docker“ pagrindu sukurta kompiliavimo sistema, leidžianti kurti savo įkrovos initramfs naudojant „Kerla“ branduolį.
Iki šiol apie naująjį branduolį buvo pateikta nedaug informacijos, tačiau labiausiai į Kerla ypatybes atkreipia dėmesį tai, kad jis parašytas Rust. Taigi ar rašymas Rust turi pranašumų prieš kitas kalbas ar esamą kodą? Daugelis į šį klausimą atsakė teigiamai, pabrėždami kalbos teikiamą atminties saugumo naudą.
Tai taip pat pateikiama vertinant atminties prieigos tikslumą vykdymo metu. Be to , „Mozilla“ mano, kad „Rust“ siūlo apsaugą nuo sveikųjų skaičių perpildymo , reikalauja privalomo kintamųjų reikšmių inicijavimo prieš naudojimą, pagal numatytuosius nustatymus taiko nuorodų ir nekintamų kintamųjų koncepciją, siūlo stiprų statinį tipizavimą, kad sumažintų logines klaidas, ir supaprastina įvesties apdorojimą naudodama šablonų atitikimą.
Tarp privalumų išskiriame integruotus įrankius kodo kokybei įvertinti ir vienetiniams testams kurti, kuriuos galima vykdyti ne tik realioje aparatinėje įrangoje, bet ir QEMU aplinkoje. Iš esmės, „Mozilla“ mano, kad „Rust“ lengviau derinti, nes kompiliatorius atmeta klaidas. Tačiau testai atkreipė dėmesį į kai kuriuos „Rust“ trūkumus.
„Kaip ir naudojant C ++, beveik neįmanoma parašyti idiotiško Rust nenaudojant šablonų, todėl jis turi išpūstus dvejetainius failus ir lėtą kompiliavimo laiką. Visi šie kompiliavimo laiko patikrinimai taip pat kainuoja. Be to, jei ką nors perrašote, prarandate seną brandžią kodų bazę ir niekaip negalite sukurti panašios kokybės kodų bazės per protingą laiką; daug geriau pratęsti, o ne perrašyti programą Rust. Geriau programą išplėsti, o ne perrašyti į Rust “, - sako programinės įrangos inžinierius.
Pasak jos kūrėjo, būtent todėl „Linux“ kūrėjai, ypač pats Linus Torvalds, atmetė idėją perrašyti visą branduolį „Rust“ kalba.
„Padarykite šiek tiek darbo, kad sukurtumėte saugias nuorodas, tada parašykite papildomą kodą į Rust ir vis tiek galėsite mėgautis tuo brandžiu kodu. (Tai yra tai, ką daro „Linux“, yra pastangų pridėti galimybę rašyti branduolio modulį „Rust“) “, - pridūrė jis. „Linux“ kūrėjai maždaug trejus metus tiria galimybes rašyti tam tikrus naujus branduolio modulius naudojant Rust kalbą. Tai paskatino projektą „Rust for Linux“.
Galiausiai, jei norite sužinoti daugiau, išsamią informaciją galite rasti šioje nuorodoje.