Názor Gréga Crow-Hartmana a Kejsa Cuka o propagácii Rustu v jadre Linux

Greg Kroah-Hartman, ktorý zodpovedá za podporu stabilnej vetvy jadra Linux, vyjadril podporu vývoju nových komponentov jadra v jazyku Rust. Ako človek, cez ktorého prechádzajú všetky informácie o chybách a zraniteľnostiach v jadre Linux už posledných 15 rokov, tvrdí, že väčšina chýb v jadre je spôsobená nezohľadnenými špecifickými situáciami v jazyku C, ktoré sú úplne vylúčené v kóde v jazyku Rust.

Používanie Rustu umožní opustiť v minulosti také problémy, ako je prístup k pamäti po jej uvoľnení, čiastočne pretečenie pamäte, nesprávne uvoľňovanie zdrojov pri spracovaní chýb a zabudnuté kontroly návratových kódov chýb, čo umožní údržbárom sústrediť sa na skutočné chyby, ako sú pretekania a problémy s logikou, namiesto toho, aby sa pri recenzovaní rozptyľovali drobnosťami.

Existujúci starý kód v jazyku C nikam nezmizne, avšak pre nový kód a nové ovládače zavedenie Rustu umožní výrazne zvýšiť kvalitu. Zavedenie Rustu tiež umožní štruktúrovať vnútorné programové rozhrania jadra tak, aby boli prakticky vylúčené chyby v používaní vnútorného API — v jadre sa nahromadilo príliš veľa zložitých a zamotaných API, čo vytvára veľké zaťaženie pre údržbárov pri kontrole, že tieto API sú správne používané. V procese vývoja Rust obalov majú údržbári príležitosť prehodnotiť a usporiadať API, čo prinesie prospech pre všetkých, vrátane tých, ktorí používajú jazyk C.

Greg nepovažuje Rust za „striebornú guľku“, ktorá by vyriešila všetky problémy v jadre, ale tento jazyk určite pomôže v mnohých situáciách. Podpora Rustu tiež uspokojí potrebu vývojárov ovládačov, ktorí dúfajú, že získajú nástroj na písanie kódu pre svoje zariadenia, pričom sa vylúčia mnohé typy chýb. Pokiaľ ide o miešanie viacerých jazykov, Greg v tom nevidí veľký problém, podľa neho sa vývojári jadra v minulosti vyrovnali aj s vážnejšími úlohami a niet dôvodu vzdať sa postupu do jadra nových dobrých myšlienok, ktoré pomôžu zabezpečiť úspech projektu na ďalších 20+ rokov.

K diskusii sa pripojil aj Kees Cook, bývalý hlavný systémový administrátor kernel.org a líder Ubuntu Security Team. Kees objasnil, že nejde o prepísanie už existujúceho kódu v jadre, ale o poskytnutie možnosti používať Rust na vytváranie nových ovládačov a podskúseností. Použitie Rustu pre nový kód umožní nielen znížiť počet chýb pri práci s pamäťou, ale aj skrátiť čas vývoja. Rýchlosť vývoja sa zvyšuje vďaka zníženiu nákladov na ladenie a prítomnosti prísnych záruk v jazyku, ktoré umožňujú odhaľovať chyby už v počiatočnej fáze písania kódu, ešte pred testovaním produktu.

Účinnosť stratégie využívania Rustu na zvýšenie kvality nového kódu už preukázal Google na platforme Android. Ukázalo sa, že hlavným zdrojom problémov v oblasti bezpečnosti je nový kód, a zlepšeniu jeho kvality by sa mala venovať najväčšia pozornosť. Pre starý kód existuje exponenciálna závislosť bezpečnosti od času (napríklad 5-ročný kód má v priemere 3,4-krát nižšiu hustotu zraniteľností ako nový kód).

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