Miguel Ojeda, a szerzője a Rust-for-Linux projektnek, javasolta a Linux kernel fejlesztőinek, hogy fontolják meg a v5 komponensek kiadását eszközmeghajtók fejlesztéséhez Rust nyelven. Ez a hatodik változata a patch-nak, figyelembe véve az első példányt, amely verziószám nélkül került publikálásra. A Rust támogatása kísérleti jellegűnek számít, de már be lett építve a linux-next ágba, és elegendő fejlettséggel bír ahhoz, hogy elkezdődhessen az absztrakciós rétegek létrehozása a kernel subszisztemákkal, valamint meghajtók és modulok írása. A fejlesztést a Google és az ISRG (Internet Security Research Group) finanszírozza, amely a Let's Encrypt projekt alapítója, és hozzájárul a HTTPS népszerűsítéséhez, valamint olyan technológiák fejlesztéséhez, amelyek növelik az internet biztonságát.
Ne feledjük, hogy a javasolt változások lehetővé teszik a Rust használatát második nyelvként a meghajtók és modulok fejlesztésében a kernelben. A Rust támogatása lehetőségként van megjelenítve, amely alapértelmezés szerint nem aktív, nem vezetve a Rust kötelező build függőségek közé történő bevonásához a kernelhez. A Rust használata a meghajtók fejlesztésében lehetővé teszi, hogy minimális erőfeszítéssel biztonságosabb és jobb minőségű meghajtókat készítsünk, amelyek mentesek az olyan problémáktól, mint a memória törlés utáni hozzáférés, null pointerek dereferálása és a buffer határai túllépése.
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.
Az új patch változatban folytatódik az első, második, harmadik, negyedik és ötödik javító változat során megfogalmazott észrevételek kiküszöbölése. Az új verzióban:
- Az eszközkészlet frissítve lett a Rust 1.59.0 verzióra. Az új Rust verzióval szinkronizálva lett az alloc könyvtár verziója, amely megszünteti a „panic” állapotok generálásának lehetőségét, amikor hibák, például memóriahiány lépnek fel. Stabilizálták az assembly beszúrások („feature(global_asm)”) használatát.
- Hozzáadták a Rust nyelven írt host programok létrehozásának támogatását, amely a kernel fordítása során használható.
- A célplatformok specifikációs fájljainak előre elkészített szállítása helyett dinamikus generálásuk történik a kernel konfigurációja alapján.
- Hozzáadva a kernel paraméter, a HAVE_RUST, amelyet azokhoz az architektúrákhoz kapcsolnak, ahol a Rust támogatása elérhető.
- Absztrakciókat javasoltak a Rust nyelven írt kódokban a hardveres álomszám-generátorok használatához.
- Megengedett a hibakódok használata 'Error::' előtag nélkül (például 'return Err(EINVAL)') a hibakódok C nyelvhez való közelítésének érdekében.
- A „CString” típust hozzáadták a saját C karakterláncokhoz. A Formatter és a Buffer típusok összevonva lettek.
- Hozzáadva a Bool és LockInfo típusok.
- Egyszerűsítették a spin-zárak megvalósítását.
Forrás: opennet.ru
