Šķiet, ka šis gads nebūs Linux gads, jo, lai arī pagājušā gada pēdējā ceturksnī viss izskatījās tā, kā Linux un stacionārie datori pacelsies 2025. gadā, ne vienmēr viss ir tā, kā izskatās.
Un tikai pirms dažām dienām Kristofs Helvigs, ievērojama persona tādu kritisku apakšsistēmu kā DMA, KVM, Slab Allocator un PowerPC uzturēšanā Linux kodolā , skaidri pauda savu noraidījumu atbalstīt ielāpus , kas atvieglo draiveru izstrādi Rust vidē.
Kristofs Helvigs piemin, ka attiecīgie ielāpi ierosināja iekļaut apvalkus ap DMA apakšsistēmas funkcijām, lai Rust valodā rakstītie draiveri varētu to izmantot. Tomēr viņš apgalvo, ka šī stratēģija sarežģī koda uzturēšanu un ka jāsaglabā C saskarņu skaidrība , izvairoties no abstrakciju paplašināšanas, kas varētu kavēt integrāciju ar pārējo kodolu.
Valodu sajaukšanas problēmas projektā
Pēc Hellviga teiktā, galvenā problēma ir tā, ka Rust koda integrācija rada atkarības, kas piespiež C apakšsistēmas izstrādātājus ņemt vērā savu modifikāciju ietekmi uz Rust saistīšanas kodu. Tas nozīmē, ka jebkura iekšējo C struktūru vai funkciju pielāgošana varētu prasīt paralēlas izmaiņas Rust kodā, radot scenāriju, kuru ilgtermiņā ir grūti uzturēt.
Lai izvairītos no šīs situācijas, Hellvigs ieteica, lai Rust draiveri piekļūtu vietējai DMA API C valodā tieši, nevis izmantotu papildu apvalkus, kas, viņaprāt, apdraudētu kodola uzturēšanas iespējas.
Izstrādātāji , kas ierosināja ielāpus, apgalvoja, ka viņi saglabās Rust kodu un šim nolūkam bija sakārtojuši saites īpašā apakšdirektorijā (rust/kernel/dma.rs). Tomēr Hellvigs uzlika veto šiem priekšlikumiem, brīdinot, ka viņam nav jāuzņemas atbildība par koda integrēšanu no citām valodām pamata apakšsistēmās.
Turklāt viņš stingri komentēja, ka, ja vēlaties pārveidot kodolu vairāku valodu mozaīkā, jums jāsāk ar Rust draiveriem, nevis jāuzliek šī sarežģītība pamata jomās.
Strīds saasinājās, kad tādas personas kā Džeisons Gantorps, TPM, VFIO un Infiniband uzturētājs NVIDIA, dalījās ar piemēriem par to, kā izmaiņas atmiņas apakšsistēmās, lai gan pareizas no C koda viedokļa, radīja problēmas, mēģinot kompilēt kodolu ar Rust atbalstu. Šie incidenti parādīja, ka saikne starp C un Rust var radīt papildu atkarības, kas kavē koordinētu izstrādi.
Vērts pieminēt, ka diskusija neaprobežojās tikai ar tehniskiem aspektiem. Hektors Martins ieteica, ka risinājums varētu būt tiešas saites ieviešana, izmantojot Linusu Torvaldu, apejot DMA apakšsistēmas uzturētāju. Tomēr šī pieeja varētu izjaukt kodola izstrādes tradicionālo hierarhisko struktūru.
Hektors arī norādīja uz uzvedību, ko viņš uzskatīja par toksisku, pat pieminot, ka Hellviga kritika, kurā viņš salīdzināja Rastu ar "vēža audzēju", ir veicinājusi viņa neapmierinātību un galu galā arī lēmumu atkāpties no ARM/Apple platformas uzturētāja amata galvenajā kodolā. Neskatoties uz viņa atkāpšanos, platformu turpinās atbalstīt Svens Pēters, kurš ir apņēmies turpināt tās uzturēšanu.
Sarunai pievienojās Linuss Torvalds , uzsverot, ka kodola izstrādes process , lai arī nepilnīgs, darbojas, un ka tehniskajām diskusijām jākoncentrējas uz ielāpiem , neļaujot sevi ietekmēt ārējam spiedienam vai aizskaršanai sociālajos medijos. Torvalds uzskata , ka uzmanība jāpievērš tikai tehniskiem jautājumiem, atstājot malā personiskus strīdus.
Kristofa Helviga atteikšanās iekļaut Rust iesaiņotājus DMA apakšsistēmā izceļ spriedzi starp Linux kodola izstrādātājiem. Lai gan daži uzskata, ka Rust ir spēcīgs instruments jaunu projektu izveidei, citi baidās, ka vairāku valodu integrēšana var kavēt apkopi un kodu bāzes konsekvenci.
Situācija joprojām ir diskusiju objekts un varētu būtiski ietekmēt Rust atbalsta nākotni kodolā. Jebkurā gadījumā ir skaidrs, ka Linux izstrādātāju kopiena joprojām saskaras ar sarežģītiem izaicinājumiem, kuros tehniski lēmumi ir rūpīgi jāapsver, lai nodrošinātu projekta ilgtermiņa ilgtspējību.