Az ötödik Linux kernel javítókiadás a Rust nyelv támogatásával

Miguel Ojeda, a szerző a Rust-for-Linux projektben, ötödik változatú komponenseket javasolt az eszközmeghajtók Rust nyelven történő fejlesztéséhez a Linux mag fejlesztőinek. A Rust támogatása kísérleti jellegűnek számít, de már be van építve a linux-next ágba, és elég fejlett ahhoz, hogy elkezdődhessen a rétegzett absztrakciók létrehozása a mag alrendszerein, 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 és az internet védelmi technológiáinak fejlesztéséhez.

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 és negyedik patch kiadásában tett megjegyzések figyelembevételének megszüntetése. Az új verzióban:

  • A folyamatos integrációs rendszer a támogatott Intel bot, a 0DAY/LKP keretein belül új ellenőrzéseket kapott a Rust támogatásához, és elkezdődött a tesztelési jelentések publikálása. A Rust támogatásának integrálása a KernelCI automatizált tesztelő rendszerébe készül. A GitHub CI alapú tesztelés konténerek használatára vált.
  • A Rust nyelvű kernel modulok mentesülnek a crate attribútumok "#![no_std]" és "#![feature(…)]" meghatározásának szükségességétől.
  • Beépült az egységes build célok (.o, .s, .ll és .i) támogatása.
  • A kódformázási ajánlásokban meghatározásra kerültek a megjegyzések ("//") és a kód dokumentálásának ("///") elválasztásának szabályai.
  • Az is_rust_module.sh script át lett dolgozva.
  • Beépült a statikus (globális közös változók) szinkronizáló primitívek támogatása, amelyek a "CONFIG_CONSTRUCTORS" megvalósításán alapulnak.
  • Egyszerűsített blokkolások kezelése: A Guard és a GuardMut egyesítve lett, és egy paraméterezett típusra van szükség.
  • Lehetőség nyílt a további paraméterek megadására az eszközök regisztrálásakor.
  • Hozzáadva a ‘RwSemaphore’ absztrakció, amely a rw_semaphore C-struktúra feletti borítást képezi.
  • Az mmap használatához új mm modult és VMA absztrakciót (a vm_area_struct struktúra feletti borítást) adtunk hozzá.
  • A PL061 GPIO meghajtó átállt a ‘dev_*!’ makró használatára.
  • Átfogó kódkarbantartás történt.

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