Kerla projekti raames arendatakse operatsioonisüsteemi tuuma, mis on kirjutatud Rust keeles. Uus tuum on algselt suunatud ABI tasemel ühilduvuse tagamisele Linuxi tuumaga, mis võimaldab Kerla alusel keskkonnas käitada muutmata täitmisfaile, mis on loodud Linuxile. Kood on levitatud litsentside alla Apache 2.0 ja MIT. Projekti arendab Jaapani arendaja Seiya Nuta, kes on tuntud mikrokernele põhineva operatsioonisüsteemi Resea loomise poolest, mis on kirjutatud C keeles.
Praegusel Kerla arendusetapis saab süsteem töötada ainult x86_64 arhitektuuriga seadmetes ning toetab põhilisi süsteemikutsungeid, nagu write, stat, mmap, pipe ja poll, toetab signaale, nimetatud kanaleid ja konteksti vahetust. Protsesside haldamiseks on olemas kutsungid nagu fork, wait4 ja execve. Toetatakse tty ja psevdoterminale (pty). Failisüsteemidest toetatakse praegu initramfs (kasutatakse juurte failisüsteemi mountimiseks), tmpfs ja devfs. Saadaval on võrgu stack, mis toetab TCP ja UDP sokkleid, mis on rakendatud smoltcp teegi baasil.
Arendaja on valmistanud laadimiskeskkonna, mida saab käitada QEMU-s või virtuaalses masinas Firecrackeris virtio-net draiveriga, millele saab juba SSH kaudu juurde pääseda. Süsteemi teegi jaoks kasutatakse musl, ning kasutajate utiliidid on BusyBox.

Docker'i põhjal on loodud ehitussüsteem, mis võimaldab luua oma laadimis initramfs Kerla tuumaga. Täiendavalt arendatakse fishile sarnast nsh käsurealiidest ja GUI steki Kazari, mis põhineb Waylandi protokollil.

Rusti keele kasutamine projektis vähendab koodivigu, kasutades turvalise programmeerimise tehnikaid ja suurendades probleemide avastamise efektiivsust mäluga töötamisel. Rust tagab turvalise mälu kasutamise kompileerimise ajal viidatud kontrollimise, objektide omamise jälgimise ja objektide eluiga (ulatus) arvesse võtmise kaudu ning hindab mälu juurdepääsu õigsust koodi täitmise ajal. Lisaks pakub Rust vahendeid tervete arvude ülevoolude kaitsmiseks, nõuab muutuja väärtuste kohustuslikku initsialiseerimist enne kasutamist, rakendab vaikesena muutmatute (immutable) viidete ja muutujate kontseptsiooni ning pakub tugevat staatilist tüpiseerimist, et minimeerida loogilisi vigu ning lihtsustada sisendväärtuste töötlemist mustrite ühtesamadamise vahendite kaudu.
Madala taseme komponentide, nagu operatsioonisüsteemi tuum, arendamiseks pakub Rust to support raw-viidiseid, struktuuride paketitamist, assembleri inline-sisendeid ja failide sissetoomist assembleris. Standardraamatukogist sõltumatuteks töödeks on eraldatud crate-paketid stringide, vektorite ja bitilippude operatsioonide täitmiseks. Samuti märgitakse tugevateks külgedeks sisseehitatud tööriistad koodi kvaliteedi hindamiseks (linter, rust-analyzer) ja unit-testide loomine, mida saab käivitada mitte ainult reaalses riistvaras, vaid ka QEMU-s.
Allikas: opennet.ru
