Kerla projektas kuria su Linux suderinamą branduolį Rust kalba

Kerla projektas kuria operacinės sistemos branduolį, parašytą Rust kalba. Naujasis branduolys iš pradžių yra skirtas suderinamumui su Linux branduoliu ABI lygiu, kuris leis nepakeistiems vykdomiesiems failams, sudarytiems Linux, paleisti Kerla aplinkoje. Kodas platinamas pagal Apache 2.0 ir MIT licencijas. Projektą kuria japonų kūrėjas Seiya Nuta, žinomas sukūręs mikrobranduolių operacinę sistemą Resea, parašytą C kalba.

Dabartiniame kūrimo etape „Kerla“ gali veikti tik x86_64 sistemose ir įgyvendina pagrindinius sistemos iškvietimus, tokius kaip rašymas, stat, mmap, vamzdis ir apklausa, palaiko signalus, neįvardytus vamzdžius ir konteksto jungiklius. Skambučiai, tokie kaip fork, wait4 ir execve, yra numatyti procesams valdyti. Yra tty ir pseudo terminalų (pty) palaikymas. Šiuo metu palaikomos failų sistemos yra initramfs (naudojamos šakninei failų sistemai prijungti), tmpfs ir devfs. Pateikiamas tinklo dėklas, palaikantis TCP ir UDP lizdus, ​​įdiegtas remiantis smoltcp biblioteka.

Kūrėjas paruošė įkrovos aplinką, kuri veikia QEMU arba Firecracker virtualioje mašinoje su virtio-net tvarkykle, prie kurios jau galima prisijungti per SSH. musl naudojama kaip sistemos biblioteka, o „BusyBox“ – kaip vartotojo paslaugos.

Kerla projektas kuria su Linux suderinamą branduolį Rust kalba

Parengta „Docker“ pagrindu sukurta kūrimo sistema, leidžianti sukurti savo įkrovos initramfs naudojant „Kerla“ branduolį. Atskirai kuriamas „nsh“ programinės įrangos apvalkalas, panašus į „fish“, ir „Kazari“ GUI krūva, pagrįsta Wayland protokolu.

Kerla projektas kuria su Linux suderinamą branduolį Rust kalba

Rust kalbos naudojimas projekte leidžia sumažinti klaidų skaičių kode naudojant saugius programavimo būdus ir padidinti problemų identifikavimo efektyvumą dirbant su atmintimi. „Rust“ užtikrina atminties saugumą kompiliavimo metu, tikrindama nuorodų, objektų nuosavybės ir objekto eksploatavimo trukmės stebėjimo (apimčių) ir įvertindama atminties prieigos teisingumą vykdymo metu. Be to, „Rust“ suteikia apsaugą nuo sveikųjų skaičių perpildymo, reikalauja, kad kintamosios vertės būtų inicijuotos prieš naudojimą, pagal numatytuosius nustatymus įgyvendina nekintamų nuorodų ir kintamųjų koncepciją, siūlo tvirtą statinį spausdinimą, kad sumažintų logines klaidas, ir supaprastina įvesties verčių tvarkymą. modelio suderinimo dėka..

Kuriant žemo lygio komponentus, tokius kaip OS branduolys, „Rust“ teikia neapdorotų rodyklių, struktūros pakavimo, surinkėjo įdėklų ir surinkėjo failų įterpimo palaikymą. Norint dirbti neprisijungus prie standartinės bibliotekos, yra atskiri dėžių paketai, skirti operacijoms su eilutėmis, vektoriais ir bitų vėliavėlėmis atlikti. Kitas privalumas – įmontuoti įrankiai, skirti įvertinti kodo kokybę (linter, rūdžių analizatorius) ir sukurti vienetinius testus, kurie gali būti vykdomi ne tik su realia aparatūra, bet ir QEMU.

Šaltinis: opennet.ru

Добавить комментарий