Zdi se, da letošnje leto ne bo leto Linuxa, saj čeprav je v zadnjem četrtletju lanskega leta vse kazalo, da bodo Linux in namizni računalniki leta 2025 zaživeli, stvari niso vedno takšne, kot se zdijo.
In pred nekaj dnevi je Christoph Hellwig, pomembna osebnost pri vzdrževanju kritičnih podsistemov, kot so DMA, KVM, Slab Allocator in PowerPC v jedru Linuxa , jasno izrazil svojo zavrnitev podpore popravkom , ki olajšajo razvoj gonilnikov v Rustu.
Christoph Hellwig omenja, da so zadevni popravki predlagali vključitev ovojnic okoli funkcij podsistema DMA, da bi gonilnikom, napisanim v Rustu, omogočili njegovo uporabo. Vendar trdi, da ta strategija otežuje vzdrževanje kode in da je treba ohraniti jasnost vmesnikov C , s čimer se izognemo razširitvi abstrakcij, ki bi lahko ovirale integracijo s preostalim delom jedra.
Težave mešanja jezikov v projektu
Po Hellwigovih besedah je glavna težava v tem, da integracija kode Rust ustvarja odvisnosti, ki silijo razvijalce podsistema C, da upoštevajo vpliv svojih sprememb na kodo za povezovanje v Rustu. To pomeni, da bi lahko vsaka prilagoditev notranjih struktur ali funkcij C zahtevala vzporedne spremembe kode Rust, kar bi ustvarilo scenarij, ki ga je dolgoročno težko vzdrževati.
Da bi se tej situaciji izognili, je Hellwig priporočil, da gonilniki v Rustu dostopajo neposredno do izvornega DMA API-ja v jeziku C, namesto da bi se zatekli k dodatnim ovojnicam, ki bi po njegovem mnenju ogrozile vzdrževanje jedra.
Razvijalci , ki so predlagali popravke, so trdili, da bodo ohranili kodo Rusta in so v ta namen povezave organizirali v posebnem poddirektoriju (rust/kernel/dma.rs). Vendar je Hellwig te predloge zavrnil in opozoril, da mu ni treba prevzeti odgovornosti za integracijo kode iz drugih jezikov v osrednje podsisteme.
Poleg tega je ostro komentiral, da bi morali, če želite jedro spremeniti v mozaik več jezikov, začeti z gonilniki Rust, namesto da to kompleksnost vsiljujete temeljnim področjem.
Polemika se je zaostrila, ko so osebnosti, kot je Jason Gunthorpe, vzdrževalec TPM, VFIO in Infiniband pri NVIDIA, delile primere, kako so spremembe pomnilniških podsistemov, čeprav pravilne z vidika kode C, povzročile težave pri poskusu prevajanja jedra s podporo za Rust. Ti incidenti so pokazali, da lahko povezave med C in Rustom uvedejo dodatne odvisnosti, ki ovirajo usklajen razvoj.
Omeniti velja, da razprava ni bila omejena le na tehnične vidike. Héctor Martín je predlagal, da bi rešitev lahko bila neposredna uporaba povezave prek Linusa Torvaldsa, s čimer bi se zaobšel vzdrževalec podsistema DMA. Vendar bi ta pristop lahko porušil tradicionalno hierarhično strukturo razvoja jedra.
Hector je opozoril tudi na vedenja, ki jih je imel za strupena, in celo omenil, da je Hellwigova kritika, v kateri je Rusta primerjal z "rakavim tumorjem", prispevala k njegovi frustraciji in navsezadnje k njegovi odločitvi, da odstopi kot vzdrževalec platforme ARM/Apple v glavnem jedru. Kljub njegovemu odstopu bo platformo še naprej podpiral Sven Peter, ki se je zavezal, da bo nadaljeval z njenim vzdrževanjem.
Linus Torvalds se je pridružil pogovoru in poudaril, da proces razvoja jedra , čeprav nepopoln, deluje in da bi se morale tehnične razprave osredotočiti na popravke , ne da bi nanje vplivali zunanji pritiski ali nadlegovanje na družbenih omrežjih. Za Torvaldsa bi se moral poudarek osredotočiti zgolj na tehnične vidike, osebne spore pa pustiti ob strani.
Zavrnitev Christopha Hellwiga, da bi vključil ovoje Rust v podsistem DMA, poudarja napetosti med razvijalci jedra Linuxa. Medtem ko nekateri vidijo Rust kot močno orodje za ustvarjanje novih projektov, se drugi bojijo, da bi integracija več jezikov lahko ovirala vzdržljivost in doslednost kodne baze.
Situacija ostaja predmet razprave in bi lahko imela pomembne posledice za prihodnost podpore za Rust v jedru. Kakor koli že, jasno je, da se skupnost razvijalcev Linuxa še naprej sooča s kompleksnimi izzivi, kjer je treba tehnične odločitve skrbno pretehtati, da se zagotovi dolgoročna trajnost projekta.