Linus Torvalds har til hensigt at inkludere ændringer relateret til Rust uden om vedligeholdere

Christoph Hellwig, vedligeholder af DMA-underliggende systemer, KVM, Slab Allocator og PowerPC-arkitektur i Linux-kernen, har principielt nægtet at acceptere Rust-bindings i DMA-underliggende systemet og er blevet involveret i diskussionen om reglerne for Rust-vedligeholdelse i kernen, der er offentliggjort af projektet Rust for Linux. Ifølge Christoph er sådanne regler værdiløse, så længe de ikke er blevet enige med fællesskabet og inkluderet i dokumentationen for kernen.

Christoph bemærkede også, at reglerne indeholder unøjagtige oplysninger om, at vedligeholdere kan træffe beslutninger om at inkludere koder relateret til Rust i deres underliggende systemer på egen hånd. Ifølge Christoph sagde Linus Torvalds i en personlig samtale, at han er fast besluttet på at inkludere Rust-kode i kernen, på trods af vedligeholdernes indvendinger. Dermed vil udviklere og vedligeholdere af kernen nu skulle håndtere Rust, uanset om de ønsker det eller ej.

Christoph sammenlignede igen udbredelsen af Rust-bindings med en kræftsvulst, der vil sprede sig til alle underliggende systemer i kernen og føre til fragmentering. Fra at være en samlet enhed bliver kernen til et projekt skrevet på flere sprog, uden klar definition af, hvornår hvilket sprog skal bruges. Ifølge Christoph er arbejdet med en sådan blandet kodebase blevet hans værste mareridt, da der konstant sker omskrivning af kode fra ét sprog til et andet og derefter tilbage.

I den forbindelse beder Christoph om en forklaring på målet med at implementere Rust i kernen. Hvis målet er at løse problemer med sikkerhed, der opstår ved lavniveau-håndtering af hukommelse, er det først og fremmest nødvendigt at modernisere den eksisterende kode. Da vedligeholdelse reagerer smertefuldt selv på trivielle ting som kontrol af heltalsoverskridelser, er det uklart, hvordan man kan overvinde kløften mellem den del af kernen, der ikke accepterer selv enkle sikkerhedskontroller, og den anden del, der følger strenge regler. Hvis målet er at forenkle udviklingen af drivere, vil indførelsen af støtte til endnu et sprog kun tilføje mere arbejde og øge belastningen for de allerede overbebyrdede mennesker, der opretholder kernen i drift.

Når det gælder tilhængere af at integrere Rust i kernen, nævnes følgende mål:

  • At skrive ny kode i Rust vil reducere risikoen for fejl relateret til hukommelse og race conditions samt udelukke visse logiske fejl.
  • Det vil være lettere for vedligeholdere at gennemgå ændringer og foretage refactoring af moduler med hensyn til de garantier, der gives af Rust-sproget.
  • Eksistensen af abstraktioner, der udnytter Rusts avancerede muligheder, vil forenkle oprettelsen af nye drivere og moduler.
  • Støtten til et moderne sprog vil tiltrække nye deltagere til udviklingen af kernen.
  • Anvendelsen af Rust-værktøjets muligheder vil lette opfyldelsen af dokumentationskravene for koden. For eksempel er det i projektet Rust for Linux indført et krav om obligatorisk dokumentation af offentlige API'er, sikkerhedskrav, unsafe blocks og type invarianter.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster