Het lijkt erop dat dit jaar niet het jaar van Linux zal worden. Hoewel het er in het laatste kwartaal van vorig jaar op leek dat Linux en desktops in 2025 een doorbraak zouden maken, is niet alles wat het lijkt.
Enkele dagen geleden maakte Christoph Hellwig, een prominent figuur in het onderhoud van kritieke subsystemen zoals DMA, KVM, Slab Allocator en PowerPC in de Linux-kernel , duidelijk dat hij geen patches wil ondersteunen die de ontwikkeling van drivers in Rust vergemakkelijken .
Christoph Hellwig merkt op dat de betreffende patches wrappers rond functies van het DMA-subsysteem voorstellen, zodat in Rust geschreven drivers er gebruik van kunnen maken. Hij betoogt echter dat deze strategie het onderhoud van de code bemoeilijkt en dat de duidelijkheid van de C-interfaces behouden moet blijven , waarbij de uitbreiding van abstracties die de integratie met de rest van de kernel zouden kunnen belemmeren, vermeden moet worden.
De problemen van het mengen van talen in een project
Volgens Hellwig ligt het grootste probleem in het feit dat de integratie van Rust-code afhankelijkheden creëert die ontwikkelaars van het C-subsysteem dwingen rekening te houden met de impact van hun wijzigingen op de Rust-linkcode. Dit betekent dat elke aanpassing aan interne C-structuren of -functies parallelle wijzigingen in de Rust-code kan vereisen, wat een situatie creëert die op de lange termijn moeilijk te onderhouden is.
Om deze situatie te voorkomen, adviseerde Hellwig dat stuurprogramma's in Rust rechtstreeks toegang zouden krijgen tot de native DMA API in C, in plaats van hun toevlucht te nemen tot extra wrappers die volgens hem de onderhoudbaarheid van de kernel in gevaar zouden brengen.
De ontwikkelaars die de patches voorstelden, voerden aan dat ze de Rust-code zouden onderhouden en hadden daartoe de links in een specifieke subdirectory geplaatst (rust/kernel/dma.rs). Hellwig verwierp deze voorstellen echter en waarschuwde dat hij niet de verantwoordelijkheid hoefde te nemen voor de integratie van code uit andere talen in de kernsystemen.
Bovendien merkte hij op dat als je de kernel wilt transformeren naar een mozaïek van meerdere talen, je het beste kunt beginnen met de drivers van Rust in plaats van deze complexiteit op te leggen aan fundamentele gebieden.
De controverse laaide op toen figuren als Jason Gunthorpe, beheerder van TPM, VFIO en Infiniband bij NVIDIA, voorbeelden deelden van hoe wijzigingen in geheugensubsystemen, hoewel correct vanuit een C-codeperspectief, problemen veroorzaakten bij het compileren van de kernel met Rust-ondersteuning. Deze incidenten toonden aan dat de koppeling tussen C en Rust extra afhankelijkheden kan introduceren die gecoördineerde ontwikkeling belemmeren.
Het is belangrijk te vermelden dat de discussie niet beperkt bleef tot technische aspecten. Héctor MartÃn suggereerde dat de oplossing zou kunnen zijn om de link rechtstreeks via Linus Torvalds te laten lopen, waarmee de beheerder van het DMA-subsysteem omzeild zou worden. Deze aanpak zou echter de traditionele hiërarchische structuur van kernelontwikkeling kunnen verstoren.
Hector wees ook op gedragingen die hij als schadelijk beschouwde, en noemde zelfs Hellwigs kritiek, waarin hij Rust vergeleek met een "kankertumor", als een teken van zijn frustratie en uiteindelijk van zijn besluit om te stoppen als beheerder van het ARM/Apple-platform in de hoofdkernel. Ondanks zijn aftreden zal het platform blijven worden ondersteund door Sven Peter, die heeft toegezegd het onderhoud ervan voort te zetten.
Linus Torvalds mengde zich in het gesprek en benadrukte dat het kernelontwikkelingsproces , hoewel imperfect, wel werkt en dat technische discussies zich moeten richten op patches , zonder beïnvloed te worden door externe druk of intimidatie op sociale media. Volgens Torvalds moet de focus puur technisch zijn en moeten persoonlijke meningsverschillen buiten beschouwing worden gelaten.
De weigering van Christoph Hellwig om Rust-wrappers in het DMA-subsysteem op te nemen, onderstreept de spanningen tussen Linux-kernelontwikkelaars. Terwijl sommigen Rust zien als een krachtig hulpmiddel voor het maken van nieuwe projecten, vrezen anderen dat de integratie van meerdere talen de onderhoudbaarheid en de consistentie van de codebase in de weg kan staan.
De situatie blijft onderwerp van discussie en zou aanzienlijke gevolgen kunnen hebben voor de toekomst van Rust-ondersteuning in de kernel. In elk geval is het duidelijk dat de Linux-ontwikkelingsgemeenschap nog steeds voor complexe uitdagingen staat, waarbij technische beslissingen zorgvuldig moeten worden overwogen om de duurzaamheid van het project op lange termijn te waarborgen.