Linus Torvalds plánuje zahrnúť zmeny súvisiace s Rustom obchádzaním správcu.

Christoph Hellwig, správca subsystémov DMA, KVM, Slab Allocator a architektúry PowerPC v jadre Linux, zásadne odmietol prijať do jadra Rust-vrstvy pre subsystém DMA a zapojil sa do diskusie o pravidlách správy Rustu v rámci jadra, zverejnených projektom Rust for Linux. Podľa Christophovho názoru sú takéto pravidlá zbytočné, pokiaľ nie sú dohodnuté so komunitou a nezahŕňajú dokumentáciu k jadru.

Christoph tiež upozornil na to, že v pravidlách je uvedená nepresná informácia, že správcovia môžu samostatne rozhodovať o zahrnutí kódu súvisiaceho s Rustom do svojich subsystémov. Podľa Christophových slov, v osobnom rozhovore Linus Torvalds vyhlásil, že je pevne odhodlaný prijať do jadra Rust-kód, bez ohľadu na námietky správcov. Takto budú teraz vývojári a správcovia jadra musieť čeliť Rustu, či sa im to páči alebo nie.

Christoph tiež opäť porovnal rozšírenie Rust-vrstiev s rakovinovým nádorom, ktorý sa rozšíri na všetky subsystémy jadra a povedie k fragmentácii. Jednotné jadro sa premení na projekt napísaný v niekoľkých jazykoch, bez jasnej definície, kedy sa ktorý jazyk má používať. Podľa Christophových slov sa práca s takouto zmiešanou kódovou základňou stala jeho najhorším nočnou morou, pretože v takýchto podmienkach dochádza neustále k prepisovaniu kódu z jedného jazyka do druhého a potom späť.

Pri tom Christoph žiada objasniť mu cieľ zavedenia Rustu do jadra. Ak je cieľom riešiť problémy s bezpečnosťou, ktoré vznikajú pri nízkoúrovňovej práci s pamäťou, predovšetkým je potrebná modernizácia existujúceho kódu. S ohľadom na to, že správcovia bolestne reagujú aj na triviálne veci, ako sú kontroly na celočíselné pretečenie, nie je jasné, ako možno prekonať rozpor medzi jednou časťou jadra, ktorá neprijíma ani jednoduché pravidlá zaisťovania bezpečnosti, a druhou časťou, ktorá sa striktne riadi pravidlami. Ak však cieľom je zjednodušiť vývoj ovládačov, zavedenie podpory ďalšieho jazyka len pridá novú prácu a zvýši záťaž na už tak zaťažených ľudí, ktorí udržiavajú infraštruktúru jadra v prevádzke.

Pokiaľ ide o podporovateľov zavedenia Rust do jadra, sú uvedené nasledujúce ciele:

  • Písanie nového kódu v jazyku Rust zníži riziko chýb pri práci s pamäťou a stavovými pretekmi, ako aj vylúči niektoré logické chyby.
  • Správcovia budú mať jednoduchšie recenzovanie zmien a refaktoring modulov s ohľadom na záruky, ktoré poskytuje jazyk Rust.
  • Existencia abstrakcií využívajúcich pokročilé možnosti jazyka Rust zjednoduší vytváranie nových ovládačov a modulov.
  • Podpora moderného jazyka pritiahne nových účastníkov do vývoja jadra.
  • Využitie možností nástrojov Rust zjednoduší dodržiavanie požiadaviek na dokumentovanie kódu. Napríklad v projekte Rust for Linux bola zavedená povinnosť dokumentovať verejné API, požiadavky na bezpečnosť, unsafe bloky a invarianty typov.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster