Zdá se, že letošní rok nebude rokem Linuxu, protože i když poslední čtvrtletí loňského roku vše vypadalo, že Linux a desktopy se rozjedou v roce 2025, ne vždy je vše tak, jak se zdá.
A teprve před pár dny Christoph Hellwig, prominentní osobnost v údržbě kritických subsystémů, jako jsou DMA, KVM, Slab Allocator a PowerPC v linuxovém jádře , jasně vyjádřil své odmítnutí podpory záplat , které usnadňují vývoj ovladačů v Rustu.
Christoph Hellwig zmiňuje, že dané záplaty navrhovaly zahrnutí obalů kolem funkcí subsystému DMA, aby ovladače napsané v Rustu mohly tento subsystém používat. Tvrdí však, že tato strategie komplikuje údržbu kódu a že by měla být zachována srozumitelnost rozhraní jazyka C a vyhnout se rozšiřování abstrakcí, které by mohly bránit integraci se zbytkem jádra.
Problémy míchání jazyků v projektu
Podle Hellwiga spočívá hlavní problém v tom, že integrace kódu v Rustu vytváří závislosti, které nutí vývojáře subsystému C zvažovat dopad jejich úprav na linkovací kód v Rustu. To znamená, že jakákoli úprava interních struktur nebo funkcí v C by mohla vyžadovat paralelní změny v kódu v Rustu, což by vytvořilo scénář, který je dlouhodobě obtížné udržet.
Aby se této situaci předešlo, Hellwig doporučil, aby ovladače v Rustu přistupovaly k nativnímu DMA API v jazyce C přímo, místo aby se uchylovaly k dalším wrapperům, které by podle jeho názoru ohrozily udržovatelnost jádra.
Vývojáři , kteří navrhli záplaty, argumentovali, že zachovají kód Rustu, a proto uspořádali odkazy do speciálního podadresáře (rust/kernel/dma.rs). Hellwig však tyto návrhy vetoval s varováním, že nemusí převzít odpovědnost za integraci kódu z jiných jazyků do základních subsystémů.
Kromě toho důrazně poznamenal, že pokud chcete transformovat jádro do mozaiky více jazyků, měli byste začít s ovladači Rust namísto vnucování této složitosti v základních oblastech.
Kontroverze se vyostřila, když osobnosti jako Jason Gunthorpe, správce TPM, VFIO a Infiniband ve společnosti NVIDIA, sdílely příklady toho, jak změny paměťových subsystémů, ačkoli správné z pohledu kódu C, způsobily problémy při pokusu o kompilaci jádra s podporou Rustu. Tyto incidenty ukázaly, že propojení mezi C a Rustem může zavést další závislosti, které brání koordinovanému vývoji.
Za zmínku stojí, že diskuse se neomezila pouze na technické aspekty. Héctor Martín navrhl, že řešením by mohlo být přijetí propojení přímo přes Linuse Torvaldse, čímž by se obešel správce subsystému DMA. Tento přístup by však mohl narušit tradiční hierarchickou strukturu vývoje jádra.
Hector také poukázal na chování, které považoval za toxické, a dokonce zmínil, že Hellwigova kritika, v níž přirovnal Rusta k „rakovinnému nádoru“, přispěla k jeho frustraci a nakonec k jeho rozhodnutí odstoupit z funkce správce platformy ARM/Apple v hlavním jádře. Navzdory jeho rezignaci bude platforma i nadále podporována Svenem Peterem, který se zavázal k její údržbě.
Do diskuse se zapojil Linus Torvalds a zdůraznil, že proces vývoje jádra , ačkoli je nedokonalý, funguje a že technické diskuse by se měly zaměřit na záplaty , aniž by byly ovlivňovány vnějším tlakem nebo obtěžováním na sociálních sítích. Podle Torvaldse by se pozornost měla zaměřit čistě na technické záležitosti a osobní spory by měly být ponechány stranou.
Odmítnutí Christopha Hellwiga začlenit obaly Rust do subsystému DMA zdůrazňuje napětí mezi vývojáři linuxového jádra. Zatímco někteří vidí Rust jako výkonný nástroj pro vytváření nových projektů, jiní se obávají, že integrace více jazyků by mohla bránit udržovatelnosti a konzistenci kódové základny.
Situace zůstává předmětem debaty a mohla by mít významné důsledky pro budoucnost podpory Rustu v jádře. V každém případě je jasné, že komunita vývojářů Linuxu i nadále čelí složitým výzvám, kde je nutné pečlivě zvažovat technická rozhodnutí, aby byla zajištěna dlouhodobá udržitelnost projektu.