Kristof Hellwig, mbajtësi i nën-sistemit DMA, KVM, Slab Allocator dhe arkitekturës PowerPC në kernelin Linux, i cili në një kohë ishte pjesë e komitetit të menaxhimit teknik të organizatës Linux Foundation dhe kishte vepruar si paditës në një proces gjyqësor lidhur me GPL ndaj VMware, refuzoi të konfirmonte patch-et që lidhen me mbështetjen e zhvillimit të shoferëve në gjuhën Rust. Patch-et e propozuara shtonin blloqe mbi disa funksione të nën-sistemit DMA, duke lejuar përdorimin e DMA në shoferët në gjuhën Rust.
Si arsye për refuzimin u përmend kompliksimi i përditësimit të kodit për shkak të mbështetjes në gjuhë të tjera dhe dëshira për të ruajtur ndërfaqet e programimit për DMA në një formë të lexueshme në gjuhën C, pa i mbivendosur ato me mbështetje të paqartë. Christoph sugjeroi që të adresohet direkt në API-në origjinale C të DMA në çdo driver në gjuhën Rust, për të mos krijuar abstraksione të tjera nga të cilat do të varëseshin mbajtësit e bërthamës.
Zhvilluesit e patch-eve treguan se do të marrin përsipër gjithë punën e mirëmbajtjes së kodit në Rust, janë të gatshëm të mbajnë patch-et përkatëse dhe kanë hequr blloqet në një nënkatelog të veçantë (rust/kernel/dma.rs). Në përgjigje, Kristof vendosi një veto ("Nacked-by") ndaj pranimit të patch-eve që lidhen me Rust dhe tha se nuk i duhej një mirëmbajtës tjetër. Kristof deklaroi se nëse zhvilluesit e blloqeve dëshirojnë të arrijnë pamundësinë e mirëmbajtjes së Linux-it për shkak të përzierjes së disa gjuhëve në një bazë kodike, ata duhet ta bëjnë këtë në shoferin e tyre, jo ta përhapin këtë tumor në nën-sistemet kryesore të kernelit.
Megjithatë, Kristof sqaroi se nuk ka asgjë kundër gjuhës Rust dhe e konsideron atë si një nga gjuhët më të mira të reja, por është kundër përzierjes së kodit në gjuhë të ndryshme. Sipas Kristofit, ai është për krijimin e projekteve të reja në Rust, por është kundër përzierjes së Rust në bazat e mëdha të kodit në C, pasi kjo përzierje ndikon shumë në lehtësinë e mirëmbajtjes së kernelit si një projekt të integruar.
Thelbi i problemeve tĂ« mirĂ«mbajtjes Ă«shtĂ« se blloqet Rust vunĂ« mirĂ«mbajtĂ«sit nĂ« varĂ«si nga kodi nĂ« gjuhĂ«n Rust. NĂ« pamje tĂ« parĂ«, duket se blloqet janĂ« thjesht shtresa mbi strukturat dhe funksionet C, tĂ« cilat nuk ndikojnĂ« fare nĂ« zhvillimin dhe mirĂ«mbajtjen e kodit nĂ« C. Por kjo nuk Ă«shtĂ« e vĂ«rtetĂ«. Me praninĂ« e kĂ«tyre blloqeve, zhvilluesit e nĂ«n-sistemeve tĂ« shkruara nĂ« C duhet tĂ« marrin parasysh ndikimin e ndryshimeve tĂ« tyre nĂ« vazhdimĂ«sinĂ« e funksionimit tĂ« blloqeve. Ădo ndryshim nĂ« strukturat e dhĂ«nave ose funksionet e brendshme nĂ« C mund tĂ« sjellĂ« nevojĂ«n pĂ«r ndryshimin e kodit tĂ« blloqeve, prandaj ndryshimet nĂ« kodin C qĂ« ndikojnĂ« nĂ« blloqe duhet tĂ« monitorohen dhe tĂ« sinkronizohen me kodin nĂ« Rust. ShumĂ« mirĂ«mbajtĂ«s nuk janĂ« tĂ« gatshĂ«m tĂ« marrin pĂ«rsipĂ«r pĂ«rgjegjĂ«sinĂ« shtesĂ« pĂ«r zgjidhjen e problemeve qĂ« ndodhin nĂ« kodin nĂ« Rust, dhe nuk kanĂ« ndĂ«rmend tĂ« kalojnĂ« kohĂ«n e tyre nĂ« monitorimin e statusit tĂ« blloqeve Rust.
Situata e komplikuar e mirëmbajtjes nuk është një teorike. Në diskutim u përfshi Jason Gunthorpe, mbajtësi i TPM, VFIO dhe Infiniband nga NVIDIA, i cili solli shembullin e refuzimit të Linus Torvalds të një kërkese pull me ndryshime në nën-sistemin e menaxhimit të memories, pasi ky ndryshim shkaktonte dështimin në përpjekjen për të ndërtuar kernelin me mbështetje për Rust. Dështimi ndodhi sepse mirëmbajtësit e kodit në Rust nuk patën bërë ndryshimet e nevojshme në gjeneratorin e blloqeve (bindgen). Kështu, ata që mirëmbanin nën-sistemin e menaxhimit të memories gjatë avancimit të ndryshimit, tërësisht korrekt nga pikëpamja e kodit C dhe kernelit në tërësi, u vunë në varësi nga kodi dytësor opsional në kernel, për të cilin ishin përgjegjës njerëz të tjerë.
Refuzimi për të pranuar kodin e blloqeve mbi thirrjet DMA vendosi zhvilluesit e projektit Rust for Linux në një situatë të paqartë, pasi pa këto blloqe, zhvillimi i shoferëve të plota në gjuhën Rust do të jetë i vështirë. Hector Martin, mbajtësi i kodit për mbështetje të ARM-chip-ëve të Apple dhe lider i projektit Ashai Linux, si një alternativë për zgjidhjen e konfliktit propozoi të arrinte miratimin e blloqeve drejtpërdrejt përmes Linus Torvalds, duke anashkaluar mirëmbajtësin e nën-sistemit DMA. Nëse Linus pranon një shkelje të tillë të subordinates dhe praktikës ekzistuese, kjo mund të çojë në një krizë të menaxhimit të zhvillimit të kernelit, dhe nëse refuzon, do të ndalojë avancimin e Rust në kernel.
Si një alternativë, Hector përmendi angazhimin e Kristofit për shkeljen e kodit të sjelljes për shkak të një komenti në të cilin Kristof e krahasoi Rust me një tumor kancerogjen. Për më tepër, Hector shkroi se ishte lodhur nga të gjitha procedurat burokratike, nuk ishte i gatshëm të besonte thjesht proceset ekzistuese dhe aludoi për angazhimin e rrjeteve sociale. Dave Airlie, mbajtësi i nën-sistemit DRM, këshilloi të mos e teprojnë konfliktin dhe të kuptojnë se sjellja toksike është e papranueshme nga të dyja palët, pavarësisht nëse anëtari i diskutimit është i drejtë apo jo.
Pjesa e diskutimit u bashkua nga Linus Torvalds, i cili theksoi se problemi mund tĂ« jetĂ« te Hectori dhe vetĂ«besimi i tij se diçka ka mĂ« shumĂ« njohuri se tĂ« tjerĂ«t, dhe jo te procesi aktual i zhvillimit tĂ« kernels, i cili funksionon. Procesi i zhvillimit tĂ« kernels ka probleme, por kjo Ă«shtĂ« njĂ« realitet i jetĂ«s - nuk ka asgjĂ« tĂ« pĂ«rsosur nĂ« jetĂ«. PĂ«rpjekjet pĂ«r pĂ«rjashtim pĂ«rmes mediave sociale janĂ« ato qĂ« e largojnĂ« Linus nga tĂ« pasurit ndonjĂ« lidhje me qasjen e Hectorit. ĂfarĂ« ka rĂ«ndĂ«si pĂ«r Linus janĂ« diskutimet teknike dhe patch-et, e jo ndjesia e presionit pĂ«rmes mediave sociale.
Në përgjigje, Hectori dërgoi një kërkesë për të hequr emrin e tij nga lista e mbështetjes për platformën ARM/APPLE, pasi humbi besimin në procesin e përdorur në kernel dhe qasjen e menaxhimit të komunitetit. Ai gjithashtu deklaroi se zhvillimi i platformës ARM/Apple do të vazhdojë jashtë kernel-it kryesor të Linux. Në kernel ka ende një mirëmbajtës tjetër për platformën ARM/Apple - Sven Peter, i cili ka ndërmend të vazhdojë mbështetje për platformën në kernel.
Burimi: opennet.ru
