Projektet Kerla udvikler en Linux-kompatibel kerne skrevet i Rust.

I projektet Kerla udvikles der et operativsystemkerne skrevet i Rust. Den nye kerne er oprindeligt designet til at sikre kompatibilitet med Linux-kerne på ABI-niveau, hvilket vil gøre det muligt at køre uændrede eksekverbare filer, der er bygget til Linux, i et miljø baseret på Kerla. Koden distribueres under licenserne Apache 2.0 og MIT. Projektet udvikles af den japanske udvikler Seiya Nuta, kendt for at have skabt den mikrokernel-baserede operativsystem Resea, skrevet i C.

På det nuværende udviklingsstadium kan Kerla kun køre på systemer med x86_64-arkitektur og implementerer grundlæggende systemopkald som write, stat, mmap, pipe og poll, understøtter signaler, anonyme rør og kontekstskift. Til processtyring leveres opkald som fork, wait4 og execve. Der er støtte til tty og pseudoterminaler (pty). Af filsystemer understøttes indtil videre initramfs (anvendes til at montere rodfilsystemet), tmpfs og devfs. Der tilbydes et netværksstak med understøttelse af TCP- og UDP-sokler, implementeret med smoltcp-biblioteket.

Udvikleren har forberedt et boot-miljø, der kan køres i QEMU eller i virtuelle maskiner Firecracker med virtio-net driveren, som allerede kan tilsluttes via SSH. musl bruges som systembibliotek, mens BusyBox anvendes til brugerens værktøjer.

Projektet Kerla udvikler en Linux-kompatibel kerne skrevet i Rust.

Der er forberedt et buildsystem baseret på Docker, der gør det muligt at skabe egne boot-initramfs med Kerla-kerne. Der udvikles desuden en shell-lignende program nsh og GUI-stakken Kazari baseret på Wayland-protokollen.

Projektet Kerla udvikler en Linux-kompatibel kerne skrevet i Rust.

Brugen af Rust-sproget i projektet reducerer antallet af fejl i koden ved at anvende metoder til sikker programmering og forbedre effektiviteten i problemidentifikation ved håndtering af hukommelse. Sikker hukommelseshåndtering sikres i Rust under kompilering ved at tjekke referencer, følge ejerskab af objekter og tage hensyn til objektlivscyklus (synlighed) samt evaluere korrekt adgang til hukommelsen under udførelsen af koden. Derudover tilbyder Rust værktøjer til beskyttelse mod heltalsoverskridelser, kræver obligatorisk initialisering af variabelværdier før brug, anvender konceptet med uforanderlighed (immutable) for referencer og variabler som standard, og tilbyder stærk statisk typisering for at minimere logiske fejl og gøre håndteringen af inddata lettere med mønstermatching.

Til udvikling af lavniveau komponenter som operativsystemets kerne giver Rust støtte til raw-pegepinde, strukturoverpakning, inline assembly indsættelser og indlejring af filer i assembly. For at arbejde uden afhængighed af standardbiblioteket er der separate crate-pakker til at udføre operationer med strenge, vektorer og bitflag. Blandt fordelene bemærkes også indbyggede værktøjer til vurdering af kodekvalitet (linter, rust-analyzer) og oprettelse af unit-tests, som kan køres ikke kun på fysisk hardware, men også i QEMU.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster