Před pár týdny zprávy o některé implementace, které byly provedeny v větev linux-next, která obsahuje počáteční sadu komponent vyvíjet ovladače zařízení v jazyce Rust.
Tato dokumentace byla zveřejněna samostatně o použití Rustu v linuxovém jádře a příkladu modulu jádra s ovladačem znakového zařízení v jazyce Rust. Kód přidal Stephen Rothwell, správce pobočky.
Poté Linus Torvalds prošel kontrolou implementace oprava možností nastavení ovladačů jazyka Rust v linuxovém jádře a vyjádřil určitou kritiku.
Největší stížnosti byly způsobeny únikový potenciál „Panicen selhání běhu“ ve špatných situacích, například v situaci mimo paměť, kdy mohou selhat operace dynamického přidělování paměti, včetně operací jádra.
Torvalds uvedl, že takové zaměření na jádro je zásadně nepřijatelné, A pokud tomuto bodu nerozumíte, můžete úplně odmítnout jakýkoli kód, který se pokusí použít takový přístup. Na druhou stranu vývojář opravy souhlasil s problémem a považoval jej za řešitelný.
Dalším problémem byly pokusy použít plovoucí desetinnou čárku nebo 128bitové typy, které nejsou platné pro prostředí, jako je linuxové jádro.
Možná nerozumíte důsledkům, kdy se to může stát, takže možná
je menší problém, než si myslím, ale zásadně
Myslím, že pokud jakékoli mapování Rustu může způsobit paniku, je to jednoduše
_ zásadně_ nepřijatelné.Mapování poruch v ne-jádrovém řadiči nebo kódu, a to je pro
Definice, nový Rust kód, nikdy NIKDY nezpůsobí
platně panikařit. Totéž platí pro «oh, v některých případech jsem se o použití nezkoušel
128bitová celá čísla nebo s plovoucí desetinnou čárkou '.Takže pokud kompilátor Rust způsobí skrytá přiřazení, která nemohou být
detekovat a vrátit se jako chyby, pak vážně věřím, že to všechno
přístup by měl být zcela NAK'ed a infrastruktura Rust,
na úrovni kompilátoru nebo v obálkách jádra potřebujete více
práce
Ukázalo se, že to byl vážnější problém., protože v tuto chvíli Rustova centrální knihovna je nedělitelná a představuje velkou skvrnu; neexistuje způsob, jak požadovat pouze některé funkce, čímž se vyhnete použití jedné nebo jiné problematické funkce.
Řešení tohoto problému může vyžadovat změny kompilátoru a knihovny rezu, ačkoli tým dosud nemá strategii, jak implementovat modularitu pro jazykové knihovny.
Navíc, Torvalds poukázal na to, že poskytnutý příklad řadiče je k ničemu a doporučil připojit jako příklad ovladač, který řeší jeden ze skutečných problémů.
Před tímto Google oznámil svou účast v iniciativě propagující podporu Rust v linuxovém jádře y za předpokladu, technické aspekty proveditelnosti Rustu v boji proti problémům, které vznikají z chyb při práci s pamětí.
Google si myslí, že Rust je připraven připojit se k C jako vývojový jazyk Linuxové komponenty jádra. Článek také poskytuje příklady použití jazyka Rust k vývoji ovladačů jádra v kontextu jeho použití na platformě Android (Rust je uznáván jako oficiálně podporovaný jazyk pro vývoj systému Android).
Je třeba poznamenat, že Google připravil počáteční prototyp řadiče napsaný v Rustu pro meziprocesní komunikační mechanismus Binder, který umožní podrobné srovnání výkonu a zabezpečení implementací Binder v C a Rust.
Ve své současné podobě ještě práce nebyla dokončena, ale pro téměř všechny základní abstrakce funkčnosti jádra, které Binder potřebuje, byly vrstvy připraveny použít tyto abstrakce v Rustově kódu.
Nakonec, pokud se o tom chcete dozvědět více, můžete zkontrolovat podrobnosti Na následujícím odkazu.
Všechny jejich kritiky jsou platné, vzhledem k tomu, že Rust je nový jazyk, který pracuje s jiným paradigmatem než jazyk C, je pochopitelné znepokojení nad jakýmikoli podrobnostmi v knihovnách nebo v samotném kompilátoru, kde, i když je kód platný, způsobuje jádro rozbít, jak je implementováno a postaveno. To je důvod, proč návrhy, jako je schopnost modulovat knihovnu tak, aby volala, a udržovat aktivní pouze ty funkce, které program (nebo v tomto případě jakýkoli řadič) potřebují, fungují správně. Rovněž není nerozumné to, o co žádáte, že vám přináší skutečný prototypový řadič, který dobře zvládne aktuální problém (nebo alespoň provede stejnou práci jako stávající v jádře a pracuje bez paniky).
Čas od času se vracím ke čtení článků o Linux Addicts, ale zoufalství mi trvá jen velmi málo, když vidím, že navzdory velmi dobrému obsahu je konečný výsledek zničen strašlivým hláskováním.
Bude pravopis a gramatika tak obtížné?
Škoda!
Hlavu vzhůru!