V marci tohto roku na pobočke linux-next v ktorom v tom čase pracoval pre linuxové jadro 5.13, Na vývoj ovládačov zariadení v systéme Windows bola zahrnutá počiatočná sada komponentov jazyk Rust a teraz bola predložená žiadosť o zahrnutie druhého vydania opráv na pridanie podpory Rust k jadru Linuxu.
Osoba, ktorá poslala žiadosť vývojárom systému Linux, je Miguel Ojeda, autor projektu Rust-for-Linux, a o ktorom sme hovorili aj pred niekoľkými dňami, pretože bol najatý, aby prevzal zodpovednosť za projekt „Prossimo“, ktorý v podstate sa zameriava na koordináciu snáh o presun kritickej softvérovej infraštruktúry na zabezpečený kód na zabezpečenie pamäte jadra Linuxu pomocou systému Rust (ak sa chcete o projekte dozvedieť viac, môžete sa poradiť uverejnením na nižšie uvedenom odkaze.)
Žiadosť zaslaná Miguelom Ojedom je druhou aktualizovanou verziou komponentov pre vývoj ovládačov zariadení v jazyku Rust, v ktorých sú odstránené komentáre urobené počas diskusie o prvej verzii opráv a ku ktorým sa už zapojil Linus Torvalds do diskusie a navrhol zmenu logiky na spracovanie niektorých bitových operácií.
Vo vnútri výhod ktoré sú spomínané sú také bezpečná správa pamäte je v systéme Rust zaručená v čase kompilácie kontrolou referencií, sledovaním vlastníctva objektu a životnosti objektu, ako aj vyhodnotením správnosti prístupu do pamäte za behu.
Rust tiež poskytuje ochrana proti pretečeniu celých čísel, vyžaduje pred použitím povinnú inicializáciu hodnôt premenných, lepšie spracováva chyby v štandardnej knižnici, štandardne prijíma koncepciu odkazov a nemenných premenných a ponúka silné statické zápisy na minimalizáciu logických chýb.
Zo zmien, ktoré vynikajú tejto novej verzie opráv sa uvádza:
- Kód pridelenia pamäte zabraňuje možnosti generovania paniky, keď sa vyskytnú chyby, napríklad nedostatok pamäte.
- Je súčasťou balenia variant knižnice Rust alloc, v ktorej bol kód prepracovaný tak, aby manipuloval so zámkami, ale konečným cieľom je preniesť všetky potrebné funkcie jadra do hlavného vydania aloc (zmeny už boli pripravené a prenesené do štandardnej knižnice Rust).
- Namiesto nočných zostavení je teraz možné použiť beta a stabilné verzie rustc kompilátor na zostavenie jadra s povoleným Rustom. V súčasnosti sa ako referenčný kompilátor používa rustc 1.54-beta1, ale po vydaní 1.54 na konci mesiaca bude podporovaný ako referenčný kompilátor.
- Pridaná podpora pre písanie testov pomocou štandardného atribútu Rust „# [test]“ a možnosť používať doctesty na použitie vzorového kódu z dokumentácie ako testov.
- K predtým podporovaným x32_86 a ARM64 bola pridaná podpora pre architektúry ARM64 a RISCV.
Vylepšené implementácie GCC Rust (frontend GCC pre Rust) a rustc_codegen_gcc (rustc backend pre GCC), ktoré teraz prechádzajú všetkými benchmarkami. - A nová úroveň abstrakcie pre programy Rust používali mechanizmy jadra napísané v jazyku C, napríklad stromy, objekty na počítanie odkazov, vytváranie deskriptorov súborov, úloh, súborov a I / O vektorov.
- Komponenty na vývoj ovládačov vylepšili podporu pre modul „file_operations“, „modul!“ Makro, protokolovanie makier a základné ovládače (testovať a mazať).
- Aplikácia Binder podporuje odovzdávanie deskriptorov súborov a odkazov LSM.
- Funkčnejší príklad ovládača Rust, bcm2835-rng, je navrhnutý pre hardvérový generátor náhodných čísel pre dosky Raspberry Pi.
Na záver, ak máte záujem dozvedieť sa viac, môžete si prečítať podrobnosti Na nasledujúcom odkaze.