Näyttää siltä, että tämä vuosi ei ole Linuxin vuosi, sillä vaikka viime vuoden viimeisellä neljänneksellä kaikki näytti siltä, että Linux ja pöytäkoneet nousevat vauhtiin vuonna 2025, asiat eivät aina ole sitä miltä ne näyttävät.
Ja vain muutama päivä sitten Christoph Hellwig, merkittävä hahmo kriittisten alijärjestelmien, kuten DMA:n, KVM:n, Slab Allocatorin ja PowerPC:n, ylläpidossa Linux-ytimessä , teki selväksi, ettei hän hyväksy Rust-ajureiden kehittämistä helpottavia korjauspäivityksiä .
Christoph Hellwig mainitsee, että kyseiset korjauspäivitykset ehdottivat DMA-alijärjestelmän funktioiden ympärille kääreiden sisällyttämistä, jotta Rustilla kirjoitetut ajurit voisivat käyttää sitä. Hän kuitenkin väittää, että tämä strategia vaikeuttaa koodin ylläpitoa ja että C-rajapintojen selkeys tulisi säilyttää välttäen abstraktioiden laajentamista, jotka voisivat haitata integrointia muun ytimen kanssa.
Kielten sekoittamisen ongelmat projektissa
Hellwigin mukaan suurin ongelma on se, että Rust-koodin integrointi luo riippuvuuksia, jotka pakottavat C-alijärjestelmän kehittäjät pohtimaan muutostensa vaikutusta Rust-linkityskoodiin. Tämä tarkoittaa, että kaikki sisäisten C-rakenteiden tai -funktioiden muutokset voivat vaatia rinnakkaisia muutoksia Rust-koodiin, mikä luo pitkällä aikavälillä vaikeasti ylläpidettävän tilanteen.
Tämän tilanteen välttämiseksi Hellwig suositteli, että Rustin ajurit käyttäisivät suoraan C:n natiivia DMA-rajapintaa sen sijaan, että turvautuisivat lisäkääreisiin, jotka hänen mielestään vaarantaisivat ytimen ylläpidettävyyden.
Korjauksia ehdottaneet kehittäjät väittivät säilyttävänsä Rust-koodin ja olivat tätä varten järjestäneet linkit tiettyyn alihakemistoon (rust/kernel/dma.rs). Hellwig kuitenkin esti nämä ehdotukset varoittaen, ettei hänen tarvitse ottaa vastuuta muiden kielten koodin integroinnista ydinjärjestelmiin.
Lisäksi hän kommentoi voimakkaasti, että jos haluat muuttaa ytimen useiden kielten mosaiikiksi, sinun tulee aloittaa Rustin ajureista sen sijaan, että pakottaisit tämän monimutkaisuuden perusalueisiin.
Kiista kärjistyi, kun NVIDIAn TPM:n, VFIOn ja Infinibandin ylläpitäjä Jason Gunthorpe jakoi esimerkkejä siitä, miten muistialijärjestelmien muutokset, vaikka ne olivatkin C-koodin näkökulmasta oikeita, aiheuttivat ongelmia yritettäessä kääntää ydintä Rust-tuella. Nämä tapaukset osoittivat, että C:n ja Rustin väliset yhteydet voivat tuoda mukanaan lisää riippuvuuksia, jotka haittaavat koordinoitua kehitystä.
On syytä mainita, että keskustelu ei rajoittunut teknisiin näkökohtiin. Héctor Martín ehdotti, että ratkaisu voisi olla linkin käyttöönotto suoraan Linus Torvaldsin kautta, ohittaen DMA-alijärjestelmän ylläpitäjän. Tämä lähestymistapa voisi kuitenkin häiritä ytimen kehityksen perinteistä hierarkkista rakennetta.
Hector viittasi myös myrkyllisiksi katsomiinsa käyttäytymismalleihin ja mainitsi jopa, että Hellwigin kritiikki, jossa hän vertasi Rustia "syöpäkasvaimeen", oli osaltaan vaikuttanut hänen turhautumiseensa ja lopulta päätökseensä luopua ARM/Apple-alustan ylläpitäjän tehtävästä pääytimessä. Eroamisestaan huolimatta Sven Peter jatkaa alustan tukemista ja on sitoutunut jatkamaan sen ylläpitoa.
Linus Torvalds liittyi keskusteluun ja korosti, että ytimen kehitysprosessi , vaikka se onkin epätäydellinen, toimii ja että teknisten keskustelujen tulisi keskittyä korjauksiin antamatta ulkoisten paineiden tai sosiaalisen median häirinnän vaikuttaa niihin. Torvaldsin mielestä keskittymisen tulisi olla puhtaasti teknistä, ja henkilökohtaiset kiistat tulisi jättää syrjään.
Christoph Hellwigin kieltäytyminen sisällyttämästä Rust-kääreitä DMA-alijärjestelmään korostaa jännitteitä Linux-ytimen kehittäjien välillä. Vaikka jotkut näkevät Rustin tehokkaana työkaluna uusien projektien luomiseen, toiset pelkäävät, että useiden kielten integrointi voi haitata ylläpidettävyyttä ja koodikannan johdonmukaisuutta.
Tilanne on edelleen keskustelunaihe ja sillä voi olla merkittäviä vaikutuksia Rust-tuen tulevaisuuteen ytimessä. Joka tapauksessa on selvää, että Linux-kehitysyhteisö kohtaa edelleen monimutkaisia haasteita, joissa teknisiä päätöksiä on harkittava huolellisesti projektin pitkän aikavälin kestävyyden varmistamiseksi.