Het Kerla-project ontwikkelt een Linux-compatibele kernel in de Rust-taal.

Binnen het Kerla-project wordt de ontwikkeling van de besturingssysteemkernel, geschreven in Rust, uitgevoerd. De nieuwe kernel is oorspronkelijk gericht op het waarborgen van compatibiliteit met de Linux-kernel op ABI-niveau, wat de mogelijkheid biedt om ongewijzigde uitvoerbare bestanden die voor Linux zijn samengesteld te draaien in een omgeving gebaseerd op Kerla. De code wordt verspreid onder de Apache 2.0 en MIT-licenties. Het project wordt ontwikkeld door de Japanse ontwikkelaar Seiya Nuta, bekend om het creƫren van het microkernel-besturingssysteem Resea, geschreven in de taal C.

In de huidige fase van ontwikkeling kan Kerla alleen draaien op systemen met de x86_64-architectuur en implementeert het basis systeemoproepen zoals write, stat, mmap, pipe en poll, ondersteunt signalen, onbenoembare pijpen en contextwisselingen. Voor procesbeheer zijn er oproepen beschikbaar, zoals fork, wait4 en execve. Er is ondersteuning voor tty en pseudoterminals (pty). De ondersteunde bestandssystemen zijn initramfs (gebruikt voor het mounten van het rootbestandssysteem), tmpfs en devfs. Er is een netwerkstack beschikbaar met ondersteuning voor TCP- en UDP-sockets, geĆÆmplementeerd op basis van de smoltcp-bibliotheek.

De ontwikkelaar heeft een opstartomgeving voorbereid, die kan worden gestart in QEMU of in een virtuele machine Firecracker met de virtio-netdriver, waarmee al via SSH kan worden verbonden. Als systeembibliotheek wordt musl gebruikt, en als gebruikershulpmiddelen BusyBox.

Het Kerla-project ontwikkelt een Linux-compatibele kernel in de Rust-taal.

Op basis van Docker is er een build-systeem voorbereid dat het mogelijk maakt om eigen opstart-initramfs met de Kerla-kernel te maken. Daarnaast worden een shell die lijkt op fish en de GUI-stack Kazari, gebaseerd op het Wayland-protocol, apart ontwikkeld.

Het Kerla-project ontwikkelt een Linux-compatibele kernel in de Rust-taal.

Het gebruik van de Rust-taal in een project vermindert het aantal fouten in de code door de toepassing van veilige programmeertechnieken en het verhogen van de efficiëntie bij het opsporen van problemen met het geheugen. Veilige geheugenwerking wordt in Rust tijdens de compileertijd gegarandeerd door referentie-controle, het volgen van eigendom van objecten en het in acht nemen van de levensduur van objecten (scopes), evenals door de correctheid van geheugentoegang tijdens de uitvoering van de code te beoordelen. Bovendien biedt Rust middelen ter bescherming tegen integer-overflows, vereist het de verplichte initialisatie van variabelen vóór gebruik, past het standaard de concepten van onveranderlijkheid (immutable) aan voor referenties en variabelen, en biedt het sterke statische typebetrekking om logische fouten te minimaliseren, vereenvoudigt het de verwerking van invoerwaarden door middel van patroonmatching.

Voor de ontwikkeling van laag-niveau componenten, zoals de kernel van het besturingssysteem, biedt Rust ondersteuning voor raw pointers, het verpakken van structuren, inline assembly-invoegen, en het insluiten van bestanden in assembly. Voor gebruik zonder afhankelijkheid van de standaardbibliotheek zijn er aparte crate-pakketten beschikbaar voor het uitvoeren van operaties met strings, vectoren en bitflags. Voordelen omvatten ook ingebouwde tools voor kwaliteitsbeoordeling van de code (linter, rust-analyzer) en het creƫren van unit tests, die kunnen worden uitgevoerd op zowel echte hardware als in QEMU.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster