Christoph Hellwig si è dimesso dalla posizione di maintainer del DMA Mapping e ConfigFS dopo aver forzato Rust

Christoph Hellwig ha lasciato il ruolo di maintainer per i sottomoduli dma-mapping e configfs. La sua partenza si è limitata all'invio di una richiesta di rimozione dalla lista dei maintainer e alla comunicazione del passaggio di gestione ai restanti curatori. Nel sottomodulo dma-mapping, la gestione sarà portata avanti da Marek Szyprowski di Samsung, mentre nel configfs da Joel Becker di Oracle.

Christoph Hellwig rimane attualmente tra i maintainer dei sottomoduli NVM Express, vmalloc e FreeVXFS. In passato, Christoph è stato membro del comitato tecnico dell'organizzazione Linux Foundation e ha partecipato allo sviluppo di sottomoduli come XFS, KVM, Trace events, SCSI e Slab Allocator, oltre ad aver gestito l'architettura PowerPC nel kernel Linux. Inoltre, Christoph è stato attore in un contenzioso con VMware riguardo a una violazione della licenza GPL.

La cessazione della gestione dei sottomoduli dma-mapping e configfs è dovuta alla dichiarazione di Linus Torvalds di voler includere nel kernel i binding in Rust indipendentemente dal consenso dei maintainer dei sottomoduli per i quali sono stati creati tali binding. A gennaio, Christoph ha rifiutato di accettare nel kernel il binding in Rust per le funzioni di gestione DMA, il che ha portato a un conflitto che ha causato l'uscita di maintainer dai sottomoduli Nouveau e ARM/Apple. Il 24 febbraio, gli sviluppatori del progetto Rust for Linux hanno proposto una patch con uno strato di astrazione per il FS configfs, la cui gestione era affidata a Christoph Hellwig. Christoph non ha partecipato alla discussione sul nuovo binding in Rust per il suo sottomodulo e dopo pochi giorni ha rimosso il proprio nome dalla lista dei maintainer di dma-mapping e configfs.

Christoph Hellwig considera inaccettabile l'uso di più linguaggi di programmazione in progetti complessi come il kernel Linux. Secondo Christoph, le basi di codice miste complicano il lavoro dei maintainer, poiché pongono i maintainer in una condizione di dipendenza dal codice di un'altra lingua. In particolare, con i binding in Rust, gli sviluppatori di sottomoduli scritti in C devono considerare l'impatto delle loro modifiche sulla continuità del funzionamento dei binding. Qualsiasi modifica alle strutture dati o alle funzioni interne in C può comportare la necessità di modificare il codice dei binding, quindi le modifiche che influenzano i binding nel codice C devono essere monitorate e sincronizzate con il codice in Rust.

Durante lo sviluppo del kernel sono già stati registrati casi di rifiuto di pull request con modifiche nel sottomodulo di gestione della memoria, poiché tale modifica causava un errore durante il tentativo di compilazione del kernel con il supporto per Rust. L'errore si è verificato a causa di una dissincronizzazione con il codice per la generazione dei binding Rust (bindgen) e ha portato a una situazione in cui i curatori del sottomodulo di gestione della memoria, avanzando la modifica, che era completamente corretta dal punto di vista del codice in C e del kernel nel suo complesso, si sono trovati dipendenti da un codice esterno opzionale all'interno del kernel, per il quale sono responsabili altre persone.

Linus Torvalds ritiene che Christoph Hellwig non abbia l'autorità di bloccare l'accettazione nel kernel dei binding in Rust per il sottomodulo DMA, poiché il codice di questi binding non interferisce con il codice del sottomodulo DMA Mapping ed è realizzato in una directory secondaria, la cui supervisione è affidata a un maintainer separato. Linus ha paragonato le azioni di Christoph al tentativo di controllare l'ambito di utilizzo del sottomodulo DMA, mentre i maintainer sono responsabili solo del codice del proprio sottomodulo, ma non di come e da chi viene utilizzato il risultato di tale codice. Ad esempio, una modifica nel codice di sottomoduli di base può causare problemi con il funzionamento di un driver, ma questo non è motivo per interferire nell'accettazione di nuovi driver.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster