
Quando la scorsa settimana ho letto gli articoli che descrivevano la decisione da parte di Linus Torvalds di rimuovere il supporto all’architettura 486 dal Kernel Linux ho avuto una strana sensazione di déjà-vu.
Ne hanno parlato in molti, da ZDNet a Phoronix, ed anche Linuxiac, e così la notizia è rimasta lì, in attesa di… fact-checking!
Già, perché ero convinto che il supporto fosse stato rimosso già da anni, da quando nel 2022 avevamo raccontato la storia nell’articolo “Il supporto ai processori i486 sarà presto rimosso dal Kernel Linux, parola di Linus Torvalds“.
Ora, è chiaro come le tempistiche in un progetto ampio come il Kernel Linux siano logicamente sempre un poco dilatate, ma le frasi del creatore del Kernel non lasciavano spazio a troppe speculazioni:
That’s the kind of maintenance burden we simply shouldn’t have — no developer actually cares (correctly), nobody really tests that situation (also correctly — it’s old and irrelevant hardware), but it also means that code just randomly doesn’t actually work.
Si tratta del classico fardello gestionale che semplicemente non dovremmo avere — a nessuno sviluppatore importa (correttamente), nessuno testa realmente quell’ambito (ed anche questo è corretto — è hardware vecchio e irrilevante), ma significa anche che quel codice randomicamente non funziona.
Per questo quando a fine aprile scorso Torvalds ha scritto nuovamente nella mailing list del Kernel frasi simili, si è capito come le riflessioni a proposito del “fardello gestionale” non fossero affatto casuali, né temporanee.
Il contesto è del tutto simile al primo, dove azioni di manutenzione normali vengono rallentate dalla considerazione di architetture che, ormai, sono retaggio del passato.
Questa volta la discussione riguarda CONFIG_X86_TSC
(TSC sta per Time Stamp Counter) una funzionalità presente nel Kernel Linux sin dalla versione 2.6.12:
Because CONFIG_X86_TSC does cause some oddities: we end up still using the TSC for many things if the hardware supports it (which modern hardware obviously does), but then other things get disabled entirely. […] I really get the feeling that it’s time to leave i486 support behind. There’s zero real reason for anybody to waste one second of development effort on this kind of issue.
Perché CONFIG_X86_TSC causa alcune stranezze: alla fine usiamo TSC per molte cose se l’hardware lo supporta (e l’hardware moderno ovviamente lo fa), ma poi altre cose vengono completamente disabilitate. […] Ho davvero la sensazione che sia il momento di abbandonare il supporto i486. Non c’è una vera ragione per cui qualcuno possa sprecare energie sullo sviluppo di questo tipo di problema.
E gli fa eco anche Ingo Molnar, sottolineando come si tratti principalmente di effort buttato, ed esprimendo un compiaciuto “Fully agreed!“, indicando la tabella di marcia affinché tutte queste porzioni di codice vengano definitivamente rimosse.
Il lavoro non riguarderà solo l’architettura 486, ma anche i primi processori 586, quelli che rivoluzionarono a suo tempo il mercato, i Pentium.
A tendere, la CPU x86 minima supportata sarà quella del Pentium originale (P5) o più recente, che richiede la presenza di TSC e dell’istruzione CMPXCHG8B (CX8), caratteristiche assenti nei vecchi processori 486 e nei primi 586 (IDT WinChip e AMD Elan).
Quella che fino a due anni fa era un’idea si è tramutata quindi oggi in un’esigenza, e quindi addio 486. È così che va l’evoluzione!
Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.
Lascia un commento