Názor Grega Crow-Hartmana a Keise Cooka na propagaci Rustu v jádře Linuxu

Greg Kroah-Hartman, který se stará o podporu stabilní větve jádra Linux, vyjádřil podporu vývoji nových komponent jádra v jazyce Rust. Jako osoba, skrze kterou za posledních 15 let prochází veškerá informace o chybách a zranitelnostech v jádru Linux, tvrdí, že většina chyb v jádře je způsobena nezohledněnými speciálními případy v jazyce C, které jsou v kódu v jazyce Rust zcela vyloučeny.

Použití Rustu umožní opustit problémy jako je přístup k paměti po jejím uvolnění, částečné překročení meze bufferu, nesprávné uvolnění prostředků při zpracování chyb a zapomenuté kontroly návratových kódů chyb, což umožní správcům zaměřit se na skutečné chyby, jako jsou stavy závodu a problémy s logikou, namísto aby rozptýlili pozornost po drobnostech při recenzování.

Stávající starý kód v jazyce C nikam nezmizí, ale zavedení Rustu pro nový kód a nové ovladače výrazně zvýší kvalitu. Zavedení Rustu také umožní strukturovat vnitřní programové rozhraní jádra tak, aby bylo téměř vyloučeno chybnému používání vnitřního API - v jádře se nahromadilo příliš mnoho složitých a zmatených API, což vytváří velké zatížení pro správce při to, že se zajišťuje správné používání těchto API. V procesu vývoje Rustu mají správci možnost přepracovat a uspořádat API, což přinese užitek všem, včetně těch, kteří používají jazyk C.

Greg nepovažuje Rust za "stříbrnou kulku", která vyřeší všechny problémy v jádře, ale tento jazyk rozhodně pomůže v mnoha situacích. Podpora Rustu také uspokojí potřebu vývojářů ovladačů, kteří doufají, že získají nástroj, který jim umožní psát kód pro jejich hardware a vyloučit tak mnoho typů chyb. Co se týče míchání několika jazyků, Greg v tom nevidí velký problém, podle něj se v minulosti vývojáři jádra zhostili ještě vážnějších úkolů a není důvod se vzdávat prosazování nových dobrých nápadů do jádra, které pomohou zajistit úspěch projektu na dalších 20 a více let.

Diskuze se také zúčastnil Kees Cook, bývalý hlavní systémový administrátor kernel.org a vedoucí Ubuntu Security Team. Kees objasnil, že se nejedná o přepisování již existujícího kódu v jádře, ale o poskytnutí možnosti použití Rustu pro vytváření nových ovladačů a subsystémů. Použití Rustu pro nový kód nejenže sníží počet chyb při práci s pamětí, ale také zkrátí čas vývoje. Rychlost vývoje se zvyšuje díky snížení pracovních nákladů na ladění a díky přísným zárukám v jazyce, které umožňují odhalit chyby v rané fázi psaní kódu, ještě před zahájením testování produktu.

Účinnost taktiky použití Rustu pro zlepšení kvality nového kódu již byla prokázána Google na platformě Android. Bylo ukázáno, že hlavním zdrojem bezpečnostních problémů je nový kód, a zvýšení jeho kvality by mělo být prioritou. U starého kódu existuje exponenciální závislost bezpečnosti na čase (například 5letý kód má v průměru 3.4krát nižší hustotu zranitelností než nový kód).

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster