Bola zverejnená štvrtá verzia záplat pre podporu ovládača Rust v systéme Linux

Miguel Ojeda, autor projektu Rust-for-Linux, Teme nedávno predstavil štvrtý návrh pre komponenty ovládača zariadenia Rust pre vývojárov jadra Linuxu na zváženie.

Podpora hrdze sa považuje za experimentálnu, ale už bolo dohodnuté, že bude zahrnutá do vetvy linux-next a je dostatočne zrelá na to, aby začala pracovať na abstraktných vrstvách nad subsystémami jadra, ako aj na písaní ovládačov a modulov. Vývoj je financovaný spoločnosťou Google a ISRG (Internet Security Research Group), ktorá je zakladateľom projektu Let's Encrypt a propaguje HTTPS a vývoj technológií na zvýšenie bezpečnosti internetu.

Tí, ktorí o navrhovaných zmenách stále nevedia, by mali vedieť, že to umožňujú použitie Rustu ako druhého jazyka na vývoj ovládačov a modulov jadra. Podpora Rust je prezentovaná ako možnosť, ktorá nie je štandardne povolená a nemá za následok zaradenie Rustu medzi požadované závislosti zostavy pre jadro.

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ímbez problémov, ako je prístup k oblasti pamäte po jej uvoľnení, dereferencovanie nulových ukazovateľov a pretečenie vyrovnávacej pamäte.

Bezpečnosť pamäte je v Rust zabezpečená v čase kompilácie kontrolou referencií, sledovaním vlastníctva objektu a životnosti objektu (rozsahu), ako aj vyhodnocovaním správnosti prístupu do pamäte počas vykonávania kódu.

Rust tiež poskytuje ochranu proti pretečeniu celého čísla, vyžaduje inicializáciu premenných pred použitím, lepšie zvláda chyby v štandardnej knižnici, štandardne presadzuje koncepciu nemenných premenných a odkazov a ponúka silné statické písanie na minimalizáciu logických chýb.

Aké sú zmeny vo štvrtom diele?

V tejto novej verzii opráv, ktoré sú prezentované, sa uvádza, že komentáre vznesené počas diskusie o prvom, druhom a treťom vydaní opráv boli naďalej odstraňované.

Budeme pokračovať v aktualizáciách, kým nebudeme závislí na žiadnych nestabilných funkciách;
vtedy by sme možno chceli začať deklarovať minimálnu verziu Rustu
je podporovaný, ako sa to robí napríklad pre GCC a Clang.

Podobne sme migrovali aj na vydanie jazyka Rust z roku 2021.

Pokiaľ ide o ďalšie zmeny, ktoré boli vykonané v tejto novej verzii, oznámenie uvádza nasledovné:

  • Prechod na používanie stabilného Rust 1.58.0 ako referenčného kompilátora.
  • Zmeny požadované pre projekt, ktoré ešte nie sú zahrnuté v hlavnej sade nástrojov Rust, zahŕňajú príznak „-Zsymbol-mangling-version=v0“ (očakávaný v Rust 1.59.0) a režim „možná_uninit_extra“ (očakávaný v Rust 1.60.0) .
  • Pribudli automatické kontroly dostupnosti nástrojov Rust a ich vhodnosti a rozšírená bola aj možnosť testovania podpory Rustu v systéme.
  • Navrhujú sa nové abstrakcie, aby bolo možné pristupovať k tabuľkám identifikátorov zariadení ("IdArray" a "IdTable") z kódu Rust.
  • Pridané vrstvy pre volanie funkcií, ktoré súvisia s časovačom (hodinovým rámcom).
  • Radiče platformy sú teraz definované prostredníctvom implementácií vlastností.
  • Na zjednodušenie registrácie ovládača platformy bolo pridané nové makro a bola navrhnutá nová generická šablóna ovládača.
  • Pridané nové makrá pre štruktúry "dev_*".
  • Pridané nové metódy „{read,write}*_relaxed“ pre typ IoMem .
  • Odstránená vlastnosť FileOpener na zjednodušenie operácií so súbormi.
  • Pridaný parameter "ThisModule" k počtu argumentov odovzdaných počas registrácie radiča.
  • Navrhuje sa typická šablóna na vytváranie modulov jadra v jazyku Rust.

Nakoniec, ak máte záujem dozvedieť sa viac o tejto novej verzii, môžete si prečítať 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ť.