A negyedik kiadású patch a Linux kernelhez Rust nyelvtámogatással.

Miguel Ojeda, a szerző a Rust-for-Linux projekten, negyedik változatot javasolt a Linux kernel fejlesztői számára, a Rust nyelven írt eszközmeghajtó komponensek számára. A Rust támogatása kísérleti jellegűnek számít, de már jóváhagyásra került a linux-next ágba való beillesztésre, és elég fejlett ahhoz, hogy elkezdjük az absztrakciós rétegek létrehozását a kernel alrendszerei fölött, valamint a meghajtók és modulok írását. 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 elősegítésére, valamint az internet biztonságának javítására irányuló technológiák fejlesztésére törekszik.

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 patchek verziójában továbbra is folytatódik az első, második és harmadik változat patchek során felvetett észrevételek javítása. Az új verzió:

  • Átálltunk a Rust 1.58.0 stabil verziójának használatára referencia fordítóként. A projekthez szükséges, a Rust fő eszközcsomagba még nem beépített változások között szerepel a „-Zsymbol-mangling-version=v0” zászló (amely a Rust 1.59.0-ban várható) és a „maybe_uninit_extra” mód (amely a Rust 1.60.0-ban várható).
  • Automatikus ellenőrzéseket adtunk hozzá a megfelelő Rust eszközök elérhetőségére, valamint bővítettük a Rust támogatásának tesztelési lehetőségeit a rendszerben.
  • Új absztrakciókat javasoltunk a Rust nyelven írt kód számára az eszközazonosítók táblázataihoz való hozzáféréshez (IdArray és IdTable).
  • Köztes rétegeket adtunk hozzá az időzítőhöz kapcsolódó funkciók eléréséhez (clock framework).
  • A platformokhoz tartozó meghajtókat most a típusok implementálásával határozzuk meg.
  • Új makrót adtunk hozzá a platformmeghajtók regisztrálásának egyszerűsítésére, és javasoltunk egy új típusú meghajtó sablont.
  • Makrókat adtunk hozzá a „dev_*” struktúrákhoz.
  • Hozzáadtuk a „{read,write}*_relaxed” metódusokat az IoMem<T> típushoz.
  • Eltávolítottuk a FileOpener tulajdonságot a fájlműveletek egyszerűsítése érdekében.
  • A meghajtó regisztrálásakor átadott argumentumok közé bekerült a „ThisModule” paraméter.
  • Javasoltunk egy típusos sablont a Rust nyelven írt kernel modulok létrehozására.

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