[NEW] Search for a job anonymously — check the details
Close
Christoph Hellwig odszedł z roli maintenera DMA Mapping i ConfigFS po forsowaniu Rust

Christoph Hellwig odszedł z roli maintenera DMA Mapping i ConfigFS po forsowaniu Rust

Christoph Hellwig ustąpił ze stanowiska maintenera podsystemów dma-mapping i configfs. Jego odejście ograniczyło się do wysłania zgłoszenia o usunięcie z listy maintenerów i przekazania zarządzania pozostałym opiekunom. W podsystemie dma-mapping opiekę przejął Marek Szyprowski z Samsunga, natomiast w configfs – Joel Becker z Oracle.

Hellwig nadal pozostaje maintenerem podsystemów NVM Express, vmalloc i FreeVXFS. W przeszłości zasiadał w Technical Advisory Board Linux Foundation oraz brał udział w rozwoju podsystemów XFS, KVM, Trace events, SCSI i Slab Allocator, a także zajmował się utrzymaniem architektury PowerPC w jądrze Linux. Dodatkowo był powodem w procesie sądowym przeciwko VMware dotyczącym naruszenia licencji GPL.

Odejście Hellwiga a Rust w jądrze Linux

Decyzja o rezygnacji z roli maintenera dma-mapping i configfs wynika z oświadczenia Linusa Torvaldsa o zamiarze akceptowania w jądrze Linux wiązań w Rust niezależnie od zgody maintenerów podsystemów, których te wiązania dotyczą. W styczniu Hellwig stanowczo odmówił przyjęcia do jądra Rust-wiązań dla funkcji DMA, co doprowadziło do konfliktu, w wyniku którego z zespołu jądra odeszli maintenerzy podsystemów Nouveau i ARM/Apple.

24 lutego programiści projektu Rust for Linux zaproponowali patch dodający warstwę abstrakcji w configfs, podsystemie nadzorowanym przez Hellwiga. Nie wziął on udziału w dyskusji na temat nowej implementacji w Rust, a kilka dni później usunął siebie z listy maintenerów dma-mapping i configfs.

Krytyka Rust w jądrze Linux

Hellwig uważa, że stosowanie wielu języków programowania w tak złożonym projekcie jak jądro Linux jest nieakceptowalne. Według niego mieszane codebase’y komplikują pracę maintenerów, ponieważ uzależniają ich od kodu w innym języku. W szczególności obecność wiązań w Rust wymaga od twórców podsystemów napisanych w C uwzględniania ich wpływu na poprawność działania warstwy Rust. Każda zmiana w strukturach danych czy funkcjach wewnętrznych w C może wymagać modyfikacji kodu Rust-wiązań, co oznacza konieczność synchronizacji i dodatkowych testów.

W praktyce już doszło do sytuacji, w której pull request dotyczący systemu zarządzania pamięcią został odrzucony, ponieważ jego implementacja powodowała błąd podczas budowania jądra z włączoną obsługą Rust. Problem wynikał z desynchronizacji z kodem narzędzia bindgen, używanego do generowania Rust-wiązań. W efekcie maintenerzy podsystemu zarządzania pamięcią, wprowadzając poprawnie działające zmiany w kodzie C, musieli brać pod uwagę opcjonalny i zewnętrzny kod w Rust, za który odpowiadała inna grupa deweloperów.

Stanowisko Linusa Torvaldsa

Linus Torvalds nie zgodził się z Hellwigiem, twierdząc, że nie miał on uprawnień do blokowania akceptacji Rust-wiązań dla podsystemu DMA, ponieważ ten kod nie dotyka bezpośrednio dma-mapping i znajduje się w osobnym katalogu, zarządzanym przez innego maintenera.

Torvalds porównał działania Hellwiga do próby kontrolowania sposobu użycia podsystemu DMA, mimo że maintenerzy odpowiadają jedynie za swój kod, a nie za to, kto i jak go wykorzystuje. Zasugerował, że jeśli zmiany w kodzie podstawowych podsystemów powodują problemy w sterownikach, to nie jest to powód do blokowania nowych sterowników, a podobne zasady powinny dotyczyć Rust-wiązań w jądrze Linux.

Avatar
Feb 6, 2024
Snap redukuje 10 % swoich pracowników
Snap planuje zwolnić około 10 % swoich pracowników, ponieważ firma nadal boryka się ze spadkami na rynku reklamy cyfrowej.
Aug 10, 2023
Kevuru Games otworzyło biuro w Warszawie
Warszawskie biuro Kevuru Games ma na celu rozszerzenie obecności na globalnym rynku tworzenia gier, stworzenie centrum sprzedaży dla europejskich klientów oraz miejsca pracy dla pracowników za granicą.
Jan 20, 2023
Google zwalnia 12 000 pracowników
Google powołał się na „inną rzeczywistość gospodarczą” i szybki rozwój firmy w ciągu ostatnich dwóch lat.

This site uses cookies to offer you a better browsing experience.

Find out more on how we use cookies and how to change cookie preferences in our Cookies Policy.

Customize
Save Accept all cookies