Rust nebyl osvobozen od kritiky Linuse Torvaldse

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.


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.

  1.   Miguel Rodriguez řekl

    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).

  2.   Sete řekl

    Čas od času si znovu přečtu články od Linux Adictos Ale trvá mi jen velmi málo času, abych si zoufal, když vidím, že přestože má velmi dobrý obsah, konečný výsledek je zničen příšerným pravopisem.
    Bude pravopis a gramatika tak obtížné?
    Škoda!
    Hlavu vzhůru!