Zdá sa, že tento rok nebude rokom Linuxu, keďže aj keď posledný štvrťrok minulého roka všetko vyzeralo tak, že Linux a desktopy sa rozbehnú v roku 2025, nie vždy je všetko tak, ako sa zdá.
A len pred pár dňami Christoph Hellwig, prominentná osobnosť v údržbe kritických subsystémov, ako sú DMA, KVM, Slab Allocator a PowerPC v jadre Linuxu , jasne vyjadril svoje odmietnutie podpory záplat , ktoré uľahčujú vývoj ovládačov v Ruste.
Christoph Hellwig spomína, že dané záplaty navrhovali zahrnutie obalov okolo funkcií subsystému DMA, aby umožnili ovládačom napísaným v Ruste ho používať. Argumentuje však, že táto stratégia komplikuje údržbu kódu a že by sa mala zachovať jasnosť rozhraní jazyka C , čím by sa predišlo rozšíreniu abstrakcií, ktoré by mohli brániť integrácii so zvyškom jadra.
Problémy miešania jazykov v projekte
Podľa Hellwiga spočíva hlavný problém v tom, že integrácia kódu Rust vytvára závislosti, ktoré nútia vývojárov subsystému C zvážiť vplyv ich úprav na linkovací kód Rust. To znamená, že akákoľvek úprava interných štruktúr alebo funkcií C by si mohla vyžadovať paralelné zmeny kódu Rust, čo by vytvorilo scenár, ktorý je dlhodobo ťažké udržiavať.
Aby sa predišlo tejto situácii, Hellwig odporučil, aby ovládače v Ruste pristupovali k natívnemu DMA API v jazyku C priamo, namiesto toho, aby sa uchyľovali k dodatočným obalom, ktoré by podľa jeho názoru ohrozili udržiavateľnosť jadra.
Vývojári , ktorí navrhli záplaty, argumentovali, že zachovajú kód Rust a za týmto účelom usporiadali odkazy do špeciálneho podadresára (rust/kernel/dma.rs). Hellwig však tieto návrhy vetoval s varovaním, že nemusí prevziať zodpovednosť za integráciu kódu z iných jazykov do základných subsystémov.
Okrem toho dôrazne poznamenal, že ak chcete transformovať jadro na mozaiku viacerých jazykov, mali by ste začať s ovládačmi Rust namiesto vnucovania tejto zložitosti v základných oblastiach.
Kontroverzia sa zintenzívnila, keď osobnosti ako Jason Gunthorpe, správca TPM, VFIO a Infiniband v spoločnosti NVIDIA, zdieľali príklady toho, ako zmeny v pamäťových subsystémoch, hoci správne z pohľadu kódu C, spôsobili problémy pri pokuse o kompiláciu jadra s podporou Rustu. Tieto incidenty ukázali, že prepojenia medzi jazykmi C a Rustom môžu zaviesť ďalšie závislosti, ktoré bránia koordinovanému vývoju.
Za zmienku stojí, že diskusia sa neobmedzila len na technické aspekty. Héctor Martín navrhol, že riešením by mohlo byť prijatie prepojenia priamo cez Linusa Torvaldsa, čím by sa obišiel správca subsystému DMA. Tento prístup by však mohol narušiť tradičnú hierarchickú štruktúru vývoja jadra.
Hector tiež poukázal na správanie, ktoré považoval za toxické, dokonca spomenul, že Hellwigova kritika, v ktorej prirovnal Rusta k „rakovinovému nádoru“, prispela k jeho frustrácii a v konečnom dôsledku k jeho rozhodnutiu odstúpiť z funkcie správcu platformy ARM/Apple v hlavnom jadre. Napriek jeho rezignácii bude platformu naďalej podporovať Sven Peter, ktorý sa zaviazal pokračovať v jej údržbe.
Do diskusie sa zapojil Linus Torvalds , ktorý zdôraznil, že proces vývoja jadra , hoci je nedokonalý, funguje a že technické diskusie by sa mali zamerať na záplaty bez toho, aby boli ovplyvňované vonkajším tlakom alebo obťažovaním na sociálnych sieťach. Podľa Torvalda by sa pozornosť mala sústrediť výlučne na technické záležitosti a osobné spory by sa mali nechať bokom.
Odmietnutie Christopha Hellwiga začleniť obaly Rust do subsystému DMA zdôrazňuje napätie medzi vývojármi jadra Linuxu. Zatiaľ čo niektorí vidia Rust ako výkonný nástroj na vytváranie nových projektov, iní sa obávajú, že integrácia viacerých jazykov by mohla brániť udržiavateľnosti a konzistentnosti kódovej základne.
Situácia zostáva predmetom diskusie a mohla by mať významné dôsledky pre budúcnosť podpory Rustu v jadre. V každom prípade je jasné, že komunita vývojárov Linuxu naďalej čelí zložitým výzvam, kde je potrebné starostlivo zvážiť technické rozhodnutia, aby sa zabezpečila dlhodobá udržateľnosť projektu.