Crisi nella promozione del linguaggio di programmazione Rust nel kernel Linux.

Crisi nella promozione del linguaggio di programmazione Rust nel kernel Linux.

Nella comunità di sviluppatori del kernel Linux sono emerse divergenze riguardo all'integrazione del linguaggio di programmazione Rust. Christoph Hellwig, maintainer dei sottosistemi DMA, KVM, Slab Allocator e dell'architettura PowerPC nel kernel Linux, che in passato è stato membro del comitato tecnico di Linux Foundation e querelante in una causa legale relativa alla GPL contro VMware, ha rifiutato di confermare le patch relative al supporto dello sviluppo di driver in Rust.

Le patch proposte, che aggiungono wrapper per le funzioni del sottosistema DMA, hanno sollevato preoccupazioni riguardo alla complessità della manutenzione del codice e alla potenziale diminuzione della qualità del software. Alcuni sviluppatori preferiscono mantenere le interfacce di programmazione in C per evitare complicazioni aggiuntive.

Come motivo del rifiuto è stata citata la complessità della manutenzione del codice con la presenza di wrapper in altri linguaggi e la volontà di mantenere le interfacce software per il DMA leggibili in C, senza confusione dovuta a wrapper poco chiari. Christoph ha suggerito di accedere direttamente all'API DMA in C in ogni driver scritto in Rust, per evitare di creare ulteriori astrazioni da cui i manutentori del kernel dovrebbero dipendere.

Nonostante l'intenzione espressa dagli sviluppatori del progetto Rust for Linux di gestire autonomamente la base di codice scritta in Rust, è stato posto un veto all'accettazione delle patch.

Christoph ha osservato che se gli sviluppatori vogliono rendere impossibile la manutenzione di Linux a causa della mescolanza di diversi linguaggi di programmazione in un'unica base di codice, dovrebbero farlo nel proprio driver, piuttosto che diffondere questo "tumore" nel kernel principale.

Il problema della manutenzione risiede nel fatto che i wrapper in Rust pongono i manutentori in dipendenza dal codice Rust. A prima vista, sembra che i wrapper siano solo sovrastrutture sulle strutture e le funzioni in C, che non influenzano lo sviluppo e la manutenzione del codice in C. Ma non è così. Con tali wrapper, gli sviluppatori dei sottosistemi, scritti in C, devono considerare l'impatto delle loro modifiche sulla continua funzionalità dei wrapper. Qualsiasi cambiamento nelle strutture dati o nelle funzioni interne in C potrebbe richiedere modifiche al codice dei wrapper, pertanto è necessario monitorare e sincronizzare le modifiche riguardanti i wrapper nel codice C e nel codice Rust. Molti manutentori non sono disposti a assumersi la responsabilità aggiuntiva di risolvere i problemi che sorgono nel codice Rust e non intendono sprecare tempo nel monitorare lo stato dei wrapper in Rust.

Fonte: linux.org.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