Miguel Ojeda, a Rust-for-Linux projekt szerzője, Teme nemrégiben ismertette a negyedik javaslatot eszközillesztő összetevők Rozsda a Linux kernel fejlesztői számára, amit fontolóra kell venni.
A rozsdatámogatás kísérleti jellegű, de már megállapodtak benne, hogy bekerül a linux-next ágba, és elég érett ahhoz, hogy elkezdjen dolgozni a kernel alrendszerek tetején lévő absztrakciós rétegeken, valamint meghajtók és modulok írásán. A fejlesztést a Google és az ISRG (Internet Security Research Group) finanszírozza, amely a Let's Encrypt projekt alapítója, és a HTTPS-t és az internet biztonságát növelő technológiák fejlesztését népszerűsíti.
Azok számára, akik még mindig nem ismerik a javasolt változtatásokat, tudniuk kell, hogy lehetővé teszik a Rust mint második nyelv használata vezérlők és modulok fejlesztéséhez a kernel. A Rust támogatása olyan opcióként jelenik meg, amely alapértelmezés szerint nincs engedélyezve, és nem eredményezi, hogy a Rust szerepeljen a kernel szükséges összeépítési függőségei között.
A Rust használata illesztőprogramok fejlesztésére lehetővé teszi jobb és biztonságosabb illesztőprogramok létrehozását minimális erőfeszítéssel, olyan problémák nélkül, mint a memóriaterület elérése a felszabadítás után, a nulla mutatók hivatkozásának megszüntetése és a puffer túlcsordulása.
A memória biztonságát a Rust a fordítási időben biztosítja a hivatkozások ellenőrzésével, az objektum tulajdonjogának és az objektum élettartamának (hatókörének) követésével, valamint a memória-elérés helyességének értékelésével a kód végrehajtása során.
A Rust egész számok túlcsordulás elleni védelmét is biztosítja, megköveteli a változók inicializálását használat előtt, jobban kezeli a szabványos könyvtár hibáit, alapértelmezés szerint érvényesíti a megváltoztathatatlan változók és hivatkozások koncepcióját, valamint erős statikus gépelést kínál a logikai hibák minimalizálása érdekében.
Mik a változások a negyedik részletben?
A bemutatott javítások új verziójában megemlítjük, hogy a javítások első, második és harmadik kiadásának tárgyalása során elhangzott megjegyzések továbbra is kikerültek.
Addig frissítjük, amíg nem függünk semmilyen instabil szolgáltatástól;
ekkor érdemes elkezdeni deklarálni a Rust minimális változatát
támogatott, mint például a GCC és a Clang esetében.Hasonlóképpen áttértünk a Rust nyelv 2021-es kiadására is.
Ami az új verzióban végrehajtott egyéb változtatásokat illeti, a közlemény a következőket említi:
- Áttérés a stabil Rust 1.58.0 használatára referencia-fordítóként.
- A projekthez szükséges, a fő Rust eszközkészletben még nem szereplő változtatások közé tartozik a "-Zsymbol-mangling-version=v0" jelző (a Rust 1.59.0-ban várható) és a "maybe_uninit_extra" mód (a Rust 1.60.0-ban várható) .
- Bekerült a Rust eszközök elérhetőségének és alkalmasságának automatikus ellenőrzése, és kibővült a rendszeren a Rust támogatás tesztelésének lehetősége is.
- Új absztrakciók javasoltak az eszközazonosító táblák ("IdArray" és "IdTable") eléréséhez a Rust kódból.
- Hozzáadott rétegek az időzítőhöz (órakerethez) kapcsolódó funkciók hívásához.
- A platformvezérlőket immár jellemző implementációk határozzák meg.
- A platform illesztőprogram-regisztrációjának egyszerűsítése érdekében új makrót adtak hozzá, és új, általános illesztőprogram-sablont javasoltak.
- Új makrók hozzáadva a „dev_*” struktúrákhoz.
- Új „{read,write}*_relaxed” metódusok hozzáadva az IoMem típushoz .
- A FileOpener tulajdonság eltávolítása a fájlműveletek egyszerűsítése érdekében.
- "ThisModule" paraméter hozzáadva a vezérlő regisztrációja során átadott argumentumok számához.
- A rendszermagmodulok Rust nyelven történő létrehozásához egy tipikus sablon javasolt.
Végül, ha többet szeretne megtudni erről az új verzióról, tájékozódhat a részletekről A következő linken.