
Siden Linus Torvalds inkluderede Rust i version 6.1 af Linux-kernen, har sproget gradvist vundet frem , og flere og flere udviklere slutter sig til denne bevægelse.
Nogle Linux Kernel- udviklere påpeger dog, at yderligere fremskridt vil medføre mere arbejde og udfordringer , da deres kommentarer antyder, at der kan opstå stagnation.
Det skal præciseres, at vi ikke sagde, at implementeringen er gået i stå, men snarere at der i betragtning af kommentarerne fra forskellige udviklere, og som vi allerede har nævnt, i den nuværende situation er begyndt at opstå et behov for at sætte tempoet ned, eller det er i hvert fald, hvad den følgende artikel fra LWN.net antyder.
Og for flere uger siden stødte jeg på denne artikel, som omhandler den aktuelle tilstand af brugen af Rust i Linux og analyserer, om eksperimentet med dette programmeringssprog har været vellykket.
Det nævnes, at Rust i nogle år nu har været et emne, der uophørligt er blevet diskuteret på "Kernel Maintainers Summit", og det, der blev afholdt i 2023, var ingen undtagelse, da Miguel Ojeda, udvikler af Rust-for -Linux, siden den officielle implementering af Rust som et andet programmeringssprog i Linux, fremhævede den voksende interesse for brugen af Rust til kerneudvikling under sessionen dedikeret til dette emne.
Miguel Ojeda nævner, at Rust-for-Linux- projektet har oplevet betydelig vækst i det seneste år med tilføjelsen af en fuldtidsingeniør og en studerendeudvikler samt støtte fra flere virksomheder. Derudover arbejder de på at integrere Coccinelle-værktøjet med Rust-koden. Det går dog ikke helt glat, da en af de nuværende udfordringer er at rekruttere flere korrekturlæsere til den kode, der er under udvikling.
Artiklen nævner, at problemer er blevet mærkbare i værktøjskæden, da fremskridtene på den GCC-baserede Rust-compiler, kendt som gccrs , er aftaget. På den anden side viser GCC-kodegeneratoren til rustc lovende fremskridt og er blevet fusioneret med compileren, hvilket vil give Rust mulighed for at udvide sin understøttelse af arkitekturer, der ikke er kompatible med LLVM.
Inden for kernen gøres der fremskridt i flere delsystemer, såsom Rust-implementeringen af Android-binderen , som har vist en ydeevne, der kan sammenlignes med C-implementeringen med en minimal mængde usikker kode. Derudover arbejdes der på filsystembindinger med det mål at opnå skrivebeskyttet understøttelse i Rust, med den ultimative vision at implementere et fuldt sikkert filsystem i Rust.
Dave Airlie, vedligeholderen af DRM (grafik)-subsystemet, sagde, at hvis han har sin vilje, vil der være en fusioneret Rust DRM-driver i kommende udgivelser. Christoph Hellwig svarede, at Airlie var villig til at "gøre alles liv til helvede", så hun kunne lege med sit yndlingslegetøj. Hellwig sagde, at sammenlægning af Rust ville tvinge andre til at håndtere et andet sprog, nye værktøjskæder og "indpakninger med mærkelig semantik." Dan Williams sagde, at den nuværende situation "er, hvordan succes ser ud", og at kernefællesskabet allerede var forpligtet til Rust.
Selvom der er en stigende interesse blandt vedligeholdere for at anvende Rust, opstår der udfordringer, da behovet for referencedrivere i kernen skrevet i Rust for at demonstrere, hvordan drivere kan skrives i dette sprog, har været debatteret. Imidlertid har dobbeltarbejdet mellem Rust- og C-drivere skabt mistillid blandt vedligeholdere.
Diskussionen om inkluderingen af Rust har taget forskellige retninger, hvor nogle vedligeholdere går ind for en sammenlægning af enkeltstående Rust-controllere, såsom binder-controlleren, for at demonstrere dens levedygtighed, mens andre på den anden side udtrykker bekymring over kompleksiteten ved at vedligeholde en kerne med to programmeringssprog.
Airlie fortsatte med at sige, at meget af Rusts arbejde i øjeblikket er låst i lidt af et hønse- og ægproblem. Abstraktioner kan ikke flettes, før der er en bruger til dem, men kode, der har brug for disse abstraktioner, blokeres og venter på, at koden når flere undersystemer. Som følge heraf bærer udviklere, der arbejder på Rust, store mængder patches, som de skal bruge for at få deres kode til at fungere. At bryde denne forhindring vil kræve, at nogle abstraktioner kan komme ind uden umiddelbare brugere.
Trods udfordringerne anerkender kernefællesskabet Rusts potentiale til at forbedre kodesikkerhed og -stabilitet . Muligheden for at flette mere udbredte drivere ind i Rust i fremtiden overvejes, når bekymringer om gennemsyns- og vedligeholdelsesvenlighed er løst.
Ojeda var enig i, at dette problem har bremset fremskridtet, men sagde, at han har forsøgt ikke at presse vedligeholdere til at flette kode hurtigt. I tilfælde af netværk måtte Rust-udviklerne ironisk nok bede netværksfolkene om at bremse sammensmeltningen af Rust-koden.
Til sidst er det værd at nævne, at vejen til udbredt indførelse af Rust på Linux byder på udfordringer, interessen og fremskridtene på dette område er tydelig. Over tid forventes Rust at spille en vigtig rolle i at forbedre Linux.
Kilde: https://lwn.net/