Vzhledem k tomu, Linus Torvalds včetně Rust v Linux Kernel verze 6.1, jazyk se postupně prosazuje a k tomuto hnutí se připojuje stále více vývojářů.
Nicméně, někteří z vývojářů linuxového jádra Zdůrazňují, že pokroky budou stále více znamenat více práce a výzev, protože ve svých komentářích naznačují, že může nastat patová situace.
Je na místě upřesnit, že nezmiňujeme, že se implementace dostává do slepé uličky, ale spíše s ohledem na připomínky různých vývojářů a jak jsme již uvedli, v současném stavu se začala rýsovat potřeba snížit tempo prací, popř. alespoň nám to naznačuje následující článek LWN.net.
A před několika týdny jsem narazil na tento článek, který se zabývá aktuálním stavem používání Rustu v Linuxu a analyzuje, zda byl experiment s tímto programovacím jazykem úspěšný.
Uvádí se, že již několik let, Rez je téma, o kterém se nepřestává diskutovat na „Kernel Maintainers Summit“ a ten konaný v roce 2023 nebyl výjimkou, protože od oficiální implementace Rust jako druhý programovací jazyk v Linuxu, Miguel Ojeda, vývojář Rust-for-Linux, zdůraznil rostoucí zájem o použití Rust pro vývoj jádra během sezení věnované tomuto tématu.
Miguel Ojeda uvádí, že projekt Rust-for-Linux zaznamenala v posledním roce výraznou dynamiku, protože se připojili inženýr na plný úvazek a student vývojář a různé společnosti se zapojily do podpory práce. Kromě toho se pracuje na integraci nástroje Coccinelle s kódem Rust. Ne všechno je však růžové, protože jednou ze současných výzev je nábor dalších kontrolorů pro vyvíjený kód.
V článkua zmiňuje, že problémy začaly být patrné v řetězci nástrojů, od pokrok kompilátoru Rust založený na GCC, známý jako gccrs, zpomalil. Na druhou stranu generátor kódu GCC pro rustc vykazuje slibný pokrok a byl sloučen s kompilátorem, což umožní rozšíření podpory Rust na architektury, které nejsou kompatibilní s LLVM.
Uvnitř jádra, v několika subsystémech dochází k pokroku, takový je případ implementace Rust of pořadač pro android který prokázal srovnatelný výkon s implementací C s minimálním množstvím nebezpečného kódu. Kromě toho se pracuje na propojení souborového systému s cílem dosáhnout podpory pouze pro čtení v Rustu, s vizí implementace zcela bezpečného souborového systému v Rustu.
Dave Airlie, správce DRM (grafického) subsystému, řekl, že pokud bude mít svůj způsob, v několika příštích verzích bude začleněn ovladač Rust DRM. Christoph Hellwig odpověděl, že Airlie je ochotná „všem udělat ze života peklo“, aby si mohla hrát se svou oblíbenou hračkou. Hellwig řekl, že sloučení Rustu přinutí ostatní, aby se vypořádali s druhým jazykem, novými nástrojovými řetězci a „obaly s podivnou sémantikou“. Dan Williams řekl, že současná situace „tak vypadá úspěch“ a že jádrová komunita se již Rustu zavázala.
Přestože mezi správci roste zájem o přijetí Rust, vznikají výzvy, protože se o tom diskutovalo potřebujete mít referenční ovladače jádra napsané v Rustu ukázat, jak lze v tomto jazyce psát ovladače. Duplikace funkcí mezi ovladači v Rustu a C však vyvolala nedůvěru mezi správci.
Diskuse o zahrnutí Rustu se ubírala různými směry, Někteří správci obhajují sloučení samostatných ovladačů Rust, jako je ovladač pojiva, aby demonstrovali svou životaschopnost, zatímco na druhé straně mince Vyjadřují obavy ze složitosti údržby jádra se dvěma programovacími jazyky.
Airlie dále řekla, že velká část Rustovy práce je v současné době uzavřena tak trochu v problému slepice a vejce. Abstrakce nelze sloučit, dokud pro ně neexistuje uživatel, ale kód, který tyto abstrakce potřebuje, je zablokován a čeká, až kód dosáhne více podsystémů. Výsledkem je, že vývojáři pracující na Rustu nosí velké množství záplat, které potřebují, aby jejich kód fungoval. Prolomení této překážky bude vyžadovat povolení vstupu některých abstrakcí bez bezprostředních uživatelů.
Navzdory výzvám komunita jádra uznává potenciál Rustu zlepšit zabezpečení a stabilitu kódu. Jakmile budou vyřešeny obavy ohledně opravitelnosti a udržovatelnosti, existuje možnost v budoucnu začlenit do Rust více široce používaných ovladačů.
Ojeda souhlasil s tím, že tento problém zpomalil pokrok, ale řekl, že se snažil netlačit na správce, aby rychle začleňovali kód. V případě networkingu museli vývojáři Rustu paradoxně požádat lidi ze sítě, aby zpomalili slučování kódu Rust.
Nakonec stojí za zmínku, že cesta k širokému přijetí Rustu na Linuxu přináší výzvy, zájem a pokrok v tomto prostoru je evidentní. Postupem času se očekává, že Rust bude hrát důležitou roli při zlepšování Linuxu.
zdroj: https://lwn.net/