Rust nebol vyňatý z kritiky Linusa Torvaldsa

Pred pár týždňami správy o niektoré implementácie, ktoré boli vykonané v pobočka linux-next, ktorá obsahuje počiatočnú sadu komponentov vyvíjať ovládače zariadení v jazyku Rust.

Táto dokumentácia bola publikovaná osobitne o použití Rust v jadre Linuxu a príklad modulu jadra s ovládačom znakového zariadenia v jazyku Rust. Kód pridal Stephen Rothwell, správca pobočky.

Potom Linus Torvalds prešiel kontrolou implementácie patch možností nastaviť ovládače jazyka Rust v jadre Linuxu a vyjadril určitú kritiku.

Najväčšie sťažnosti spôsobili potenciál úniku „Panika zlyhania za chodu“ v nesprávnych situáciách, napríklad v situácii mimo pamäte, keď môžu zlyhať operácie dynamického prideľovania pamäte vrátane operácií jadra.

Torvalds uviedol, že takéto zameranie na jadro je zásadne neprijateľné, A ak tomuto bodu nerozumiete, môžete úplne odmietnuť akýkoľvek kód, ktorý sa snaží takýto prístup využiť. Na druhej strane vývojár opravy s problémom súhlasil a považoval ho za riešiteľný.

Ďalším problémom boli pokusy o použitie pohyblivej rádovej čiarky alebo 128 bitových typov, ktoré nie sú platné pre prostredia ako jadro Linuxu.

Možno nebudete rozumieť dôsledkom toho, kedy sa to môže stať, takže možno
je menší problém, ako si myslím, ale zásadný
Myslím si, že ak nejaké mapovanie hrdze môže spôsobiť paniku, je to jednoducho
_ zásadne_ neprijateľné.

Mapovanie zlyhaní v radiči alebo v kóde, ktorý nie je jadrom, a to je na
Definícia, všetok nový Rust kód, nikdy nemôže spôsobiť
platne panika. To isté platí pre «ach, v niektorých prípadoch som neskúšal použitie
128-bitové celé čísla alebo s pohyblivou rádovou čiarkou “.

Takže ak kompilátor Rust spôsobí skryté priradenia, ktoré nemôžu byť
zistiť a vrátiť sa ako chyby, potom som vážne presvedčený, že toto všetko
prístup by mal byť úplne NAK'ed a infraštruktúra Rust,
potrebujete buď na úrovni kompilátora, alebo v obaloch jadra
práce.

Ukázalo sa to ako vážnejší problém., pretože v tejto chvíli Rustova centrálna knižnica je nedeliteľná a predstavuje veľkú škvrnu; neexistuje spôsob, ako požadovať iba niektoré z funkcií, čím sa zabráni použitiu tej či onej problematickej funkcie.

Riešenie problému si môže vyžadovať zmeny v kompilátore hrdze a knižnici, aj keď tím ešte nemá stratégiu, ako implementovať modularitu pre jazykové knižnice.

Okrem toho, Torvalds poukázal na to, že uvedený príklad radiča je zbytočný a odporúčal pripojiť ako príklad vodič, ktorý rieši jeden zo skutočných problémov.

Pred týmto Google oznámil svoju účasť na iniciatíve zameranej na podporu podpory Rust v jadre Linuxu y poskytnuté technické aspekty uskutočniteľnosti implementácie systému Rust v boji proti problémom, ktoré vznikajú pri chybách pri práci s pamäťou.

Google si myslí, že Rust je pripravený pripojiť sa k jazyku C ako vývojový jazyk Súčasti jadra Linuxu. V článku sú uvedené aj príklady použitia jazyka Rust na vývoj ovládačov jadra v kontexte jeho použitia na platforme Android (Rust je uznávaný ako oficiálne podporovaný jazyk pre vývoj systému Android).

Treba poznamenať, že Google pripravil prvý prototyp radiča napísaný v Rustovi pre medziprocesový komunikačný mechanizmus Binder, ktorý umožní podrobné porovnanie výkonu a bezpečnosti implementácií Binder v C a Rust.

V súčasnej podobe ešte práca nie je dokončená, ale pre takmer všetky základné abstrakcie funkčnosti jadra, ktoré sú potrebné na to, aby Binder fungoval, sú vrstvy pripravené na použitie týchto abstrakcií v kóde Rust.

Na záver, ak sa o ňom chcete dozvedieť viac, môžete skontrolovať podrobnosti Na nasledujúcom odkaze.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   Miguel Rodriguez dijo

    Všetky ich kritiky sú platné, pretože Rust je nový jazyk, ktorý pracuje s odlišnou paradigmou ako jazyk C, a preto je pochopiteľné, že existujú obavy z akýchkoľvek podrobností v knižniciach alebo v samotnom kompilátore, kde, hoci je kód platný, spôsobiť rozbitie jadra, ako je implementovaný a zostavený. Preto návrhy, ako napríklad schopnosť modulárizovať volanie knižnice, a udržiavať aktívne iba tie funkcie, ktoré sú potrebné pre program (alebo v tomto prípade pre akýkoľvek radič), fungujú správne. Rovnako nie je nerozumné to, čo požadujete, pretože vám prinesú skutočný prototyp radiča, ktorý robí prácu dobre pri súčasnom probléme (alebo aspoň robí rovnakú prácu ako existujúci v jadre a pracuje bez paniky).

  2.   Smäd dijo

    Z času na čas si znova prečítam články od Linux Adictos ale trvá mi veľmi málo času na zúfalstvo, keď vidím, že napriek veľmi dobrému obsahu je konečný výsledok zničený hrozným pravopisom.
    Bude pravopis a gramatika také ťažké?
    Hanba!
    Rozveselte sa!