Megjelent a Linuxon futó Rust illesztőprogram-támogatás javításának hetedik verziója

Pár napja, Miguel Ojeda, ezen javaslatok kidolgozásáért és benyújtásáért felelős, valamint a Rust-for-Linu projekt szerzőjex bemutatta a hetedik komponensjavaslatot eszközillesztő fejlesztéshez Rozsda a Linux kernel fejlesztői számára.

Ez a javítások hetedik kiadása és amihez még a Rust támogatás is kísérletinek számít, de már benne van a linux-next ágban, és eléggé kiforrott ahhoz, hogy elkezdjen dolgozni a kernel alrendszerek feletti absztrakciós rétegek létrehozásán, valamint vezérlő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.

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álata az illesztőprogramok fejlesztésére lehetővé teszi jobb és biztonságosabb illesztőprogramok létrehozását 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.

Főbb újdonságok a hetedik javaslatban

Ez az új javaslat rávilágít erre az eszközkészlet és az alloc könyvtár egy változata, amely kiküszöbölte a hibák esetleges "pánik" állapotát, frissítve a Rust 1.60-as verzióra és ezáltal stabilizálja a kernelfoltokban használt "may_uninit_extra" mód támogatását.

Ezen kívül meg kell jegyezni, hogy hozzáadott lehetőség tesztek futtatására a dokumentációból (a dokumentációban példaként egyidejűleg használt tesztek) a kernel API-hoz kötött fordítási idejű tesztek KUnit tesztekké való konvertálásával, amelyek a kernel indításakor futnak. A teszteknek nem kell Clippy linter-figyelmeztetést kiadniuk, ahogy az az alapvető Rust kód is.

Másrészt javasolt a «net» modul kezdeti megvalósítása hálózati funkciókkal. A Rust kód hozzáférést biztosít olyan kernelhálózati struktúrákhoz, mint a "Namespace" (a "struct net" kernelstruktúra alapján), SkBuff (struct sk_buff), TcpListener, TcpStream (struct socket), Ipv4Addr (struct in_addr), SocketAddrV4 (struct sockaddr_in) és IPv6 megfelelői.

a hátsó vége rustc_codegen_gcc, megvalósította a rustc fordító elindításának képességét. A fordító üzembe helyezése a rustc azon képességére utal, hogy GCC-alapú kódgenerátort használhat a rustc fordító felépítéséhez.

Ezenkívül a GCC 12.1 legutóbbi kiadása tartalmazza a libgccjit javításait, amelyek szükségesek a rustc_codegen_gcc megfelelő működéséhez. Folyamatban vannak az előkészületek a rustc_codegen_gcc telepítésének lehetőségének biztosítására a rustup segédprogrammal.

A egyéb kiemelkedő változások ennek az új verziónak:

  • Az aszinkron programozási módszerek kezdeti támogatása (async), a kasync modul formájában megvalósítva.
  • Net::filter modul hozzáadva a hálózati csomagszűrők kezeléséhez. Hozzáadott példa a rust_netfilter.rs szűrő implementációjával Rust nyelven.
  • Egy egyszerű mutex smutex::Mutex megvalósítása hozzáadva, amely nem igényel rögzítést.
  • Hozzáadott egy NoWaitLock zárolást, amely soha nem vár a feloldásra, és ha azt egy másik szál foglalja el, akkor nem sikerül megszereznie a zárolást a hívó leállítása helyett.
  • Hozzáadott egy RawSpinLock zárolást, amelyet a raw_spinlock_t a kernelben azonosít, és amely azokra a szakaszokra vonatkozik, amelyek nem lehetnek tétlen.
  • ARef típus hozzáadva azokhoz az objektumhivatkozásokhoz, amelyekre a hivatkozásszámláló mechanizmust alkalmazzák (mindig cáfolva).
  • Előrelépés látható a GCC gccrs frontendjének fejlesztésében a GCC-n alapuló Rust nyelvi fordító megvalósításával. Jelenleg két főállású fejlesztő dolgozik a gccrs-n.

Végül Ha érdekel, hogy többet tudjon meg róla, ben ellenőrizheti a részleteket a következő link.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.