Ingo Molnar, maintainer van de x86-architectuur, het blokkeringmechanisme en de taakplanner in de Linux-kernel, heeft een set patches ter discussie gesteld die de ondersteuning voor 486-processoren (M486, M486SX, AMD ELAN) en de eerste series 586-processoren uit de kernel verwijderen. In de kernel wordt voorgesteld om alleen ondersteuning te behouden voor x86-processoren die de CX8-instructie (CMPXCHG8B) en de TSC-register (Time Stamp Counter) ondersteunen, die zijn geĆÆntroduceerd in de Pentium CPU.
Er wordt opgemerkt dat voor de ondersteuning van 486-CPU's in de kernel code moet worden onderhouden die de CX8-operaties (vergelijk en wissel 8 bytes) en TSC (de CPU-cyclusteller, gebruikt in de taakplanner) emuleert. Dergelijke code compliceert de kernel, bemoeilijkt het onderhoud en wordt soms een bron van problemen waarvan de oplossing tijd van ontwikkelaars kost. Het stopzetten van de ondersteuning voor 486 zal 14.104 regels code uit de kernel kunnen verwijderen, wat sommige functies in de kernel aanzienlijk zal vereenvoudigen door de lagen die CX8 en TSC emuleren uit te sluiten en het gebruik van de math-emu-bibliotheek, die de FPU emuleert, mogelijk te maken.
Een dag voor de publicatie van de patches heeft Linus Torvalds tijdens de bespreking van een nieuwe kwestie, die zich voordoet bij de emulatie van CX8, de vraag naar de zinvolheid van het verwijderen van de ondersteuning voor 486 opgeworpen. Linus is van mening dat het tijd is om de ondersteuning voor 486-CPU's op te geven en ziet geen redenen om ontwikkelaars tijd te laten besteden aan het oplossen van de problemen die zij veroorzaken. De ondersteuning voor 386-processoren werd in 2012 uit de kernel verwijderd. Volgens de deelnemers aan de discussie is het nu tijd om de ondersteuning voor 486-processoren te verwijderen. In oktober 2022 heeft Linus al een soortgelijk voorstel gepost, maar dat heeft geen vervolg gekregen.
In de huidige systemen zijn actuele Linux-kernels vrijwel niet in gebruik voor 486. Gespecialiseerde varianten van 486-processoren voor embedded systemen, zoals de Intel Quark, ondersteunen CX8 en TSC, en zullen niet door deze wijziging worden getroffen. Oude originele 486-CPU's worden doorgaans nog steeds gebruikt met verouderde distributies die oude versies van de Linux-kernel aanbieden. Moderne Linux-distributies hebben al lang de ondersteuning voor 32-bits x86-systemen stopgezet of zijn overgestapt op het gebruik van de X86_PAE-optie bij het bouwen, die ondersteuning voor CX8 vereist.
Bron: opennet.ru
