Kerla: en ny kerne skrevet i Rust og kompatibel med Linux ABI

Der blev for nylig frigivet oplysninger om Kerla-projektet, der udvikles som en styresystemkerne skrevet på Rust-sproget. Koden distribueres under Apache 2.0- og MIT-licenserne. Projektet udvikles af den japanske udvikler Seiya Nuta, kendt for at skabe mikrokerne-operativsystemet Resea, skrevet i C-sprog.

Den nye kerne sigter i første omgang sikre kompatibilitet med Linux-kernen på ABI-niveau, som vil tillade umodificerede binære filer bygget til Linux at køre i et Kerla-baseret miljø.

Om Keral

Kerla er en monolitisk operativsystemkerne skabt fra bunden i Rust. På det nuværende udviklingstrin, Kerla kan kun køres på systemer med x86_64-arkitektur og implementerer grundlæggende systemopkald som skrive, stat, mmap, pipe og poll, understøtter signaler, unavngivne rør og kontekstswitche. Opkald som fork, wait4 og execve giver til at kontrollere processerne. Der er understøttelse af tty og pseudo-terminaler (pty). Blandt initramfs-filsystemerne (brugt til at montere root FS), er tmpfs og devfs stadig understøttet.

En netværksstak med understøttelse af TCP- og UDP-sockets er også tilvejebragt, Baseret på smoltcp-biblioteket. Udvikleren har forberedt et boot-miljø, der fungerer i QEMU eller Firecracker VM med driveren virtio-net, som du allerede kan oprette forbindelse til via SSH. Musl bruges som et systembibliotek og BusyBox bruges som et brugerværktøj. Baseret på Docker er der udarbejdet et byggesystem, der giver dig mulighed for at oprette din egen initramfs-boot med Kerla-kernen.

Indtil videre er der kun givet få detaljer om dens nye kerne, men det, der trækker mest opmærksomhed på Kerlas funktioner, er det faktum, at den er skrevet i Rust. Så har det nogen fordele at skrive det i Rust i forhold til andre sprog eller i forhold til eksisterende kode? Mange svarede ja til dette spørgsmål og understregede de fordele ved hukommelsessikkerhed, som sproget giver.

Den er også tilvejebragt ved evaluering af nøjagtigheden af ​​hukommelsesadgange under kørsel. Hvad mere er, mener Mozilla, at Rust tilbyder beskyttelse mod heltalsoverløb, kræver obligatorisk initialisering af variabelværdier før brug, adopterer konceptet med referencer og uforanderlige variabler som standard, tilbyder stærk statisk skrivning for at minimere logiske fejl og forenkler inputbehandling gennem matchning af mønstre.

Blandt fordelene fremhæver vi de integrerede værktøjer til at evaluere kvaliteten af ​​koden og skabe enhedstests, der ikke kun kan køres på rigtig hardware, men også på QEMU. Dybest set finder Mozilla Rust lettere at fejlfinde, da compileren vil afvise fejl. Bugterne pegede dog på nogle ulemper med Rust.

"Som med C ++ er det næsten umuligt at skrive idiomatisk Rust uden at bruge skabeloner, så det har oppustede binære filer og langsomme kompileringstider. Alle disse kompileringstidstjek har også en pris. Desuden, hvis du omskriver noget, mister du den gamle modne kodebase, og der er ingen måde, du kan producere en kodebase af lignende kvalitet inden for rimelig tid; det er meget bedre at udvide, i stedet for at omskrive, programmet i Rust. Det er bedre at udvide programmet i stedet for at omskrive det i Rust,” siger en softwareingeniør.

Ifølge dens skaber er det af denne grund, at Linux-udviklere, især Linus Torvalds selv, de afviste ideen om at omskrive hele kernen i Rust.

"Gør noget arbejde for at skabe sikre links, og skriv derefter den ekstra kode i Rust, og du kan stadig nyde den modne kode. (Det er, hvad Linux gør, der er bestræbelser på at tilføje muligheden for at skrive et kernemodul i Rust), tilføjede han. Linux-udviklere har undersøgt mulighederne for at skrive visse nye kernemoduler ved hjælp af Rust-sproget i omkring tre år. Dette gav anledning til »Rust for Linux«-projektet.

Endelig, hvis du er interesseret i at vide mere om det, kan du konsultere detaljerne I det følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.