Rugina pentru Linux în necazuri, tensiuni și dezacorduri au ieșit deja la iveală 

Rugina pentru probleme Linux

Se pare că anul acesta nu va fi anul Linux, deoarece, deși în ultimul trimestru al anului trecut totul arăta ca Linux și desktop-urile ar decola în 2025, lucrurile nu sunt întotdeauna așa cum par.

Și acum doar câteva zile, Christoph Hellwig, o figură proeminentă în mentenanța subsistemelor critice precum DMA, KVM, Slab Allocator și PowerPC în kernelul Linux , și-a exprimat clar respingerea față de suportul pentru patch-uri care facilitează dezvoltarea de drivere în Rust.

Christoph Hellwig menționează că patch-urile în cauză propuneau includerea de wrapper-uri în jurul funcțiilor subsistemului DMA pentru a permite driverelor scrise în Rust să îl utilizeze. Cu toate acestea, el susține că această strategie complică întreținerea codului și că claritatea interfețelor C ar trebui păstrată , evitând extinderea abstracțiunilor care ar putea împiedica integrarea cu restul kernel-ului.

Problemele amestecării limbilor într-un proiect

Conform lui Hellwig, principala problemă constă în faptul că integrarea codului Rust creează dependențe care îi obligă pe dezvoltatorii subsistemului C să ia în considerare impactul modificărilor lor asupra codului de legătură Rust. Aceasta înseamnă că orice ajustare a structurilor sau funcțiilor interne C ar putea necesita modificări paralele ale codului Rust, creând un scenariu dificil de menținut pe termen lung.

Pentru a evita această situație, Hellwig a recomandat ca driverele din Rust să acceseze direct API-ul DMA nativ din C, în loc să recurgă la wrapper-e suplimentare care, în opinia sa, ar compromite mentenabilitatea kernelului.

Dezvoltatorii care au propus patch-urile au susținut că vor menține codul Rust și, în acest scop, au organizat link-urile într-un subdirector specific (rust/kernel/dma.rs). Cu toate acestea, Hellwig a respins aceste propuneri, avertizând că nu este nevoie să își asume responsabilitatea integrării codului din alte limbaje în subsistemele principale.

În plus, el a comentat ferm că, dacă doriți să transformați nucleul într-un mozaic de mai multe limbi, ar trebui să începeți cu driverele Rust în loc să impuneți această complexitate în domenii fundamentale.

Controversa s-a intensificat atunci când personalități precum Jason Gunthorpe, responsabil cu întreținerea TPM, VFIO și Infiniband la NVIDIA, au împărtășit exemple despre cum modificările aduse subsistemelor de memorie, deși corecte din perspectiva codului C, au cauzat probleme la încercarea de compilare a kernelului cu suport Rust. Aceste incidente au demonstrat că legăturile dintre C și Rust pot introduce dependențe suplimentare care împiedică dezvoltarea coordonată.

Merită menționat faptul că discuția nu s-a limitat la aspecte tehnice. Héctor Martín a sugerat că soluția ar putea fi adoptarea legăturii direct prin Linus Torvalds, ocolind administratorul subsistemului DMA. Cu toate acestea, această abordare ar putea perturba structura ierarhică tradițională a dezvoltării kernelului.

Hector a subliniat, de asemenea, comportamente pe care le considera toxice, menționând chiar că criticile lui Hellwig, în care l-a comparat pe Rust cu o „tumoară canceroasă”, au contribuit la frustrarea sa și, în cele din urmă, la decizia sa de a renunța la funcția de mentenator al platformei ARM/Apple în kernelul principal. În ciuda demisiei sale, platforma va continua să fie susținută de Sven Peter, care s-a angajat să continue întreținerea acesteia.

Linus Torvalds s-a alăturat conversației , subliniind că procesul de dezvoltare a kernelului , deși imperfect, funcționează și că discuțiile tehnice ar trebui să se concentreze pe patch-uri , fără a fi influențate de presiuni externe sau hărțuire pe rețelele de socializare. Pentru Torvalds , accentul ar trebui să fie pur tehnic, lăsând deoparte disputele personale.

Refuzul lui Christoph Hellwig de a încorpora pachetele Rust în subsistemul DMA evidențiază tensiunile dintre dezvoltatorii de kernel Linux. În timp ce unii văd Rust ca un instrument puternic pentru crearea de noi proiecte, alții se tem că integrarea mai multor limbi ar putea împiedica întreținerea și coerența bazei de cod.

Situația rămâne un subiect de dezbatere și ar putea avea implicații semnificative pentru viitorul suportului Rust în kernel. În orice caz, ceea ce este clar este că comunitatea de dezvoltatori Linux continuă să se confrunte cu provocări complexe, unde deciziile tehnice trebuie luate în considerare cu atenție pentru a asigura sustenabilitatea pe termen lung a proiectului.


Adăugați ca sursă preferată în Google