nemrég Miguel Ojeda, a Rust-for-Linux projekt szerzője közzétette az ötödik javaslatot A fejlesztői összetevők számára választott Linux-kernel-fejlesztők Rozsda eszköz illesztőprogramok hogy mérlegeljék.
Aki még nem ismeri ezt a több hónapja megjelent javaslatsorozatot, annak tudnia kell, hogy az ötlet mögött az áll, hogy jelenleg kísérleti jellegűnek számít a Rust támogatás, de már benne van a linux-next ágban, és elég érett ahhoz, hogy elkezdjen dolgozni az absztrakciós rétegek létrehozásán a kernel alrendszereiről, valamint az illesztőprogramok és modulok írásáról.
Jelenleg Miguel Ojeda fejlesztési bizottságát a Google és az ISRG finanszírozza (Internet Security Research Group), 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.
Fontos megemlíteni, hogy a javasolt változtatások lehetővé teszik a Rust második nyelvként való használatát illesztőprogramok és kernelmodulok fejlesztéséhez. 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álatával az illesztőprogramok fejlesztésére jobb és biztonságosabb illesztőprogramokat készíthet minimális erőfeszítéssel, anélkül, hogy olyan problémákat okozna, 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.
Az ötödik javaslat főbb újdonságai
A javítások új verziójában folytatta a hozzászólások törlését az első, második, harmadik és negyedik kiadású patch tárgyalása során készült.
Az elvégzett változtatások, fejlesztések részében azt tapasztalhatjuk, hogy a komponens érvényesítése a kompatibilitás érdekében A folyamatos integrációs rendszerbe bekerült a Rust Az Intel kompatibilis 0DAY/LKP bot alapján, és megkezdődött a tesztjelentések közzététele.
Ezen kívül kiemelik, hogy ben készül a Rust támogatás integrációja automatizált tesztrendszer KernelCI, plusz a GitHub CI alapú teszteket konténerek használatára váltották.
Azt is kiemelik hozzáadta a további paraméterek meghatározásának lehetőségét eszközök regisztrálásakor, valamint az is_rust_module.sh szkriptet újratervezték és a statikus szinkronizálási primitívek (globális megosztott változók) támogatása a „CONFIG_CONSTRUCTORS” megvalósításon alapul.
A egyéb kiemelkedő változások ebben az új vezérlőjavaslatban:
- A Rust Core modulokat megkíméli a következő attribútumok meghatározása: "#![no_std]" és "#![feature(...)]".
- Hozzáadott támogatás az egyszeri összeállítású célokhoz (.o, .s, .ll és .i).
- A kódra vonatkozó irányelvek mostantól szabályokat határoznak meg a megjegyzések ("//") és a kód dokumentálása ("///") elválasztására.
- Egyszerűsített zárkezelés: A Guard és a GuardMut egyetlen paraméterezett típusba egyesítve.
- Hozzáadtuk az "RwSemaphore" absztrakciót, amely burkolóként működik a C rw_semaphore struktúra felett.
- Az mmap használatához egy új mm-modul és egy VMA-absztrakció (a vm_area_struct szerkezethez kötve) került hozzáadásra.
- A PL061 GPIO vezérlő a „dev_*!” makróra módosult.
- Általános kódtisztítás.
Végül ha érdekel, hogy többet tudjon meg róla az új javaslattal kapcsolatban tájékozódhat a részletekről A következő linken.