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

Det ble nylig gitt ut informasjon om Kerla-prosjektet, som utvikles som en operativsystemkjerne skrevet på Rust-språket. Koden distribueres under Apache 2.0- og MIT-lisensene. Prosjektet utvikles av den japanske utvikleren Seiya Nuta, kjent for å lage mikrokjerneoperativsystemet Resea, skrevet på C-språket.

Den nye kjernen sikter først sikre kompatibilitet med Linux-kjernen på ABI-nivå, som vil tillate umodifiserte binærfiler bygget for Linux å kjøre i et Kerla-basert miljø.

Om Keral

Kerla er en monolitisk operativsystemkjerne laget fra bunnen av i Rust. På det nåværende utviklingsstadiet, Kerla kan bare kjøres på systemer med x86_64-arkitektur og implementerer grunnleggende systemanrop som skriv, stat, mmap, pipe og poll, støtter signaler, navnløse rør og kontekstbrytere. Samtaler som fork, wait4 og execve gir for å kontrollere prosessene. Det er støtte for tty og pseudo-terminaler (pty). Blant initramfs-filsystemene (brukt til å montere root FS), støttes fortsatt tmpfs og devfs.

En nettverksstabel med støtte for TCP- og UDP-sockets er også gitt, basert på smoltcp-biblioteket. Utvikleren har utarbeidet et oppstartsmiljø som fungerer i QEMU eller Firecracker VM med driveren virtio-net, som du allerede kan koble til via SSH. Musl brukes som et systembibliotek og BusyBox brukes som et brukerverktøy. Basert på Docker er det utarbeidet et byggesystem som lar deg lage din egen initramfs-oppstart med Kerla-kjernen.

Så langt har få detaljer blitt gitt om den nye kjernen, men det som trekker mest oppmerksomhet til Kerlas funksjoner er det faktum at den er skrevet i Rust. Så har det å skrive det i Rust noen fordel fremfor andre språk eller over eksisterende kode? Mange svarte ja på dette spørsmålet, og understreket minnesikkerhetsfordelene som språket gir.

Det er også gitt når du evaluerer nøyaktigheten av minnetilganger under kjøretid. Hva mer, mener Mozilla at Rust tilbyr beskyttelse mot heltallsoverløp, krever obligatorisk initialisering av variabelverdier før bruk, adopterer konseptet med referanser og uforanderlige variabler som standard, tilbyr sterk statisk skriving for å minimere logiske feil, og forenkler inndatabehandling gjennom matching av mønstre.

Blant fordelene fremhever vi de integrerte verktøyene for å evaluere kvaliteten på koden og lage enhetstester som ikke bare kan kjøres på ekte maskinvare, men også på QEMU. I utgangspunktet finner Mozilla Rust lettere å feilsøke ettersom kompilatoren vil avvise feil. Vikene pekte imidlertid på noen ulemper med Rust.

"Som med C ++, er det nesten umulig å skrive idiomatisk Rust uten å bruke maler, så det har oppsvulmet binærfiler og langsomme kompileringstider. Alle disse kompileringstidssjekkene har også en kostnad. Dessuten, hvis du skriver om noe, mister du den gamle modne kodebasen, og det er ingen måte du kan produsere en kodebase av lignende kvalitet på rimelig tid; det er mye bedre å utvide, i stedet for å omskrive, programmet i Rust. Det er bedre å utvide programmet i stedet for å skrive det om i Rust, sier en programvareingeniør.

I følge skaperen er det av denne grunn at Linux-utviklere, spesielt Linus Torvalds selv, de avviste ideen om å skrive om hele kjernen i Rust.

"Gjør litt arbeid for å lage sikre koblinger, skriv deretter tilleggskoden i Rust, så kan du fortsatt nyte den modne koden. (Det er det Linux gjør, det er forsøk på å legge til muligheten til å skrive en kjernemodul i Rust),» la han til. Linux-utviklere har utforsket mulighetene for å skrive visse nye kjernemoduler ved å bruke Rust-språket i omtrent tre år. Dette ga opphav til prosjektet «Rust for Linux».

Til slutt, hvis du er interessert i å vite mer om det, kan du konsultere detaljene I den følgende lenken.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.