Přichází osmá verze oprav pro podporu ovladačů Rust na Linuxu

Miguel Ojeda, autor projektu Rust-for-Linux vydala osmou verzi vývoj záplat linuxového jádra s podporou jazyka Rust pro vývojáře linuxových jader, které je třeba zvážit.

Toto se řadí jako deváté vydání oprav (s přihlédnutím k první vydané verzi bez čísla verze). Podpora rzi je považována za experimentální, ale je již zahrnuta ve větvi linux-next, požaduje integraci v podzimním vydání 5.20/6.0 a je dostatečně pokročilá, aby mohla začít pracovat na vytváření abstraktních vrstev nad subsystémy jádra, stejně jako na psaní řadičů a modulů.

Vývoj je financován Googlem a ISRG (Internet Security Research Group), která je zakladatelem projektu Let's Encrypt a propaguje HTTPS a vývoj technologií pro zvýšení bezpečnosti internetu.

Navrhované změny umožňují používat Rust jako druhý jazyk pro vývoj ovladačů a modulů jádra. Podpora Rust je prezentována jako možnost, která není ve výchozím nastavení povolena a nemá za následek zařazení Rust mezi požadované závislosti sestavení pro jádro. Použití Rustu k vývoji ovladačů vám umožní vytvářet lepší a bezpečnější ovladače s minimálním úsilím, bez problémů, jako je přístup k oblasti paměti po jejím uvolnění, dereferencování nulových ukazatelů 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.

Co je nového v tomto osmém vydání?

V tomto novém návrhu, který byl vydán, je to zmíněno varianta knihovny alloc, který eliminoval možné generování „panického“ stavu při chybách, aktualizováno na verzi Rust 1.62. V porovnání s předchozí verzí má sada nástrojů Rust stabilizovanou podporu pro funkcionalitu const_fn_trait_bound používanou v záplatách jádra.

Kromě toho kód vázání je rozdělen do svazku polí „vazby“. samostatně, což usnadňuje opětovné sestavení, pokud se změní pouze hlavní balíček jádra.

The implementace makra "concat_idents!", Přepsáno jako procedurální makro, které není vázáno na funkci concat_idents a umožňuje použití odkazů na místní proměnné.

Kromě toho je zmíněno, že makro "static_assert!" byl přepsán tak, aby umožňoval "core::assert!()" se používá v libovolném kontextu místo konstant, zatímco makro "construction_error!" byl upraven tak, aby fungoval při nastavování režimu "RUST_BUILD_ASSERT_{WARN,ALLOW}" pro moduly.

fs modul přidán který poskytuje odkazy pro práci se souborovými systémy. Je navržen příklad jednoduchého souborového systému napsaného v Rustu a také modul fronty úloh přidaný pro práci se systémovými frontami.

Z dalších změn které vyčnívají z tohoto nového návrhu:

  • Přidán samostatný konfigurační soubor "kernel/configs/rust.config".
  • Soubory "*.i" zpracované v substitucích maker byly přejmenovány na "*.rsi".
  • Odstraněna podpora pro vytváření komponent Rust s jinými úrovněmi optimalizace, než které se používají pro kód C.
  • Vývoj modulu kasync pokračoval implementací metod asynchronního programování (async).
  • Přidán příklad TCP serveru na úrovni jádra napsaného v Rustu a přidána schopnost zpracovávat přerušení v Rustu.
  • Přidáno makro procedury, které usnadňuje práci s tabulkami ukazatelů funkcí, jako je struktura file_operations.
  • Přidána implementace obousměrného propojeného seznamu "unsafe_list::List".
  • Přidána počáteční podpora pro RCU a typ Guard pro kontrolu, zda je zámek čtení vázán na aktuální vlákno.
  • Přidána funkce Task::spawn() pro automatické vytváření a spouštění vláken jádra.
  • Byla také přidána metoda Task::wake_up() .
  • Přidán zpožďovací modul

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


Zanechte svůj komentář

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

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  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.