A Linux kernel patches tizedik verziója Rust nyelv támogatásával

Miguel Ojeda, a Rust-for-Linux projekt szerzője, javasolta a fejlesztőknek, hogy fontolják meg a v10-es eszközmeghajtó-fejlesztő komponensek kiadását Rust nyelven. Ez a tizenegyedik kiadása a javításoknak, az első verzió szám nélküli közzétételének figyelembevételével. A Rust támogatása Linus Torvalds által jóváhagyásra került, hogy bekerüljön a Linux 6.1 kernelbe, amennyiben nem merülnek fel váratlan problémák. A fejlesztést a Google és az ISRG (Internet Security Research Group) finanszírozza, amely a Let’s Encrypt projekt alapítója, és támogatja a HTTPS népszerűsítését és az internet biztonságának erősítésére szolgáló technológiák fejlesztését.

A legutóbbi javításhoz hasonlóan a v10-es kiadás is a legszükségesebb minimumra van redukálva, elegendő ahhoz, hogy egy egyszerű, Rust nyelven írt kernelmodult össze lehessen állítani. A legutóbbi verzióhoz képest a különbségek apró módosításokra, a sizeof ARRAY_SIZE értékre történő cseréjére a kallsyms.c fájlban és a javítások alkalmazására a v6.0-rc7 kernelre vonatkoznak. A minimális patch mérete 40 ezerről 13 ezer sor kódra csökkent, ami megkönnyíti a Rust támogatásának elfogadását a központi kernelbe. A minimális támogatás biztosítása után a meglévő funkcionalitást fokozatosan tervezik bővíteni, átvéve más módosításokat is a Rust-for-Linux ágból.

A javasolt módosítások lehetővé teszik a Rust használatát második nyelvként a meghajtók és kernel modulok fejlesztéséhez. A Rust támogatása opcionálnak számít, amely alapértelmezés szerint nem aktív, és nem okoz Rust kötelező build-függőségek közé sorolását a kernelhez. A Rust használata a meghajtók fejlesztése során minimális erőfeszítéssel teszi lehetővé biztonságosabb és jobb minőségű meghajtók létrehozását, megszabadítva azokat az olyan problémáktól, mint a memória területének hozzáférése a felszabadítás után, a null pointerek dereferálása és a puffertúllépés.

A memória biztonságos kezelése a Rust nyelvben a fordítás során a hivatkozások ellenőrzésével, az objektumok tulajdonlásának nyomon követésével, valamint az objektumok élettartamának (láthatóságának) figyelembevételével történik, továbbá a memóriához való hozzáférés helyességének értékelésével a kód futtatása alatt. A Rust eszközöket is biztosít a egész számok túlfutásának védelmére, kötelezővé teszi a változók értékeinek inicializálását használat előtt, jobban kezeli a hibákat a standard könyvtárban, alkalmazza az immutable (változhatatlan) hivatkozások és változók fogalmát alapértelmezés szerint, valamint erős statikus típust kínál a logikai hibák minimalizálására.

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