Un cambiamento apportato al kernel Linux 6.13, attualmente in fase di sviluppo, da un ingegnere di Microsoft ha generato notevoli problemi all’ultimo minuto, modificando il codice x86_64 del kernel Linux senza la dovuta autorizzazione. Questo ha causato disagi agli sviluppatori e ora si prevede che venga disabilitato prima della versione stabile del kernel Linux 6.13, attesa per domenica prossima, 19 gennaio 2025.
Dettagli sul Cambiamento
Lo scorso novembre, durante la fase di integrazione del codice, processo noto come “merge”, per il kernel Linux 6.13, un ingegnere di Microsoft ha proposto un miglioramento interessante per i moduli del kernel Linux. Le patch, ovvero le modifiche al codice esistente, hanno adattato Linux x86_64, la versione del kernel Linux progettata per i processori a 64 bit, all’utilizzo di pagine grandi a sola lettura ed esecuzione (ROX) per le allocazioni del kernel Linux eseguibile. L’uso di queste pagine ROX riduce la pressione sulle TLB (Translation Lookaside Buffer), una cache, ossia una memoria temporanea che memorizza i dati più frequentemente utilizzati per accelerare le operazioni di accesso e lettura, migliorando così le prestazioni complessive del sistema.
Tuttavia, si è scoperto che questo codice compromette alcune configurazioni abilitate per l’Integrità del Flusso di Controllo (CFI), una misura di sicurezza progettata per prevenire attacchi informatici. Questo ha portato a problemi come il fallimento nel ripristino dalla sospensione su alcuni laptop Intel.
Disabilitazione delle Pagine ROX
L’ingegnere di Intel, Peter Zijlstra, ha preparato una patch per il ramo “x86/urgent” del repository tip/tip.git, che disabilita il supporto a EXECMEM_ROX. Questa patch sarà presentata a Linus Torvalds con la richiesta settimanale di integrazione urgente (pull request) per la sezione x86. Nella patch, Zijlstra ha dichiarato:
x86: Disable EXECMEM_ROX support
The whole module_writable_address() nonsense made a giant mess of alternative.c, not to mention it still contains bugs — notable some of the CFI variants crash and burn.x86: Disabilita il supporto a EXECMEM_ROX.
Tutto il codice relativo a module_writable_address() ha creato un grande caos nel file alternative.c e contiene ancora bug. In particolare, alcune varianti del Controllo dell’Integrità del Flusso (CFI) si bloccano.
Mike, un altro sviluppatore, sta lavorando su patch per risolvere la situazione, ma dato lo stato attuale del codice, non sono ancora pronte per essere implementate. La decisione è quindi di disabilitare temporaneamente questa funzionalità e riprovare nel prossimo ciclo di sviluppo.
Problemi di Autorizzazione
Inoltre, si è scoperto che i manutentori del kernel Linux x86/x86_64 non avevano nemmeno approvato questo cambiamento prima della sua fusione nel kernel principale. Borislav Petkov, un veterano sviluppatore Linux di AMD, ha commentato:
I just love it how this went in without a single x86 maintainer Ack [acknowledgement], it broke a bunch of things and then it is still there instead of getting reverted.
Let’s not do this again please.Adoro come questo sia stato integrato senza nemmeno un singolo Ack [riconoscimento] da parte dei manutentori x86; ha rotto un sacco di cose ed è ancora lì invece di essere annullato.
Non facciamolo di nuovo, per favore.
Prospettive Future
La situazione attuale ha suscitato reazioni significative all’interno della comunità open source, evidenziando l’importanza della collaborazione e della comunicazione tra gli sviluppatori. Molti membri della comunità hanno espresso preoccupazione per il fatto che un cambiamento così sostanziale sia stato integrato nel kernel principale senza il consenso dei manutentori x86/x86_64. Questo ha portato a commenti critici, con alcuni sviluppatori che hanno sottolineato la necessità di rispettare le procedure di revisione e approvazione, per evitare situazioni simili in futuro.
In particolare, Borislav Petkov ha messo in evidenza come l’integrazione di modifiche senza il dovuto processo di verifica possa compromettere la stabilità del sistema e causare malfunzionamenti. Altri sviluppatori hanno concordato, affermando che è fondamentale mantenere un dialogo aperto e trasparente per garantire che ogni modifica apportata al codice sorgente condiviso sia adeguatamente valutata e testata.
Questa vicenda serve da monito per l’intera comunità: le patch devono essere trattate con attenzione e le decisioni devono essere prese collettivamente, per preservare l’integrità e la funzionalità del kernel Linux. La speranza è che, attraverso un maggiore impegno nella comunicazione e nella collaborazione, si possano evitare problemi simili in futuro e garantire un progresso continuo e stabile per tutte le distribuzioni GNU/Linux.
Fonte: https://www.phoronix.com/news/Linux-6.13-Dropping-EXECMEM_ROX
Source: Read More