Die Kerla-projek ontwikkel 'n Linux-versoenbare kern in Rust

Die Kerla-projek ontwikkel 'n bedryfstelselkern wat in die Rust-taal geskryf is. Die nuwe kern is aanvanklik gefokus op die verskaffing van verenigbaarheid met die Linux-kern op die ABI-vlak, wat ongewysigde uitvoerbare lêers wat vir Linux saamgestel is, in 'n Kerla-gebaseerde omgewing sal laat loop. Die kode word onder die Apache 2.0- en MIT-lisensies versprei. Die projek word ontwikkel deur die Japannese ontwikkelaar Seiya Nuta, bekend vir die skep van die mikrokern-bedryfstelsel Resea, geskryf in die C-taal.

Op sy huidige stadium van ontwikkeling kan Kerla slegs op x86_64-stelsels werk en implementeer basiese stelseloproepe soos skryf, stat, mmap, pyp en poll, ondersteun seine, naamlose pype en konteksskakelaars. Oproepe soos fork, wait4 en execve word verskaf om prosesse te beheer. Daar is ondersteuning vir tty en pseudo-terminale (edms). Die tans ondersteunde lêerstelsels is initramfs (gebruik om die wortellêerstelsel te monteer), tmpfs en devfs. 'n Netwerkstapel met ondersteuning vir TCP- en UDP-voetstukke word verskaf, geïmplementeer op grond van die smoltcp-biblioteek.

Die ontwikkelaar het 'n selflaai-omgewing voorberei wat in QEMU of in die Firecracker virtuele masjien loop met die virtio-net-bestuurder, waaraan jy reeds via SSH kan koppel. musl word as 'n stelselbiblioteek gebruik, en BusyBox word as gebruikershulpmiddels gebruik.

Die Kerla-projek ontwikkel 'n Linux-versoenbare kern in Rust

'n Docker-gebaseerde boustelsel is voorberei wat jou toelaat om jou eie selflaai-initramfs met die Kerla-kern te skep. Afsonderlik word die nsh-sagteware-dop soortgelyk aan vis en die Kazari GUI-stapel gebaseer op die Wayland-protokol ontwikkel.

Die Kerla-projek ontwikkel 'n Linux-versoenbare kern in Rust

Deur die Rust-taal in 'n projek te gebruik, kan jy die aantal foute in die kode verminder deur veilige programmeringstegnieke te gebruik en die doeltreffendheid van die identifisering van probleme te verhoog wanneer jy met geheue werk. Rust dwing geheueveiligheid af tydens samestellingstyd deur verwysingkontrolering, objekeienaarskap en objekleeftydnasporing (bestekke), en deur die korrektheid van geheuetoegange tydens looptyd te evalueer. Roes bied ook beskerming teen heelgetal oorvloei, vereis dat veranderlike waardes geïnisialiseer moet word voor gebruik, dwing die konsep van onveranderlike verwysings en veranderlikes by verstek af, bied sterk statiese tik om logiese foute te minimaliseer, en vergemaklik die hantering van insetwaardes met patroon ooreenstem..

Vir die ontwikkeling van laevlak-komponente, soos die OS-kern, bied Rust ondersteuning vir rou wysers, struktuurverpakking, samesteller-inlyn-insetsels en inbedding van samestellerlêers. Om te werk sonder om aan die standaardbiblioteek gekoppel te wees, is daar aparte kratpakkette vir die uitvoering van bewerkings met snare, vektore en bisvlae. Nog 'n voordeel is die ingeboude gereedskap vir die assessering van kodekwaliteit (linter, roes-ontleder) en die skep van eenheidstoetse wat nie net op regte hardeware uitgevoer kan word nie, maar ook in QEMU.

Bron: opennet.ru

Voeg 'n opmerking