Rust pre Linux obsahuje niekoľko vylepšení na podporu

Počas posledných mesiacov Vývojári Linuxu sa hádali možnosť povoliť používanie jazyka Rust na napísanie nových ovládačov zariadení pre jadro.

Minulý rok vývojári jadra Linuxu Zdá sa, že v tejto veci dosiahli dohodu, Podporovatelia hrdze citovali prácu, ktorá ukazuje, že zhruba dve tretiny zraniteľností jadra priradených CVE v Androide a Ubuntu súvisia s problémami so zabezpečením pamäte.

Po tomto vyhlásení Linus Torvalds, softvérový inžinier, hlavný tvorca a vývojár linuxového jadra, v rozhovore povedal, že diskusia na túto tému bude oveľa dôležitejšia ako zdĺhavý príspevok Google o jazyku.

Keď sa ho spýtali na návrh použiť Rust, uviedol, že "Riešenie je jednoduché: namiesto Rustu použite C ++."

Potom v marci bola spustená prvá podporae, ktorý umožnil umiestniť ovládače Rust do stromu Linux-Next na ďalšie testovanie pred ich prípadným zahrnutím do hlavného jadra.

Hneď za tým bola „žiadosť o komentár“ znovu vydaná na mailing listu jadra o perspektíve kódu Rust pre jadro Linuxu.

Miguel OjedaVývojár linuxového jadra spustil návrh Request for Comments (RFC) na mailing listu linuxového jadra.

Príspevok do mailing listu načrtol presvedčenie vývojárov zapojených do pridávania Rust kódu do jadra, výhody ako vylepšené zabezpečenie pamäte a ďalšie.

„Niektorí z vás si v posledných týždňoch a mesiacoch všimli, že sa robí vážny pokus o zavedenie druhého jazyka do jadra. Konečne sme tam s RFC, ktoré pridáva podporu pre Rust do linuxového jadra, “povedal Miguel Ojeja. „Vieme, že so zavedením nového jazyka do jadra sú spojené obrovské náklady a riziká,“ dodal.

Projektový tím Rust for Linux presunuli z beta kompilátora Rust na používanie stabilných verzií, migruje pri každom vydaní novej verzie.

"Chceli by sme poďakovať Rustovi za spoluprácu na týchto možnostiach, aby ich jadro mohlo použiť," povedal Miguel.

Pri aktualizácii kompilátora sa tím dokázal zo zoznamu odstrániť niektoré nestabilné funkcie: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic a try_reserve.

Okrem toho sa zdôrazňuje, že boli pridané niektoré možnosti modularizácie viac alokovať na deaktiváciu niektorých nepotrebných funkcií: no_rc a no_sync.

Upstream, aby bol dobre podporovaný prípad použitia jadra, alebo presnejšie „mix“ možností, ktoré jadro potrebuje, Upstream jadro pridalo aj no_fp_fmt_parse.

Na druhej strane Rust umožnil sériu dodatočnej diagnostiky pre kompilátor Rust and Clippy. Jeden rozdiel od C je v tom, že diagnostika Rust sa v kóde o niečo jednoduchšie deaktivuje, čo je vo všeobecnom prípade prísnejšie.

tiež boli implementované abstrakcie a aktualizácie ovládačov. Tím pridal abstrakcie pre zámky toku, spätné volania správy napájania, pamäť io (readX / writeX), čipy irq a správcov toku na vysokej úrovni, čipy gpio (vrátane čipov irq), periférne zariadenia, periférne zariadenia amba a ovládače.

Podpora zo strany ovládač je rozšírený o infraštruktúru nezávislú na zbernici, Odvolateľné objekty, odvolateľné mutexy, efektívne bitové iterátory, lepšia diagnostika paniky a zjednodušené obaly ukazovateľov. Okrem toho zlepšil a zjednodušil objekty Ref (kompatibilné s refcount_t) a nahradil všetky inštancie Rust.

A nový ovládač pre zariadenia gpio PL061 bol implementovaný a dodaný ako RFC patch.

Na záver je potrebné poznamenať, že Podpora hrdze sa stále považuje za experimentálnu. Avšak, podpora je dostatočne dobrá na to, aby vývojári jadra začali pracovať v abstrakciách Rust pre zapisovacie podsystémy a ovládače a ďalšie moduly. Aktuálna séria práve dorazila na Linux-next, takže prvé spustenie sa uskutoční tento týždeň.

Fuente: https://lkml.org/lkml


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.