Desátá verze záplat pro linuxové jádro s podporou jazyka Rust

Miguel Ojeda, autor projektu Rust-for-Linux, navrhl vydání v10 komponent pro vývoj ovladačů zařízení Rust pro vývojáře linuxového jádra. Toto je jedenácté vydání záplat, přičemž se bere v úvahu první verze publikovaná bez čísla verze. Zahrnutí podpory Rust bylo schváleno Linusem Torvaldsem pro zahrnutí do jádra Linuxu 6.1, pokud se neobjeví nepředvídatelné problémy. Vývoj financuje Google 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.

Stejně jako předchozí verze oprav je vydání v10 omezeno na naprosté minimum potřebné k vytvoření jednoduchého modulu jádra napsaného v Rustu. Rozdíly oproti předchozí verzi se týkají drobných oprav, nahrazení sizeof za ARRAY_SIZE v kallsyms.c a přizpůsobení patchů jádru v6.0-rc7. Očekává se, že minimální oprava, která byla snížena ze 40 13 na XNUMX XNUMX řádků kódu, usnadní začlenění podpory Rust do hlavního proudu. Po poskytnutí minimální podpory se plánuje postupné navyšování stávající funkcionality s přenesením dalších změn z větve Rust-for-Linux.

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 nevede k zahrnutí Rust mezi požadované závislosti sestavení pro jádro. Použití Rustu k vývoji ovladačů vám umožní vytvářet bezpečnější a lepší 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 poskytována v době kompilace prostřednictvím kontroly referencí, sledováním vlastnictví objektu a životnosti objektu (rozsahu) a také prostřednictvím vyhodnocování správnosti přístupu do paměti během provádění kódu. Rust také poskytuje ochranu proti přetečení celých čísel, vyžaduje povinnou inicializaci hodnot proměnných před použitím, lépe zpracovává chyby ve standardní knihovně, standardně aplikuje koncept neměnných referencí a proměnných, nabízí silné statické typování pro minimalizaci logických chyb.

Zdroj: opennet.ru

Přidat komentář