A kernelben a Rust keretrendszerét lehetne bevezetni a meghajtók fejlesztése érdekében

Rust Linux kernel

Josh Triplett, egy Intel-alapú vállalat és a Crates.io fejlesztési felügyeleti bizottságának tagja, néhány napja már bemutatott egy munkacsoportot a nyílt forráskódú technológiai csúcstalálkozón tartott beszédében amelynek célja a Rust C-vel egyenértékűvé tétele a Linux kernel programozásában.

A létrehozás alatt álló munkacsoportban A rozsda fejlesztői az Intel mérnökeivel együtt elkészítik a specifikációkat ez kiemelheti azt a funkcionalitást, amelyre Rustnak szüksége van a Linux kernelen belüli programozáshoz. A rendszer programozása gyakran alacsony szintű manipulációkat igényel, például kiváltságos processzor-utasítások végrehajtását és részletes információk beszerzését a processzor állapotáról.

A Rust számára már fejlesztett hasonló képességek közül a név nélküli struktúrák támogatása támogatott, szakszervezetek (szakszervezet), az összeállító beszúrások (az "asm!" makró) és a BFLOAT16 lebegőpontos számformátum.

Josh úgy véli, hogy a rendszerprogramozás jövője Rustot rejti, és a modern nyelvben a C nyelv azt állítja, hogy Assembler helye a múltban. A rozsda nemcsak enyhíti a fejlesztőket az alacsony memóriával végzett munka miatt felmerülő speciális C nyelvi problémákban, hanem alkalmazhatóságot nyújt a modern programozási paradigmák fejlesztésében is.

Josh beszédének megvitatása során az ötlet kifejeződött:

hozzáadhatja a Rust nyelvű illesztőprogramok fejlesztésének képességét a Linux kernelhez, ami minimális erőfeszítéssel lehetővé tenné jobb és biztonságosabb illesztőprogramok létrehozását, amelyek enyhítik a problémákat, például a memóriaterülethez való hozzáférést a felszabadítás után, a nullpontos hivatkozások és a határokon túli kilépés a puffer.

Greg Kroah-Hartman, - felelős a Linux kernel stabil ágának fenntartásáért, ésx kifejezte hajlandóságát hozzáadni a Rust driver keretrendszert a kernelhez, ha annak valódi előnyei vannak a C-vel szemben, például biztonságos összekapcsolást biztosít a mag API-n keresztül, valamint Greg ezt a keretrendszert csak olyan opciónak tekinti, amely alapértelmezés szerint nem aktív, nehogy a Rust bekerüljön az alapszerelvény-függőségek számába.

Kiderült, hogy már több csapat is dolgozik ebben az irányban. Például a Fish in a Barrel fejlesztők eszközkészletet készítettek a Linux kernel betölthető moduljainak Rust nyelvű írásához, absztrakt rétegek felhasználásával a kernelfelületek és struktúrák tetején a biztonság növelése érdekében.

A köztes rétegek automatikusan létrejönnek a bindgen segédprogram segítségével elérhető kernel fejlécfájlok alapján. A Clangot közbenső rétegek építésére használják. Az összeszerelt modulok a rétegek mellett a staticlib csomagot is használják.

Ezzel párhuzamosan újabb projekt készül, amelynek középpontjában a beágyazott rendszerek vezérlőinek fejlesztése áll és a tárgyak internete eszközei, amelyek szintén a bindgen segítségével nyakörveket állítanak elő a kernel fejlécfájljai alapján.

A keretrendszer lehetővé teszi az illesztőprogram biztonságának javítását a kernel megváltoztatása nélkül; Ahelyett, hogy további izolációs szinteket hozna létre az illesztőprogramok számára a kernelben, azt javasoljuk, hogy blokkolja a kérdéseket a fordítás szakaszában egy biztonságosabb Rust nyelv használatával.

Feltételezzük, hogy a berendezésgyártók megfelelő ellenőrzés nélkül sietve fejleszthetik ezt a megközelítést.

Még nem hajtották végre az összes tervezett funkciót, de a keretrendszer már elég alkalmas a feladatra, és arra használják, hogy egy működő illesztőprogramot írjon a mellékelt LAN9512 USB Ethernet vezérlőhöz a Raspberry Pi 3 táblára.

A meglévő smsc95xx illesztőprogramot írták referencia megvalósításként amikor a Rust illesztőprogramot C nyelven írta.

Megjegyzendő, hogy a modulméret és a futásidejű komponensek általános költségei nem jelentősek a Rust illesztőprogramjának fejlesztésekor, amely lehetővé teszi a keretrendszer használatát korlátozott erőforrású eszközökhöz.

forrás: https://hub.packtpub.com


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.

  1.   L1ch dijo

    Nem találok információt az smsc95xx illesztőprogramról a forrásból, illetve arról, hogy valami megvalósul a Linux Rust rendszerében.