Rust, noget Linux-udviklere synes at være enige med

Programmeringssproget Rust har altid haft til formål at erstatte C i Linux-kerneudvikling Og det er, at som Rust er modnet, har flere udviklere udtrykt en stigende interesse for brugen af ​​Linux-kernen.

I den virtuelle konference af Linux Plumbers 2020, mikrokonference-strømmen af LLVM organiserede en session om åbne spørgsmål og barrierer til opstrøms accept af Rust på Linux-kernen.

Interessen for dette emne er synlig, da denne session var den travleste af 2020-begivenheden.

Så skal vi nu omskrive hele Linux-kernen med Rust-sproget? Denne diskussion stammer ikke fra i dag og er blevet forstærket siden udseendet af den første stabile version af Rust i 2015.

I lyset af de muligheder, det giver Rust, nogle foreslår at gøre det. I år på Linux Plumbers-konferencen i august, talerne havde tid igen til at diskutere det.

Og det overraskende er, at de synes at være enige enstemmigt nej ikke for at omskrive den eksisterende kode i Rust, men for at kerneudvikling fortsætter med at bruge Rust. Det vil sige, de forestiller sig en verden, hvor nye kodestykker kunne skrives i Rust.

Denne session byggede på det tidligere arbejde fra mange udviklere, herunder en tale sidste år af Alex Gaynor og Geoffrey Thomas på Linux Security Summit.

På konferencen præsenterede de deres arbejde med prototypering af Rust-kernemoduler og fortalte for vedtagelsen af ​​Rust i kernen.

De citerede arbejde, der viser, at omkring to tredjedele af kernens sårbarheder, der er tildelt CVE'er i Android og Ubuntu, er relateret til hukommelsessikkerhedsproblemer.

De endte med at forklare det Rust kan helt undgå denne slags fejl takket være mere sikre API'er aktiveret af din systemtype og din låneverifikator.

Denne undersøgelse lykkedes allerede at overbevise flere vedligeholdere Linus Torvalds, der støttede introduktionen af ​​Rust i kernen. Thomas og Gaynor, Josh Triplett, medformand for Rust-sprogholdet og en mangeårig Linux-kerneudvikler samt andre interesserede udviklere deltog i diskussionen om emnet.

De berørte kort hans arbejde indtil videre og nogle af hans første tanker og spørgsmål, før de åbnede det meste af tiden for diskussion.

Dette er brugen af ​​eksisterende API'er i kernen, arkitektursupport og et spørgsmål om ABI-kompatibilitet mellem Rust og C.

Faktisk tror de oprindeligt på det introduktion af rust i træstrukturen skal respektere de eksisterende C API'er. 

Imidlertid føler alle, at djævelen er i detaljerne, og både det hidtil udførte arbejde og samtalen under sessionen har afsløret nogle åbne udfordringer.

For eksempel benytter Linux kraftigt af preprocessormakroer og inline-funktioner, som ikke understøttes så let af bindgen-værktøjet og Rusts interface til eksterne funktioner.

Ifølge dem, i øjeblikket er den eneste modne implementering af Rust kompilatoren rustc, som udsteder kode via LLVM.

Linux-kernen understøtter en lang række arkitekturer, hvoraf mange ikke har en LLVM-backend tilgængelig.

For sin del foreslog Triplett, at tilføjelse af rust til kernen ville bidrage til at øge arkitektonisk støtte til Rust med henvisning til hans erfaring med Debian-projektet. Han nævnte, at introduktionen af ​​Rust-software i Debian har hjulpet med at motivere entusiaster og brugere af nichearkitektur til at forbedre Rust-support, og han håber at tilføje kernel-support for at få en lignende effekt.

Især var han overbevist om, at enhver arkitektur med en LLVM-backend hurtigt ville være kompatibel med Rust. Diskussionen fokuserede også på alternative rustimplementeringer som en vej til bredere arkitektursupport.

Sessionen sluttede uden yderligere specifikke milepæle, men der synes at være generel entusiasme for at støtte Rust Mods og voksende enighed om de generelle krav til denne support.


En kommentar, lad din

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   Autopilot sagde han

    Det ser ud til at være begyndelsen på en ny æra, den faste C kommer op.

    Hej Rust, farvel Linus Torvalds!