Programmering

Rusts Redox OS kan vise Linux noen nye triks

Mozillas Rust-språk ble oppfattet av designerne som et alternativ til å skrive mange slags programvare raskt og trygt - inkludert komplette operativsystemer.

I løpet av de siste månedene har et team av utviklere vært opptatt med å gjøre akkurat det: å bruke Rust til å lage Redox, et fullverdig Unix-lignende operativsystem designet som en radikal revurdering av Linux-tilnærmingen.

Blanke ark

Redox bruker Rust for kjernnivåkoden for å gi mer minnehensyn enn C tillater som standard. Men prosjektet omskriver ikke bare Linux på et nytt språk. Redox forkaster så mye fra Linux-versjonen av Unix-tradisjonen som den holder.

Som forklart i prosjektets wiki- og designdokumenter, bruker Redox et minimalt sett med syscalls - en bevisst mindre delmengde enn det Linux støtter for å unngå eldre oppblåsthet. OS bruker også en microkernel-design for å holde seg slank, i motsetning til Linux monolitiske kjerne.

Mange av operativsystemets interne atferd har også blitt tenkt på nytt. Unix og Linux bruker begge forestillingen om hvert element som en fil. Redox går et skritt videre og behandler alt som en URL, så det er enkelt å registrere håndtere for hendelser, og det gir en konsekvent måte å utføre andre typer abstraksjoner på.

//github.com/redox-os/redox

Planen er imidlertid ikke å erstatte Linux, men å gi et nyttig alternativ som i tid kan kjøre Linux-programvare som den er. Det er allerede noen få tips: Mange vanlige Unix-kommandoer (og dermed Linux) støttes, og det er en pågående port for ZFS-filsystemet.

Et annet radikalt brudd fra Linux er ikke i programvaren, men i lisensiering: Hele prosjektet er MIT-lisensiert og ikke GPL. Begrunnelsen er at MIT-lisensen oppmuntrer nedstrøms adopsjon langt lettere enn GPL, "siden nedstrøms er det som virkelig betyr noe: brukerbasen, samfunnet, tilgjengeligheten."

Den lange veien fremover

Selv om ISOer av Redox kan lastes ned og startes opp, vil du sannsynligvis ikke slippe Linux for Redox i produksjon når som helst.

For det første er Redox uprøvd, med mange manglende funksjoner og mange ufullstendige. Redox-utviklere innrømmer også at det ikke vil være mulig å etablere "fullstendig 1: 1 Posix-kompatibilitet" (fordi operativsystemet utelater mange Unix-syskall), så eksisterende Linux-programvare vil trolig trenge et støttelag på Redox for å kjøre - en veisperring til adopsjonen.

Linuxs eldre kodebase vil heller ikke lett trekkes av. Tiår med utvikling og tusenvis av menneskeårig arbeid har blitt investert i det og C-språkutviklingsmiljøet. Rust-språket, derimot, har eksistert i noen år, og nådde først nylig en tilstand av stabilitet som var tilstrekkelig for de fleste til å bygge store, ambisiøse prosjekter med det.

Likevel er et prosjekt som Redox verdifullt. Hvis Redox kan oppfylle løftet om å være sikrere av design, kan mange av de innebygde enhetsscenariene som Linux nå retter seg mot, tjene bedre av Redox. Mozilla har allerede snakket om Rust som et språk for Internett av ting-enheter, så dette ville være en naturlig utvidelse.

Redox kan også tjene som et eksempel for å nærme seg operativsystemproblemer annerledes, og utøve langsiktig evolusjonært press på Linux. Hvis Linux ikke kommer noen steder - alle tegn viser at det ikke er det - er det best å finne måter å tvinge den til å bli bedre.

$config[zx-auto] not found$config[zx-overlay] not found