Panašu, kad šie metai nebus „Linux“ metai, nes nors paskutinį praėjusių metų ketvirtį viskas atrodė taip, kaip „Linux“ ir staliniai kompiuteriai pakils 2025 m., ne visada viskas yra taip, kaip atrodo.
Ir tai tik kelios dienos Christoph Hellwig, iškili asmenybė prižiūrėti svarbias posistemes, tokias kaip DMA, KVM, plokščių skirstytuvas ir „PowerPC“ Linux branduolyje, aiškiai išreiškė savo atsisakymą palaikyti pataisas kurios palengvina vystymąsi valdiklių rūdyje.
Christoph Hellwig mini, kad aptariami pleistrai Jie pasiūlė aplink DMA posistemio funkcijas įtraukti įvynioklius, kad tvarkyklės, parašytos Rust, galėtų ją naudoti. Tačiau jis teigia, kad ši strategijaa apsunkina kodo priežiūrą ir turi būti išlaikytas C sąsajų aiškumas, neleidžiant išplėsti abstrakcijų, kurios gali trukdyti integracijai su likusia branduolio dalimi.
Kalbų maišymo projekte problemos
Pasak Hellwigo, Pagrindinė problema yra Rust kodo integracija sukuria priklausomybes, kurios verčia C posistemių kūrėjus apsvarstyti jų modifikacijų poveikį Rust privalomam kodui. Tai Tai reiškia, kad bet kokie konstrukcijų pakeitimai arba vidines funkcijas C gali reikėti lygiagrečiai pakeisti Rust kodą, Tai sukuria scenarijų, kurį sunku išlaikyti ilgą laiką.
Norėdami išvengti šios situacijos, Hellwig Rekomenduojama, kad valdikliai iš Rust galėtų tiesiogiai pasiekti į savąją DMA API C versijoje, o ne naudoti papildomus įvyniojimus, kurie, jų nuomone, pakenktų branduolio priežiūrai.
Savo ruožtu Pleistrus pasiūlę kūrėjai tvirtino, kad jie pasirūpins priežiūra Rust kodo ir šiuo tikslu suorganizavo nuorodas į konkrečią pakatalogį (rust/kernel/dma.rs). Tačiau Helwigas vetavo šiuos pasiūlymus, perspėdamas, kad jam nereikia prisiimti atsakomybės. integruoti kodą iš kitų kalbų į pagrindines posistemes.
Be to, jis griežtai pakomentavo, kad jei norite paversti branduolį į kelių kalbų mozaiką, turėtumėte pradėti nuo Rust tvarkyklių, o ne primesti šį sudėtingumą pagrindinėse srityse.
Ginčai sustiprėjo kai tokie veikėjai kaip Jasonas Gunthorpe'as, TPM, VFIO ir „Infiniband“ prižiūrėtojas iš NVIDIA dalijosi pavyzdžiais, kaip keičiasi atminties posistemės, nors tai teisinga iš C kodo perspektyvos, kilo problemų bandant kompiliuoti branduolį su Rust palaikymu. Šie incidentai parodė, kad susiejimas tarp C ir Rust gali sukelti papildomų priklausomybių, kurios apsunkina koordinuotą plėtrą.
Verta tai paminėti Diskusija neapsiribojo techniniais aspektais. Hectoras Martinas pasiūlė, kad sprendimas galėtų būti prijungti nuorodą tiesiogiai per Linusą Torvaldsą, išvengiant DMA posistemio prižiūrėtojo įsikišimo. Tačiau šis metodas gali sutrikdyti tradicinę hierarchinę branduolio kūrimo struktūrą.
Hectoras taip pat atkreipė dėmesį į elgesį, kurį laikė toksišku, net paminėjus, kad Hellwigo kritika, kuri Rustą palygino su „vėžiniu augliu“, prisidėjo prie jo nusivylimo ir galiausiai jo sprendimo pasitraukti iš ARM/Apple platformos prižiūrėtojo pagrindiniame branduolyje. Nepaisant jo atsistatydinimo, platformą ir toliau palaikys Svenas Peteris, kuris įsipareigojo ir toliau ją išlaikyti.
Savo ruožtu, Linus Torvalds prisijungė prie pokalbio, pabrėždamas, kad kūrimo procesas branduolio, nors ir netobulo, veikia ir techninės diskusijos turėtų būti sutelktos į pataisas, nebūdami veikiami išorinio spaudimo ar priekabiavimo socialiniuose tinkluose. Torvaldso požiūris turėtų būti grynai techninis, paliekant nuošalyje asmeninius ginčus.
Christoph Hellwig atsisakė įtraukti Rust wrappers į DMA posistemį išryškina įtampą tarp Linux branduolio kūrėjų. Nors kai kurie Rust laiko galingu įrankiu kuriant naujus projektus, kiti baiminasi, kad kelių kalbų integravimas gali trukdyti priežiūrai ir kodų bazės nuoseklumui.
Situacija tebėra diskusijų objektas ir gali turėti reikšmingų pasekmių „Rust“ palaikymo branduolyje ateičiai. Bet kuriuo atveju aišku, kad „Linux“ kūrėjų bendruomenė ir toliau susiduria su sudėtingais iššūkiais, kai techniniai sprendimai turi būti kruopščiai įvertinti, kad būtų užtikrintas projekto tvarumas ilgalaikėje perspektyvoje.