Ez év márciusában a linux-next ágon amelyben abban az időben a Linux kernel 5.13-nál dolgozott, A kezdeti alkatrészkészletet az illesztőprogramok kifejlesztésére használták fel a nyelv Rust és most azt a kérést tették, hogy tartalmazzon egy második kiadást javítások hozzáadása a Rust támogatáshoz a Linux kernelhez.
Az a személy, aki elküldte a kérést a Linux fejlesztőknek, Miguel Ojeda, a Rust-for-Linux projekt szerzője, akiről néhány nappal ezelőtt beszéltünk is, mivel őt vették fel a "Prossimo" projekt irányítására, amely alapvetően a kritikus szoftverinfrastruktúra biztonságos kódba helyezésére irányuló erőfeszítések összehangolására összpontosít, hogy a Linux kernel memóriáját a Rust segítségével biztonságossá tegye (ha többet szeretne tudni a projektről, konzultálhat közzététel az alábbi linken.)
A Miguel Ojeda által küldött kérelem egy második frissített változat az eszközillesztők Rust nyelvű fejlesztésére szolgáló komponensek közül, amelyekben a javítások első verziójának megvitatása során tett megjegyzéseket törlik, és amelyekhez Linus Torvalds már csatlakozott a vitához, és javasolta a logika megváltoztatását néhány bites művelet feldolgozásához.
Az előnyök belsejében amelyeket megemlítenek a Rust-ban garantált a biztonságos memóriakezelés fordítási időben a referenciák ellenőrzésével, az objektum tulajdonjogának és az objektum élettartamának nyomon követésével, valamint a memória hozzáférésének helyességének értékelésével a futás közben.
Rust is nyújt egész szám túlcsordulás elleni védelem, használat előtt megköveteli a változóértékek kötelező inicializálását, jobban kezeli a szabványos könyvtár hibáit, alapértelmezésben átveszi a referenciák és a változhatatlan változók fogalmát, és erős statikus írást kínál a logikai hibák minimalizálása érdekében.
A kiemelkedő változások közül a javítások új verziójának megemlítése:
- A memória-allokációs kód megakadályozza a pánik kialakulását, ha olyan hibák fordulnak elő, mint a memória kifogyása.
- Tartalmazza a Rust allokkönyvtár egy változata, amelyben a kódot átdolgozták a zárak kezelésére, de a végső cél az, hogy a kernel minden szükséges tulajdonságát eljuttassa az allokáció fő kiadásába (a változtatásokat már előkészítették és átvitték a szokásos Rust könyvtárba).
- Az éjszakai összeállítások helyett most már béta és stabil verziók is használhatók rustc fordító Rust-kompatibilis kernel fordításához. Jelenleg a rustc 1.54-beta1 használható referencia fordítóként, de a hónap végi 1.54 kiadás után referencia fordítóként támogatják.
- Támogatás a tesztek írásához a "# [test]" szabványos Rust attribútummal, valamint a doctests használatának képessége a dokumentáció mintakódjának tesztként való felhasználásához.
- Az ARM32 és RISCV architektúrák támogatása hozzáadódott a korábban támogatott x86_64 és ARM64 mellett.
Továbbfejlesztett GCC implementációk: Rust (a RC GCC kezelőfelülete) és rustc_codegen_gcc (a GCC rustc backendje), amelyek most már teljesítik az összes referenciaértéket. - A az absztrakció új szintje a Rust programok számára a C-ben írt kernelmechanizmusok, például fák, referenciaszámláló objektumok, fájlleírók, feladatok, fájlok és I / O vektorok létrehozása.
- Az illesztőprogram-fejlesztő komponensek tovább támogatták a "file_operations" modult, a "module!" Makrót, a makró naplózást és az alapvető meghajtókat (szondázás és törlés).
- A Binder támogatja a fájlleírók és az LSM linkek továbbítását.
- A Rustberry meghajtó funkcionálisabb példája, a bcm2835-rng, a Raspberry Pi táblák hardveres véletlenszám-generátorához javasolt.
Végül, ha érdekel, hogy többet tudjon meg róla, olvassa el a részleteket A következő linken.