Podpora Rust pre Linuxové jadro sa stretla s kritikou od Torvalds.

Linus Torvalds zrecenzoval patche s implementáciou možnosti vytvárania ovládačov v jazyku Rust pre jadro Linuxu a vyjadril niekoľko kritických poznámok.

Najväčšie výhrady vyvolala potenciálna možnosť prechodu do panic() v chybových situáciách, napríklad v prípade nedostatku pamäte, keď operácie dynamického pridelenia pamäte, vrátane tých v jadre, môžu skončiť chybou. Torvalds uviedol, že takýto prístup v jadre nie je principiálne prijateľný a v prípade nepochopenia tohto bodu môže úplne odmietnuť (totally NAKed) akýkoľvek kód, ktorý sa pokúsi o takýto prístup. Na druhej strane, vývojár pracujúci na patchoch súhlasil s touto problematikou a považuje ju za riešiteľnú.

Ďalším problémom sa stali pokusy o použitie výpočtov s plávajúcou desatinnou čiarkou alebo 128-bitovými typmi, čo nie je prípustné pre také prostredia, ako je jadro Linuxu. To sa ukázalo ako vážnejší problém, pretože v súčasnosti je základná (core) knižnica Rust nedeliteľná a predstavuje jeden veľký blob — nie je možné požiadať iba o niektoré z funkcií, čím sa zabráni použitiu problematickej funkčnosti. Riešenie problému môže vyžadovať zmeny v kompilátore Rust a knižnici, pričom v súčasnosti tím ešte nemá stratégiu, ako realizovať modularitu knižníc jazyka.

Okrem toho Torvalds poznamenal, že poskytnutý príklad ovládača je nepoužiteľný a odporučil priložiť ako príklad nejaký ovládač, ktorý rieši jednu z reálnych úloh.

Doplnenie: Spoločnosť Google oznámila svoju účasť na iniciatíve na podporu Rust v jadre Linux a uviedla technické aspekty vhodnosti implementácie Rust na boj s problémami spôsobenými chybami pri práci s pamäťou. Google sa domnieva, že Rust je už pripravený pripojiť sa k C ako jazyk na vývoj komponentov jadra Linux. V článku sú taktiež uvedené príklady použitia jazyka Rust na vývoj ovládačov jadra v kontexte ich použitia na platforme Android (Rust je uznaný ako oficiálne podporovaný jazyk na vývoj Androidu).

Je zaznamenané, že Google pripravil počiatočný prototyp ovládača napísaného v jazyku Rust pre mechanizmus medzioperačnej komunikácie Binder, ktorý umožní podrobné porovnanie výkonu a bezpečnosti implementácií Binder v C a Rust. V súčasnej podobe práca ešte nie je dokončená, ale takmer pre všetky základné abstrakcie funkčnosti jadra, potrebné na fungovanie Binder, sú pripravené vrstvy na využitie týchto abstrakcií v kóde v jazyku Rust.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster