Kriza në promovimin e Rust në kernel për shkak të shqetësimeve për komplifikimin e mbështetjes

Christoph Hellwig, mirëmbajtësi i nën-sistemit DMA, KVM, Slab Allocator dhe arkitekturës PowerPC në bërthamën Linux, i cili dikur ka qenë anëtar i komitetit teknik të organizatës Linux Foundation dhe ka qenë paditës në një proces gjyqësor në lidhje me GPL kundër VMware, refuzoi të konfirmojë patch-et lidhur me mbështetje për zhvillimin e driverrave në gjuhën Rust. Patch-et e propozuara shtonin lidhje mbi disa funksione të nën-sistemit DMA, duke lejuar përdorimin e DMA në driverrat në gjuhën Rust.

Si arsye për refuzimin u përmend komplifikimi i mbështetjes së kodit në prani të lidhjeve në gjuhë të tjera dhe dëshira për të ruajtur ndërfaqet programore për DMA në një formë të lexueshme në gjuhën C, pa e shpjeguar në mënyrë të paqartë përmes lidhjeve të panjohura. Christoph sugjeroi që të drejtoheshin drejtpërdrejt në API-në origjinale C të DMA në çdo driver në gjuhën Rust, për të mos krijuar abstraksione shtesë, mbi të cilat do të detyroheshin të varen ata që mbështesin kernelin.

Zhvilluesit e patch-eve deklaruan se do të marrin përsipër të gjithë punën për mbështetje të kodit në Rust, janë të gatshëm të mbështesin këto patch-e vetë dhe e vendosën lidhjen në një nën-katalog të veçantë (rust/kernel/dma.rs). Në përgjigje, Christoph vendosi veto («Nacked-by») ndaj pranimit të patch-eve që lidhen me Rust dhe tregoi se nuk i duhej një mbështetje tjetër. Christoph deklaroi se nëse zhvilluesit e lidhjeve dëshirojnë të arrijnë papërshtatshmërinë e mbështetjes së Linux-it për shkak të përzierjes së disa gjuhëve në një bazë kodesh, ata duhet ta bëjnë këtë në driverrin e tyre dhe jo ta përhapen këtë tumor në nën-sistemat kryesore të bërthamës.

Megjithatë, Christoph sqaroi se nuk ka asgjë kundër gjuhës Rust dhe e konsideron atë një nga gjuhët më të mira të reja, por është kundër përzierjes së kodit në gjuhë të ndryshme. Sipas Christoph, 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 zvogëlon ndjeshëm lehtësinë e mbështetjes së kernelit si një projekt i integruar.

The essence of the problems with support lies in the fact that Rust bindings make maintainers dependent on the code written in Rust. At first glance, it seems that bindings are merely layers over C structures and functions, which do not affect the development and support of C code. However, this is not the case. With such bindings in place, developers of subsystems written in C must consider the impact of their changes on the continued functionality of the bindings. Any change in data structures or internal functions in C can lead to a need for changes in the bindings code, so changes affecting bindings in C code need to be monitored and synchronized with the Rust code. Many maintainers are not ready to take on the additional responsibility for fixing issues arising in Rust code and are unwilling to spend their time tracking the state of Rust bindings.

The situation with the complexity of support is not theoretical. Jason Gunthorpe, maintainer of TPM, VFIO, and Infiniband at NVIDIA, joined the discussion and provided an example where Linus Torvalds rejected a pull request with changes in the memory management subsystem, as this change led to a failure when attempting to build the kernel with Rust support enabled. The failure occurred because the maintainers of the Rust code did not add the necessary changes to the bindings generator (bindgen). Thus, the maintainers of the memory management subsystem, while advancing a change that was completely correct from the perspective of C code and the kernel as a whole, found themselves dependent on optional third-party code in the kernel, for which other people are responsible.

The refusal to accept bindings over DMA calls has left developers of the Rust for Linux project at a standstill since, without such bindings, developing full-fledged drivers in Rust will be challenging. Hector Martin, maintainer of the code for supporting Apple ARM chips and leader of the Ashai Linux project, suggested as a potential resolution to the conflict that the binding be accepted directly through Linus Torvalds, circumventing the maintainer of the DMA subsystem. If Linus agrees to such a breach of hierarchy and established practice, it could lead to a crisis in kernel development management. If he refuses, it will halt the progress of Rust into the kernel.

Si e një mundësi, Hektori përmendi tërheqjen e Kristofit në përgjegjësi për shkeljen e kodeksit të sjelljes për shkak të një komenti, në të cilin Kristofi e krahasoi Rustin me një tumor kanceroz. Për më tepër, Hektori shkroi se është lodhur nga të gjitha burokracitë, nuk është i gatshëm ta besojë thjesht procesin e vendosur dhe sugjeroi tërheqjen e mediave sociale. Dejv Eirli (Dave Airlie), mbajtësi i nënsistemit DRM, këshilloi që të mos e fryjnë konfliktin dhe të kuptojnë se comportamenti toksik nuk është i pranueshëm nga asnjëra palë, pavarësisht nëse diskutanti është i drejtë apo jo.

Linus Torvalds u përfshi në diskutim, i cili theksoi se problemi ndoshta është te vetë Hektori dhe në bindjen e tij se diçka është më e mirë se të tjerat, përveç procesit aktual të zhvillimit të bërthamës, i cili funksionon. Procesi i zhvillimit të bërthamës ka probleme, por kjo është një realitet jetësor - në jetë nuk ka asgjë të përsosur. Përpjekjet e ngacmimit përmes mediave sociale janë ajo që i heq dëshirën Linusit të ketë ndonjë të bëjë me qasjen e Hektorit. Për Linusin kanë rëndësi diskutimet teknike dhe patch-et, jo shtrimi i presionit përmes mediave sociale.

Në përgjigje, Hektori dërgoi një kërkesë për t'u larguar nga lista e mbështetësve të platformës ARM/APPLE, pasi ai kishte humbur besimin në procesin e zhvillimit që zbatohet në bërthamë dhe qasjen ndaj menaxhimit të komunitetit. Ai gjithashtu deklaroi se zhvillimi i platformës ARM/Apple do të vazhdojë jashtë bërthamës kryesore të Linuxit. Në bërthamë, platformës ARM/Apple i ka mbetur një mbajtës tjetër - Sven Peter, i cili ka për intent të vazhdojë mbështetje për platformën në bërthamë.

Burimi: opennet.ru

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster