Linus Torvalds avser att inkludera ändringar relaterade till Rust utan att gå via underhållarna

Christoph Hellwig, underhållare av DMA-under-systemet, KVM, Slab Allocator och PowerPC-arkitekturen i Linux-kärnan, har principfast vägrat att acceptera Rust-bindningar för DMA-under-systemet och har deltagit i diskussionen om reglerna för hantering av Rust inom kärnan, publicerade av projektet Rust for Linux. Enligt Christoph är sådana regler meningslösa tills de har överenskommits med gemenskapen och inkluderats i kärndokumentationen.

Christoph uppmärksammade också att reglerna innehåller felaktig information om att underhållarna själva kan fatta beslut om inkluderingen av kod relaterad till Rust i sina under-system. Enligt Christoph har Linus Torvalds uttryckt i en privat konversation att han är fast besluten att inkludera Rust-kod i kärnan, oavsett motståndet från underhållarna. Därför måste utvecklare och kärnunderhållare nu hantera Rust, oavsett om de vill eller inte.

Christoph jämförde även spridningen av Rust-bindningar med en cancerous tumör som sprider sig över alla kärnsystem och leder till fragmentering. Från ett enhetligt helt har kärnan förvandlats till ett projekt skrivet på flera språk, utan tydlig definition av när vilket språk ska användas. Enligt Christoph har arbetet med en sådan blandad kodbas blivit hans värsta mardröm, eftersom det hela tiden sker omskrivning av kod från ett språk till ett annat och sedan tillbaka igen.

Samtidigt ber Christoph om en förklaring till syftet med att införa Rust i kärnan. Om syftet är att lösa säkerhetsproblem som uppstår vid låg nivå av minneshantering, så krävs snarast en modernisering av den befintliga koden. Med tanke på att underhållare är känsliga för även triviala saker, såsom kontroller för heltalsöverskridningar, är det oklart hur man kan övervinna klyftan mellan en del av kärnan som inte accepterar ens enklare säkerhetsregler och en annan del som upprätthåller strikta regler. Om syftet istället är att förenkla utvecklingen av drivrutiner, kommer införandet av stöd för ännu ett språk bara att lägga till mer arbete och öka belastningen på de som redan är överbelastade med att hålla kärninfrastrukturen i fungerande skick.

När det gäller förespråkare för att integrera Rust i kärnan, nämns följande mål:

  • Att skriva ny kod i Rust minskar risken för buggar relaterade till minneshantering och race conditions, samt eliminerar vissa logiska fel.
  • Det blir lättare för underhållare att granska förändringar och utföra refactoring av moduler med tanke på de garantier som erbjuds av Rust.
  • Exempel på abstraktioner som använder avancerade funktioner i Rust kommer att förenkla skapandet av nya drivrutiner och moduler.
  • Stödet för ett modernt språk kommer att locka nya deltagare till utvecklingen av kärnan.
  • Användningen av verktyg från Rust kommer att förenkla kraven på koddokumentation. Till exempel har projektet Rust for Linux infört krav på obligatorisk dokumentation av publika API:er, säkerhetskrav, unsafe-block och typinvarianter.

Källa: opennet.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster