Kerla: en ny kärna skriven i Rust och kompatibel med Linux ABI

Nyligen släpptes information om Kerla-projektet, som utvecklas som en operativsystemkärna skriven på språket Rust. Koden distribueras under Apache 2.0- och MIT-licenserna. Projektet utvecklas av den japanska utvecklaren Seiya Nuta, känd för att skapa mikrokärnoperativsystemet Resea, skrivet på C-språk.

Den nya kärnan syftar initialt säkerställa kompatibilitet med Linux-kärnan på ABI-nivå, vilket kommer att tillåta omodifierade binärfiler byggda för Linux att köras i en Kerla-baserad miljö.

Om Keral

Kerla är en monolitisk operativsystemkärna skapad från grunden i Rust. I nuvarande utvecklingsskede Kerla kan endast köras på system med x86_64-arkitektur och implementerar grundläggande systemanrop som write, stat, mmap, pipe och poll, stöder signaler, namnlösa pipes och kontextväxlar. Samtal som gaffel, wait4 och execve ger för att kontrollera processerna. Det finns stöd för tty och pseudoterminaler (pty). Bland initramfs filsystem (används för att montera root FS) stöds fortfarande tmpfs och devfs.

En nätverksstack med stöd för TCP- och UDP-sockets tillhandahålls också, baserat på smoltcp-biblioteket. Utvecklaren har förberett en startmiljö som fungerar i QEMU eller Firecracker VM med drivrutinen virtio-net, som du redan kan ansluta till via SSH. Musl används som ett systembibliotek och BusyBox används som ett användarverktyg. Baserat på Docker har ett byggsystem förberetts som låter dig skapa din egen initramfs-boot med Kerla-kärnan.

Hittills har få detaljer lämnats om dess nya kärna, men det som drar mest uppmärksamhet till Kerlas funktioner är det faktum att den är skriven i Rust. Så har det några fördelar att skriva det i Rust jämfört med andra språk eller över befintlig kod? Många svarade ja på denna fråga och betonade fördelarna med minnessäkerhet som språket ger.

Den tillhandahålls också när man utvärderar noggrannheten för minnesåtkomster vid körning. Vad mer, anser Mozilla att Rust erbjuder skydd mot heltalsspill, kräver obligatorisk initiering av variabelvärden innan användning, antar konceptet med referenser och oföränderliga variabler som standard, erbjuder stark statisk typning för att minimera logiska fel och förenklar indatabearbetning genom matchning av mönster.

Bland fördelarna lyfter vi fram de integrerade verktygen för att utvärdera kodens kvalitet och skapa enhetstester som inte bara kan köras på riktig hårdvara utan även på QEMU. I grund och botten tycker Mozilla att Rust är lättare att felsöka eftersom kompilatorn kommer att avvisa fel. Vikar pekade dock på några nackdelar med Rust.

"Som med C ++ är det nästan omöjligt att skriva idiomatisk Rust utan att använda mallar, så det har uppsvällda binärer och långsamma kompileringstider. Alla dessa kompileringskontroller kostar också. Dessutom, om du skriver om något, förlorar du den gamla mogna kodbasen, och det finns inget sätt att du kan producera en kodbas av liknande kvalitet inom en rimlig tid; det är mycket bättre att utöka, snarare än att skriva om, programmet i Rust. Det är bättre att utöka programmet istället för att skriva om det i Rust, säger en mjukvaruingenjör.

Enligt dess skapare är det av denna anledning som Linux-utvecklare, i synnerhet Linus Torvalds själv, de avvisade idén om att skriva om hela kärnan i Rust.

"Gör en del arbete för att skapa säkra länkar, skriv sedan tilläggskoden i Rust och du kan fortfarande njuta av den mogna koden. (Det är vad Linux gör, det finns försök att lägga till möjligheten att skriva en kärnmodul i Rust), ”tillade han. Linux-utvecklare har undersökt möjligheterna att skriva vissa nya kärnmoduler med Rust-språket i ungefär tre år. Detta gav upphov till projektet »Rust for Linux«.

Slutligen, om du är intresserad av att veta mer om det, kan du konsultera detaljerna I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.