Tretia verzia záplat pre podporu ovládača Rust v Linuxe už bola vydaná

Šesť mesiacov po zverejnení druhej verzie, Miguel Ojeda, autor projektu Rust-for-Linux, oznámila návrh tretej možnosti na vývoj ovládačov zariadení v jazyku Rust v jadre Linuxu.

Podpora hrdze sa považuje za experimentálnu, ale jej zaradenie do vetvy linux-next už bolo dohodnuté. Vývoj financuje Google a organizácia ISRG (Internet Security Research Group), ktorá je zakladateľom projektu Let's Encrypt a prispieva k propagácii HTTPS a vývoju technológií na zlepšenie bezpečnosti internetu.

Malo by sa pamätať na to, že navrhované zmeny umožňujú použiť Rust ako druhý jazyk na vývoj ovládačov jadra a modulov.

Rust ovládače na Linuxe
Súvisiaci článok:
Druhá verzia opráv pre podporu ovládača Rust v systéme Linux bola dodaná

Podpora hrdze je inzerovaná ako možnosť, ktorá nie je štandardne aktívna a nevedie to k tomu, že Rust bude zahrnutý do požadovaných základných závislostí zostavy. Použitie Rustu na vývoj ovládačov vám umožní vytvárať lepšie a bezpečnejšie ovládače s minimálnym úsilím, bez problémov s prístupom k oblasti pamäte po uvoľnení, dereferencovaním nulových ukazovateľov a prekročením limitov vyrovnávacej pamäte.

Nová verzia opráv pokračuje v odstraňovaní pripomienok, ktoré boli prednesené počas diskusie o prvej a druhej verzii opráv a o najvýznamnejších zmenách, ktoré môžeme nájsť:

Prechod na stabilnú verziu Rust 1.57 ako referenčný kompilátor a bola zabezpečená väzba na stabilizovanú edíciu jazyka Rust 2021. Prechod na špecifikáciu Rust 2021 ppovolené začať pracovať, aby sa predišlo používaniu takýchto nestabilných funkcií v patchoch ako const_fn_transmute, const_panic, const_unreachable_unchecked a core_panic a try_reserve.

To tiež vyniká vývoj alokovanej verzie pokračoval z knižnice Rust, v novej verzii, možnosti "no_rc" a "no_sync" sú implementované na deaktiváciu funkcie ktorý sa nepoužíva v kóde Rust pre jadro, vďaka čomu je knižnica modulárnejšia. Pokračujeme v spolupráci s hlavnými vývojármi alokácií, aby sme do hlavnej knižnice priniesli potrebné zmeny jadra. Voľba "no_fp_fmt_parse", ktorá je potrebná pre fungovanie knižnice na úrovni jadra, bola presunutá do základnej knižnice (kernelu) Rustu.

Kód bol vyčistený, aby sa odstránili možné varovania kompilátora pri kompilácii jadra v režime CONFIG_WERROR. Keď je kód vytvorený v Ruste, sú zahrnuté ďalšie režimy diagnostického kompilátora a varovania Clippy linter.

Navrhli abstrakcie na použitie seqlockov (sekvenčné zámky), volania spätného volania pre správu napájania, pamäťové I/O (čítanieX/zápisX), obsluhy prerušení a vlákien, GPIO, prístup k zariadeniu, ovládače a poverenia v kóde hrdze.

Nástroje na vývoj ovládačov boli rozšírené s použitím premiestniteľných mutexov, bitových iterátorov, zjednodušených väzieb nad ukazovateľmi, vylepšenej diagnostiky porúch a infraštruktúry nezávislej na dátovej zbernici.

Práca s odkazmi bola vylepšená pomocou typu Ref zjednodušené, založené na backende refcount_t, ktorý používa centrálne API s rovnakým názvom na počítanie referencií. Podpora typov Arc a Rc poskytovaná v štandardnej mapovacej knižnici bola odstránená a nie je dostupná v kóde vykonávanom na úrovni jadra (pre samotnú knižnicu boli pripravené možnosti na vypnutie týchto typov).

Do záplat bola pridaná verzia ovládača PL061 GPIO, prepísaná do jazyka Rust. Funkciou ovládača je, že jeho implementácia takmer po riadkoch opakuje existujúci ovládač C GPIO. Pre vývojárov, ktorí sa chcú zoznámiť s regulátormi budov v Ruste, bolo pripravené porovnanie riadkov po riadkoch, ktoré poskytuje prehľad o tom, z ktorých buildov v Ruste sa stal C kód.

Hlavná kódová základňa Rustu využíva rustc_codegen_gcc, rustc backend pre GCC, ktorý implementuje kompiláciu AOT pomocou knižnice libgccjit. Pri správnom vývoji backendu vám to umožní zbierať Rust kód zahrnutý v jadre pomocou GCC.
Okrem ARM, Google a Microsoft prejavil záujem použiť Rust v jadre Linuxu aj Red Hat.

Nakoniec, ak máte záujem dozvedieť sa o ňom viac, môžete si prekonzultovať podrobnosti Na nasledujúcom odkaze.


Zanechajte svoj komentár

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

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  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ť.