Megérkezik a Linuxon futó Rust illesztőprogram-támogatáshoz szükséges javítások nyolcadik verziója

Miguel Ojeda, a Rust-for-Linux projekt szerzője kiadta a nyolcadik kiadást A Linux kernel-javítások fejlesztése Rust nyelvi támogatással a Linux kernel fejlesztői számára.

Ez a javítások kilencedik kiadása (figyelembe véve az első verziószám nélküli verziót). A rozsdatámogatás kísérleti jellegű, de már benne van a linux-next ágban, igényli az integrációt az 5.20/6.0 őszi kiadásában, és elég fejlett ahhoz, hogy elkezdjen dolgozni a kernel alrendszerek tetején lévő 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 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.

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.

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.

Mi az új ebben a nyolcadik kiadásban?

Ebben az új, közzétett javaslatban ez szerepel az alloc könyvtár változat, amely kiküszöbölte a hibák esetleges "pánik" állapotát, frissítve a Rust 1.62-es verziójára. Az előző verzióhoz képest a Rust eszközkészlet stabilizálta a kernelfoltokban használt const_fn_trait_bound funkciót.

Amellett a kötési kód egy köteg „kötés” dobozra van szétválasztva külön-külön, ami megkönnyíti az újraépítést, ha csak a fő kernelcsomagot módosítjuk.

A a "concat_idents!" makró megvalósítása, Átírva eljárási makróként, nem kötődik a concat_idents funkcióhoz, és lehetővé teszi a helyi változóhivatkozások használatát.

Ezen kívül megemlítik, hogy a makró "static_assert!" át lett írva, hogy engedélyezze a "core::assert!()" konstansok helyett tetszőleges kontextusban használatos, míg a "construction_error!" a modulok "RUST_BUILD_ASSERT_{WARN,ALLOW}" módban való működéséhez lett igazítva.

fs modul hozzáadva amely hivatkozásokat biztosít a fájlrendszerekkel való munkához. A javaslat egy egyszerű, Rust nyelven írt fájlrendszerre, valamint a rendszervárólistákhoz hozzáadott jobsor-modulra van példa.

A többi változás közül amelyek kiemelkednek ebből az új javaslatból:

  • Hozzáadott egy külön konfigurációs fájlt "kernel/configs/rust.config".
  • A makrócsere során feldolgozott "*.i" fájlok átnevezték "*.rsi"-re.
  • Eltávolítottuk a Rust komponensek építésének támogatását a C kódhoz használtaktól eltérő optimalizálási szintekkel.
  • A kasync modul fejlesztése az aszinkron programozási módszerek (async) megvalósításával folytatódott.
  • Hozzáadtunk egy példát egy Rust nyelven írt kernel szintű TCP szerverre, és hozzáadtuk a Rust megszakítások kezelésének képességét.
  • Eljárásmakrót adtunk hozzá, hogy megkönnyítsük a funkciómutató táblákkal való munkát, például a file_operations szerkezettel.
  • Hozzáadott kétirányú linkelt lista megvalósítása "unsafe_list::List".
  • Kezdeti támogatás hozzáadva az RCU-hoz és a Guard típushoz annak ellenőrzésére, hogy olvasási zár van-e kötve az aktuális szálhoz.
  • Feladat::spawn() függvény hozzáadva a kernelszálak automatikus indításához.
  • A Task::wake_up() metódus is hozzáadásra került.
  • Késleltető modul hozzáadva

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


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.