Greg Crow-Hartman és Case Cook véleménye a Rust Linux kernelbe való integrációjáról

Greg Kroah-Hartman, aki a Linux kernel stabil ágainak támogatásáért felelős, támogatásáról biztosította az új kernel komponensek Rust nyelven történő fejlesztését. Mint az ember, akivel az elmúlt 15 évben minden hiba- és sebezhetőségi információ áthaladt a Linux kernelben, azt állítja, hogy a kernelben található hibák többsége a C nyelv figyelembe nem vett sajátosságai (corner case) miatt van, amelyeket a Rust kód teljesen kiiktat.

A Rust használatával búcsút mondhatunk olyan problémáknak, mint az emlékhez való hozzáférés a felszabadítása után, a buffer határon történő kilépés (részben), a források hibakezelés általi helytelen felszabadítása, és a visszatérési kódok ellenőrzésének elfelejtése. Ez lehetővé teszi a karbantartók számára, hogy a valós hibákra, mint a versenyhelyzetek és logikai problémák, összpontosítsanak, ahelyett hogy figyelmüket apróságokra osztanák fel a véleményezés során.

A már meglévő régi C nyelvű kód nem tűnik el, de az új kódok és új illesztőprogramok esetében a Rust bevezetése jelentősen javíthatja a minőséget. A Rust bevezetése lehetővé teszi a kernel belső programozási interfészeinek olyan módon történő struktúrázását, hogy szinte teljesen ki lehet iktatni a belső API használatának hibáit – a kernelben túlságosan sok bonyolult és zavaros API halmozódott fel, ami jelentős terhet ró a karbantartókra az API-k helyes használatának ellenőrzésében. A Rust-boltozások fejlesztésének során a karbantartók lehetőséget kapnak az API újragondolására és rendbe tételére, ami mindenki számára előnyös, beleértve a C nyelvet használókat is.

Greg nem tartja a Rust-ot „ezüst tölténynek”, ami megoldja az összes problémát a kernelben, de ez a nyelv biztosan segít számos helyzetben. A Rust támogatása szintén kielégíti az illesztőprogram-fejlesztők igényeit, akik olyan eszközt szeretnének, amely lehetővé teszi számukra, hogy kódot írjanak a hardverükhöz, kizárva sokféle hibát. Ami a nyelvek keveredését illeti, Greg nem lát ebben nagy problémát, véleménye szerint a kernel fejlesztői a múltban komolyabb feladatokkal is megküzdöttek, és nincs ok a jó új ötletek kernelbe való bekapcsolásának elvetésére, amelyek hozzájárulhatnak a projekt sikeréhez a következő 20+ évben.

A megbeszéléshez csatlakozott Kees Cook, a kernel.org volt vezető rendszergazdája és az Ubuntu Security Team vezetője. Kees tisztázta, hogy nem a meglévő kód újraírásáról van szó, hanem arról, hogy lehetőséget biztosítsanak a Rust használatára új meghajtók és alrendszerek létrehozásához. A Rust alkalmazása az új kódhoz nemcsak a memóriahibák számának csökkentését teszi lehetővé, hanem a fejlesztési idő lerövidítését is. A fejlesztés sebessége nő a hibakeresésre fordított munkaerőcsökkenés és a nyelv szigorú garanciáinak köszönhetően, amelyek lehetővé teszik a hibák korai felismerését a kódírás során, még a termék tesztelésének megkezdése előtt.

A Rust használatának hatékonyságát az új kód minőségének javítására a Google már bemutatta az Android platformon. Megállapították, hogy a biztonsági problémák fő forrása az új kód, ezért ennek minőségére kell a fő hangsúlyt helyezni. Az öreg kód esetében a biztonság exponenciálisan függ az időtől (például egy 5 éves kód átlagosan 3,4-szer kevesebb sebezhetőséget tartalmaz, mint az új kód).

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster