Programmering

Rust's Redox OS kunne vise Linux et par nye tricks

Mozillas Rust-sprog blev opfattet af dets designere som en mulighed for at skrive mange slags software hurtigt og sikkert - inklusive komplette operativsystemer.

I løbet af de sidste par måneder har et team af udviklere haft travlt med at gøre netop det: ved at bruge Rust til at oprette Redox, et fuldt blæst Unix-lignende operativsystem designet som en radikal nytænkning af Linux-tilgangen.

Ren tavle

Redox bruger Rust til sin kode på kerneniveau for at give flere hukommelsessikkerhedsovervejelser, end C som standard tillader. Men projektet omskriver ikke bare Linux på et nyt sprog. Redox kasserer så meget fra Linux's version af Unix-traditionen, som det holder.

Som forklaret i projektets wiki- og designdokumenter bruger Redox et minimalt sæt syscalls - en bevidst mindre delmængde end hvad Linux understøtter for at undgå arvemæssig oppustethed. OS bruger også et microkernel-design for at forblive slank i modsætning til Linux monolitiske kerne.

Mange af operativsystemets interne adfærd er også blevet genovervejet. Unix og Linux bruger begge begrebet hvert element som en fil. Redox går et skridt videre og behandler alt som en URL, så det er nemt at registrere handlere til begivenheder, og det giver en konsekvent måde at udføre andre former for abstraktioner på.

//github.com/redox-os/redox

Planen er dog ikke at erstatte Linux, men at give et nyttigt alternativ, der med tiden kan køre Linux-software som det er. Der er allerede et par tip: Mange almindelige Unix-kommandoer (og dermed Linux) understøttes, og der er en igangværende port for ZFS-filsystemet.

En anden radikal pause fra Linux er ikke i softwaren, men i licensering: Hele projektet er MIT-licenseret og ikke GPL. Begrundelsen er, at MIT-licensen tilskynder til downstream-adoption langt lettere end GPL, "da downstream er det, der virkelig betyder noget: brugerbasen, samfundet, tilgængeligheden."

Den lange vej fremad

Selvom ISO'er af Redox kan downloades og startes, er det ikke sandsynligt, at du afbryder Linux til Redox i produktion når som helst snart.

For det første er Redox uprøvet med mange manglende funktioner og mange ufuldstændige. Redox's udviklere indrømmer også, at det ikke vil være muligt at etablere "komplet 1: 1 Posix-kompatibilitet" (fordi operativsystemet udelader mange Unix-syscalls), så eksisterende Linux-software vil sandsynligvis have brug for et supportlag på Redox for at køre - en vejspærring til dens vedtagelse.

Linux's ældre kodebase bliver heller ikke let trukket af. Der er investeret årtier i udvikling og tusinder af menneskers års arbejde i det og C-sprogudviklingsmiljøet. Rust-sproget har derimod eksisteret i nogle få år og først for nylig nået en tilstand af stabilitet, der er tilstrækkelig til, at de fleste mennesker bygger store, ambitiøse projekter med det.

Stadig et projekt som Redox er værdifuldt. Hvis Redox kan opfylde sit løfte om at være mere sikker ved design, kan mange af de indlejrede enhedsscenarier, der i øjeblikket er målrettet mod Linux, bedre tjent med Redox. Mozilla har allerede talt om Rust som et sprog til enheder af ting, så dette ville være en naturlig udvidelse.

Redox kan også tjene som et eksempel på at nærme sig forskellige operativsystemproblemer og udøve langsigtet evolutionært pres på Linux. Hvis Linux ikke går nogen steder - alle tegn viser, at det ikke er det - så er det bedst at finde måder at tvinge det til at blive bedre.