Western Digital již pracuje na ovladači NVMe napsaném v Rustu

RustLinux

Integrace Rustu v Linuxu má vysokou úroveň přijetí komunitou a vývojáři

Během konference „Linux Plumbers 2022“. který v těchto dnech probíhal, inženýr Western Digital přednesl prezentaci o vývoji regulátoru experimentální pro SSD NVM-Express (NVMe) napsaný v Rustu a běží na úrovni jádra Linuxu.

Ačkoli projekt je stále v rané fázi vývojeProvedené testy ukázaly, že výkon ovladače Rust NVMe odpovídá ovladači NVMe napsanému v C v jádře.

Jsem Matthew Wilcox, jsem jedním z autorů specifikace NVMe, byl jsem tím, kdo navrhl, abych vytvořil ovladač NVMe, abych demonstroval hodnotu Rust. Bylo to úspěšné nad moje nejdivočejší očekávání. 

K předložené zprávě aktuální ovladač NVMe C je prý plně vyhovující pro vývojáře, ale subsystém NVMe je dobrou platformou pro prozkoumání proveditelnosti vývoje ovladačů v Rustu, protože je poměrně jednoduchý, široce používaný, má vysoké požadavky na výkon, má osvědčenou referenční implementaci pro srovnání a podporuje různá rozhraní ( dev, pci, dma, blk-mq, gendisk, sysfs).

Je pozorováno, že ovladač Rust PCI NVMe již poskytuje potřebné funkce pro provoz, ale ještě není připraven pro široké použití, protože vyžaduje samostatná vylepšení.

Plány do budoucna zahrnují zbavení se stávajících nezabezpečených bloků, podpora odebrání zařízení a stažení ovladače, podpora rozhraní sysfsimplementujte línou inicializaci, vytvořte řadič pro blk-mq a experimentujte s asynchronním programovacím modelem pro queue_rq.

Dále můžeme ukazovat provedené experimenty od skupiny NCC k vývoji ovladačů v jazyce Rust pro jádro FreeBSD. Jako příklad lze uvést jednoduchý echo řadič, který vrací data zapsaná do /dev/rustmodule. V další fázi experimentování NCC Group zvažuje přepracování základních základních komponent v Rustu, aby se zlepšila bezpečnost síťových a souborových operací.

To znamená, že ačkoli se ukázalo, že je možné vytvářet jednoduché moduly v Rustu, těsnější integrace Rustu do jádra FreeBSD bude vyžadovat další práci.

Zmiňuje například nutnost vytvořit sadu abstrakčních vrstev nad subsystémy a strukturami jádra, podobně jako pluginy, které pro Linux připravuje projekt Rust. V budoucnu plánujeme provádět podobné experimenty s jádrem Illumos a zvýraznit běžné abstrakce v Rustu, které by mohly být použity v ovladačích napsaných Rustem pro Linux, BSD a Illumos.

Podle společností Microsoft a Google je přibližně 70 % zranitelností v jejich softwarových produktech způsobeno nezabezpečenou správou paměti.

Použití jazyka Rust má snížit riziko zranitelnosti způsobené nezabezpečenou manipulací s pamětí a eliminuje výskyt chyb, jako je přístup k oblasti paměti po jejím uvolnění a přetečení vyrovnávací paměti.

Bezpečnost paměti je v Rustu zajištěna v době kompilace kontrolou referencí, sledováním vlastnictví objektu a životnosti objektu (rozsahu) a také vyhodnocováním správnosti přístupu do paměti během provádění kódu.

Rez také poskytuje ochranu proti přetečení celého čísla, vyžaduje, aby byly proměnné před použitím inicializovány, lépe zpracovává chyby ve standardní knihovně, standardně prosazuje koncept neměnných proměnných a odkazů a nabízí silné statické typování pro minimalizaci logických chyb.

Stojí za zmínku, že je možné, že budoucí práce půjde ruku v ruce s prací, kterou Miguel Ojeda představil na svých ovladačích "Rust for Linux", které byly prezentovány jako série záplat.

Konečně pokud máte zájem o tom vědět více, můžete zkontrolovat podrobnosti v následující odkaz.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.