Rust za Linux u nevolji, napetosti i nesuglasicama već je izašao na vidjelo 

Rust za probleme s Linuxom

Čini se da ova godina neće biti godina Linuxa, jer iako je u posljednjem kvartalu prošle godine sve izgledalo kao da će Linux i desktop računari krenuti 2025. godine, stvari nisu uvijek kako izgledaju.

I prije samo nekoliko dana, Christoph Hellwig, istaknuta ličnost u održavanju kritičnih podsistema kao što su DMA, KVM, Slab Allocator i PowerPC u Linux kernelu , jasno je stavio do znanja da odbija podržavati zakrpe koje olakšavaju razvoj drajvera u Rustu.

Christoph Hellwig spominje da su dotične zakrpe predložile uključivanje omotača oko funkcija DMA podsistema kako bi se omogućilo drajverima napisanim u Rustu da ga koriste. Međutim, on tvrdi da ova strategija komplikuje održavanje koda i da treba sačuvati jasnoću C interfejsa , izbjegavajući proširenje apstrakcija koje bi mogle ometati integraciju s ostatkom kernela.

Problemi miješanja jezika u projektu

Prema Hellwigu, glavni problem leži u činjenici da integracija Rustovog koda stvara zavisnosti koje prisiljavaju programere C podsistema da razmotre uticaj svojih modifikacija na Rust kod za povezivanje. To znači da bi svako prilagođavanje internih C struktura ili funkcija moglo zahtijevati paralelne promjene Rust koda, stvarajući scenario koji je teško održavati na duge staze.

Da bi se izbjegla ova situacija, Hellwig je preporučio da drajveri u Rustu direktno pristupaju izvornom DMA API-ju u C-u, umjesto pribjegavanja dodatnim omotačima koji bi, po njegovom mišljenju, ugrozili održavanje kernela.

Programeri koji su predložili zakrpe tvrdili su da će zadržati Rustov kod i, u tu svrhu, organizirali su linkove u posebnom poddirektoriju (rust/kernel/dma.rs). Međutim, Hellwig je stavio veto na ove prijedloge, upozoravajući da ne mora preuzeti odgovornost za integraciju koda iz drugih jezika u osnovne podsisteme.

Dodatno, snažno je prokomentarisao da ako želite da transformišete kernel u mozaik više jezika, trebalo bi da počnete sa Rustovim drajverima umesto da namećete ovu složenost u fundamentalnim oblastima.

Kontroverza se intenzivirala kada su osobe poput Jasona Gunthorpea, održavatelja TPM-a, VFIO-a i Infinibanda u NVIDIA-i, podijelile primjere kako su promjene memorijskih podsistema, iako ispravne iz perspektive C koda, uzrokovale probleme pri pokušaju kompajliranja kernela s podrškom za Rust. Ovi incidenti su pokazali da veze između C-a i Rusta mogu uvesti dodatne zavisnosti koje ometaju koordinirani razvoj.

Vrijedi spomenuti da diskusija nije bila ograničena samo na tehničke aspekte. Héctor Martín je predložio da bi rješenje moglo biti usvajanje veze direktno preko Linusa Torvaldsa, zaobilazeći održavatelja DMA podsistema. Međutim, ovaj pristup bi mogao poremetiti tradicionalnu hijerarhijsku strukturu razvoja kernela.

Hector je također ukazao na ponašanja koja je smatrao toksičnima, čak je spomenuo da je Hellwigova kritika, u kojoj je uporedio Rusta sa "kancerogenim tumorom", doprinijela njegovoj frustraciji i, na kraju, njegovoj odluci da se povuče s mjesta održavatelja ARM/Apple platforme u glavnom kernelu. Uprkos njegovoj ostavci, platformu će i dalje podržavati Sven Peter, koji se obavezao da će nastaviti njeno održavanje.

Linus Torvalds se pridružio razgovoru , naglašavajući da proces razvoja kernela , iako nesavršen, funkcioniše i da bi se tehničke diskusije trebale fokusirati na zakrpe , bez utjecaja vanjskih pritisaka ili uznemiravanja na društvenim mrežama. Za Torvaldsa , fokus bi trebao biti isključivo tehnički, ostavljajući lične sporove po strani.

Odbijanje Christopha Hellwiga da ugradi Rust omote u DMA podsistem naglašava tenzije između programera Linux kernela. Dok neki vide Rust kao moćan alat za kreiranje novih projekata, drugi strahuju da bi integracija više jezika mogla ometati održavanje i konzistentnost kodne baze.

Situacija ostaje predmet rasprave i mogla bi imati značajne implikacije na budućnost Rustove podrške u kernelu. U svakom slučaju, jasno je da se zajednica Linux programera i dalje suočava sa složenim izazovima, gdje se tehničke odluke moraju pažljivo razmotriti kako bi se osigurala dugoročna održivost projekta.


Dodaj kao preferirani izvor na Googleu