Molnár Ingo magyar kernelfejlesztő új javaslatsorozata radikális lépést tesz az x86 architektúra modernizálása felé, amelynek részeként végleg búcsút intenek a Linux kernelben az olyan elavult 32 bites processzorok támogatásának, mint az i486 és a korai i586 modellek. Ezek a CPU-k évekig marginális szerepet töltöttek be a Linux világában, mégis jelentős mennyiségű „kompatibilitási ragasztóként” szolgáló kód maradt utánuk a kernelben. Molnár szerint e régi támogatási réteg nemcsak felesleges, hanem sokszor aktívan hátráltatja a fejlesztést, és fölösleges hibakeresésre kényszeríti a közösséget. Linus Torvalds is egyetért a lépéssel, mondván: itt az ideje elengedni az i486 támogatását, és senkinek sem kellene több munkaórát ezen részek fejlesztésére áldoznia.
Tartalomjegyzék

A változások főbb technikai pontjai
A javaslatcsomag célja, hogy a minimálisan elvárt CPU-funkciók közé emelje a TSC (Time Stamp Counter) és a CX8 (CMPXCHG8B utasítás) meglétét. Ez azt jelenti, hogy a kernel a jövőben csak azokat a processzorokat támogatja, amelyek rendelkeznek ezekkel az alapvető képességekkel. A döntés következtében teljes egészében megszűnik a 486-os és a TSC nélküli korai 586-os chipek támogatása.
A módosítások eredményeként több mint tizennégyezer sor kódot töröltek a kernelből, míg mindössze 38 új sort kellett beilleszteni. A legtöbb törölt fájl a math-emu könyvtárból származik, amely a lebegőpontos műveletek szoftveres emulációjáért felelt az olyan CPU-kon, amelyek nem rendelkeztek valódi FPU-val. De még ezen könyvtár eltávolításán túl is több mint ezer sor feleslegessé vált, ami jelentős egyszerűsítést eredményez a kódbázisban.
Az eltávolítás menetrendje a Linux kernelből
A javaslatcsomag öt fő szakaszra tagolódik. Az első a régi CPU-opciók törlésére fókuszál a Kconfig fájlokban, eltávolítva többek közt az M486, M486SX, ELAN, valamint az MWINCHIP és UMC specifikus támogatásokat. A második szakaszban megszűnik több platformhoz köthető támogatás, például az RDC321X és AMD ELAN architektúrákhoz, valamint a hozzájuk tartozó watchdog és cpufreq alrendszerekhez.
A harmadik szakasz az FPU emuláció teljes eltávolítását célozza. Eltűnik a MATH_EMULATION opció, a no387 bootparaméter, és minden kapcsolódó fájl a math-emu/ könyvtárból, beleértve az assembler és C nyelvű modulokat, makrókat és dokumentációkat.
A negyedik és ötödik szakasz lényege, hogy a TSC és CX8 támogatása mostantól kötelező lesz az x86 platformon. A TSC-hez és CX8-hoz tartozó konfigurációs opciók ezentúl mindig engedélyezettek, és a köréjük épülő feltételes kódrészeket teljesen eltávolították. Bár a konfigurációs opciók nevesítve még megmaradnak, már nincs gyakorlati jelentőségük, és később vélhetően teljesen eltűnnek.
A folyamat nyomon követhető
Molnár jelezte, hogy még akadnak elszórt hivatkozások a már eltávolított platformokra a főbb Kconfig fájlokban, illetve hogy a CPU-választási logika túlzottan komplex maradt. Ezek tisztítását egy későbbi körben tervezi elvégezni, amennyiben a közösség támogatja a jelenlegi javaslatok irányát. A munkafolyamat követhető a git://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.git címen, a WIP.x86/cpu ágon.
A 32 bites éra alapkövei: Az x86 negyedik és ötödik generációja
Az Intel i486 processzora 1989-ben jelent meg, és az x86 architektúra negyedik generációját képviselte. Az első valódi 32 bites tömegpiaci CPU-k közé tartozott, beépített matematikai társprocesszorral (FPU) és pipelined utasítás-végrehajtással, ami jelentős teljesítménynövekedést hozott az elődjeihez képest. Az i486 sokáig meghatározó volt mind az ipari, mind az otthoni számítástechnikában, és több évig használták belépő szintű PC-kben és beágyazott rendszerekben egyaránt.
A sorozatot az 1993-ban bemutatott Pentium, vagyis az i586 váltotta, amely párhuzamos végrehajtási egységeivel és új utasításkészletével tovább növelte a számítási teljesítményt. A Pentium volt az első chip, amely elhagyta a számozott elnevezést a védjegyezhetőség miatt, de technikai szempontból az x86 architektúra ötödik generációját jelöli. Mindkét platform mára történelmi jelentőségűvé vált, ám örökségük évtizedeken át velünk maradt a Linux kernel kódjában is – egészen mostanáig.