Christoph Helwig zrezygnował z pozycji głównego konserwatora DMA Mapping i ConfigFS po wymuszonej aktualizacji Rust.

Christoph Hellwig opuścił stanowisko maintenera podsystemów dma-mapping i configfs. Jego rezygnacja ograniczyła się do wysłania wniosku o usunięcie z listy maintenerów oraz informacji o przekazaniu kontroli pozostałym opiekunom. W podsystemie dma-mapping opiekę będzie kontynuował Marek Szyprowski z Samsung, natomiast w configfs – Joel Becker z Oracle.

Christoph Hellwig wciąż pozostaje w gronie maintenerów podsystemów NVM Express, vmalloc oraz FreeVXFS. W przeszłości Christoph był członkiem zarządu technicznego fundacji Linux Foundation i brał udział w rozwoju takich podsystemów jak XFS, KVM, Trace events, SCSI oraz Slab Allocator, a także zajmował się wsparciem architektury PowerPC w jądrze Linux. Ponadto Christoph był powodem postępowania sądowego przeciwko VMware w związku z naruszeniem licencji GPL.

Zakończenie wsparcia dla podsystemów dma-mapping i configfs było spowodowane oświadczeniem Linusa Torvaldsa o zamiarze włączenia do jądra wiązań w języku Rust niezależnie od zgody maintenerów podsystemów, dla których te wiązania zostały stworzone. W styczniu Christoph stanowczo odmówił przyjęcia wiązania Rust do funkcji zajmujących się DMA, co doprowadziło do konfliktu, w wyniku którego z jądra odeszli maintenerzy podsystemów Nouveau i ARM/Apple. 24 lutego programiści projektu Rust for Linux zaproponowali łatkę z warstwą abstrakcji dla FS configfs, której wsparciem zajmował się Christoph Hellwig. Christoph nie wziął udziału w dyskusji na temat nowego wiązania Rust do swojego podsystemu, a kilka dni później usunął się z listy maintenerów dma-mapping i configfs.

Christoph Hellwig uważa, że użycie kilku języków programowania w tak złożonych projektach jak jądro Linux jest niedopuszczalne. Według Christoph'a mieszane bazy kodowe utrudniają pracę maintenerów, ponieważ stawiają ich w zależności od kodu w innym języku. W szczególności, w obecności wiązań w Rust, programiści podsystemów napisanych w C muszą uwzględniać wpływ zmian na ciągłość działania wiązań. Jakiekolwiek zmiany w strukturach danych lub funkcjach wewnętrznych w C mogą prowadzić do konieczności zmiany kodu wiązań, dlatego zmiany w kodzie C, które mają wpływ na wiązania, trzeba śledzić i synchronizować z kodem w Rust.

W procesie rozwoju jądra były już przypadki odrzucenia pull requesta z zmianami w podsystemie zarządzania pamięcią, ponieważ ta zmiana powodowała awarię podczas próby zbudowania jądra z włączeniem wsparcia dla Rust. Awarie wystąpiły z powodu desynchronizacji z kodem generującym wiązania Rust (bindgen) i doprowadziły do tego, że osoby zajmujące się podsystemem zarządzania pamięcią, wprowadzając zmiany, które były całkowicie poprawne z punktu widzenia kodu w C i jądra w ogóle, stały się zależne od opcjonalnego kodu zewnętrznego w jądrze, za który odpowiadają inni ludzie.

Linus Torvalds uważa, że Christoph Hellwig nie ma uprawnień do blokowania przyjmowania wiązań Rust do jądra dla podsystemu DMA, ponieważ kod tych wiązań nie dotyczy kodu podsystemu mapowania DMA i jest zrealizowany w osobnym podkatalogu, którego wsparciem zajmuje się inny maintainer. Linus porównał działania Christopha do próby kontrolowania obszaru wykorzystania podsystemu DMA, podczas gdy maintainerzy odpowiadają jedynie za kod swojej podsystemy, a nie za to, jak i przez kogo używany jest wynik pracy tego kodu. Na przykład zmiana w kodzie podstawowych podsystemów może prowadzić do problemów z działaniem jakiegoś sterownika, ale to nie jest powód, aby ingerować w przyjmowanie nowych sterowników.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster