Rusti tõukejõu kriis peamiselt hirmude tõttu, mis on seotud hoolduse keerukuse suurenemisega.

Christoph Hellwig, Linuxi tuuma DMA, KVM, Slab Allocator ja PowerPC arhitektuuri alamsüsteemi hooldaja, kes oli kunagi Linux Foundationi juhtkomitee liige ning esitas hagi GPL-i kohtuvaidluses VMware vastu, on keeldunud kinnitamast Rusti keeles draiverite arendamist toetavaid patše. Pakutud patšid lisavad DMA alamsüsteemi mitmele funktsioonile keeltekäitlemised, mis võimaldavad kasutada DMA-d Rusti keeles draiverites.

Keeldumise põhjuseks on koodi hoolduse keerukuse suurenemine teiste keelte ümbertegemiste olemasolu tõttu ja soov säilitada DMA programmiliidesed lugemisõiguses C keeles, ilma et neid hajutataks mõistetamatute ümbertegemistega. Christoph soovitas iga Rusti keeles draiveri puhul otse pöörduda DMA algse C API poole, et mitte luua täiendavaid abstraktsioone, millest tuuma hooldajad sõltuma peaksid.

Patšide arendajad märkisid, et nad võtavad endale kogu Rust-koodi hooldamise töö, on valmis neid patši ise hooldama ning on eraldanud sidumist eraldi alamkausta (rust/kernel/dma.rs). Vastuseks keelas Christoph seotud Rusti patšide vastuvõtmise ja märkis, et tal ei ole vaja veel ühte hooldajat. Christoph teatas, et kui sidumisarendajad soovivad saavutada Linuxi hooldamise võimatust, segades mitut keelt ühte koodibaasi, peaksid nad seda tegema oma draiveris, mitte levitama seda vähki põhialam süsteemidele.

Sellega seoses täpsustas Christoph, et tal ei ole midagi Rusti keele vastu ning peab seda üheks parimaks uuemaks keelest, kuid ta on vastu erinevate keelte koodi segamisele. Christoph ütles, et toetab Rustil põhinevate uute projektide loomist, kuid on vastu Rusti segamisele suurtes C keele koodibaasides, kuna see segamine vähendab oluliselt tuuma hooldatavust kui integreeritud projekti.

Probleemid hooldusega on seotud sellega, et Rusti ühendused muudavad hooldajaid sõltuvaks Rusti keeles olevast koodist. Esmapilgul tundub, et ühendused on lihtsalt C-struktuuride ja -funktsioonide pealisehitus, mis ei mõjuta C keeles koodi arendamist ja hooldust. Kuid see ei ole tõsi. Selliste ühenduste olemasolu korral peavad C keeles kirjutatud alamsüsteemide arendajad arvestama nende muutuste mõjudega, et tagada ühenduste jätkuv toimimine. Iga andmestruktuuri või C keeles olevate sisefunktsioonide muudatus võib tähendada, et tuleb muuta ühenduse koodi, seega tuleb C keeles toimuvad muudatused, mis mõjutavad ühendusi, jälgida ja kooskõlastada Rusti koodiga. Paljud hooldajad ei ole valmis võtma endale täiendavat vastutust Rusti koodis tekkivate probleemide parandamise eest ja nad ei kavatse oma aega kulutada Rusti ühenduste seisundi jälgimisele.

Sellel teemal on olukord tõeliselt keeruline. Arutellu on kaasatud Jason Gunthorpe, NVIDIA TPM, VFIO ja Infinibandi haldaja, kes tõi näiteks Linus Torvaldsi poolt pull-päringu tagasilükkamise, mis puudutas mäluhaldussüsteemi muudatusi. See muudatus põhjustas tõrke, kuna Rusti toega tuuma kompileerimise proovimisel esines viga. Tõrge tekkis seetõttu, et Rusti koodi hooldajad ei lisanud vajalikku muutust sidumisgeneratorisse (bindgen). Seega, kuigi muudatus oli C keelega ja tuuma seisukohalt täiesti korrektne, sõltusid mäluhaldussüsteemi hooldajad tuuma alternatiivsest koodist, mille eest vastutavad teised inimesed.

DMA-kutsu ümbritseva koodi aktsepteerimise keeld on viinud Rust for Linux projekti arendajad ummikseisu, kuna ilma selliste ümbrikuta on Rusti keeles täisfunktsionaalsete draiverite arendamine keeruline. Hector Martin, Apple'i ARM-kiipide toe koodi peamine hooldaja ja Ashai Linuxi projekti juht, pakkus konfliktide lahendamiseks välja võimaluse, et püüda ümbrikute vastuvõtmist otse Linus Torvaldsi kaudu, mööda minnes DMA alam süsteemi hooldajast. Kui Linus nõustub sellise alluvuse ja kehtivate praktikate rikkumisega, võib see viia tuuma arenduse juhtimiskriisini, kuid kui ta keelduks, peataks see Rusti edendamise tuumas.

Näiteks mainis Héctor, et ta soovib Kristof'i vastutusele võtta käitumisreeglite rikkumise eest, kuna Kristof võrdsustas Rusti vähiga. Lisaks kirjutas Héctor, et on väsinud kõigist bürokraatlikest takistustest, ei ole valmis lihtsalt usaldama kehtestatud protsesse ja vihjas sotsiaalmeedia kaasamisele. Dave Airlie, DRM-alamüsteemi hooldaja, soovitas mitte konflikti paisutada ja mõista, et toksiline käitumine ei ole kummaltki poolt lubatav, olenemata diskussiooni osalejate õigusest või valeolekust.

Arutelusse sekkus Linus Torvalds, kes märkis, et probleem võib olla Héctoris endas ja tema üleolekus, et ta teab paremini kui teised, mitte praeguses tuumaarenduse protsessis, mis töötab. Tuumaarenduse protsessil on probleeme, kuid see on elu reaalsus — mitte miski ei ole ideaalne. Sotsiaalmeedia kaudu kiusamine on see, mis paneb Linuse kahtlema Héctori lähenemisviisis. Linusele on olulised tehnilised arutelud ja plaastrid, mitte surve avaldamine sotsiaalmeedia kaudu.

Gektor saatis palve eemaldada end ARM/APPLE platvormi toetajate hulgast, kuna ta kaotas usu arendustsükli metoodikasse ja kogukonna juhtimise lähenemisse. Ta teatas samuti, et ARM/Apple platvormi arendust jätkatakse väljaspool Linuxi põhijada. ARM/Apple platvormil on põhijadas veel üks hooldaja — Sven Peter, kes kavatseb jätkata platvormi toetamisega põhijadas.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster