Entfernung der i486-Unterstützung aus dem Linux-Kernel: Molnars Patch und historischer Kontext
Ingo Molnar, der Maintainer der x86-Architektur im Linux-Kernel, hat einen Patch vorbereitet, um die Optionen CONFIG_M486, CONFIG_M486SX und CONFIG_MELAN vollständig zu entfernen. Dadurch wird die Unterstützung für 486DX-, 486SX- und AMD-ELAN-Prozessoren aus modernen Kernel-Builds ausgeschlossen.
Technische Folgen der Entfernung
Die i486-Unterstützung erfordert die Emulation wichtiger Befehle: CX8 (cmpxchg8b für 64-Bit-Atomoperationen) und TSC (Time Stamp Counter für den Task-Scheduler). Dieser Code erhöht die Komplexität des Kernels, erschwert das Debugging und löst periodisch Bugs aus.
Das Entfernen dieser Schichten reduziert den Codebestand um 14.104 Zeilen. Insbesondere:
- Die CX8- und TSC-Emulatoren werden verschwinden.
- Die math-emu-Bibliothek für FPU auf 486SX wird verschwinden.
Das optimiert den Scheduler und die Locking-Subsystene und entlastet die Entwickler.
Hinweis: Keine große Distribution liefert aktuelle Kernels mit M486=y aktiviert. Aktuelle Linux-Branches auf 32-Bit-i486-Hardware werden kaum genutzt.
Linus Torvalds’ Position
Linus Torvalds hat dieses Thema mehrmals angesprochen. 2022 wies er darauf hin, dass die Emulation von cmpxchg8b auf i486 sinnlos ist: Der Befehl existiert auf Pentium und allen x86-64-CPUs. Torvalds schlug vor, LTS-Branches für Legacy-Systeme zu nutzen.
Früher, 2012, wurde die i386-Unterstützung fallen gelassen. Vor dreizehn Jahren schlug Torvalds vor, math-emu zu entfernen, aber die Community zögerte wegen noch produzierter 486SX-Klone. Der Konsens hat sich seither geändert.
Kompatibilität mit Embedded-Systemen
Spezialisierte Chips wie Intel Quark (i486-basiert) unterstützen CX8 und TSC nativ – der Patch wird sie nicht berühren. Original-i486s laufen auf veralteten Distributionen und alten Kernels.
Moderne 32-Bit-Distributionen nutzen X86_PAE, das CX8 erfordert. Reine 32-Bit-x86-Unterstützung ist minimal.
- Vorteile der Entfernung:
1. Code-Reduktion um über 14.000 Zeilen.
2. Vereinfachter Scheduler und Locks.
3. Weniger emulationbezogene Bugs.
4. Fokus auf relevante Architekturen.
Wichtige Punkte
- Molnars Patch entfernt CONFIG_M486*, CX8/TSC-Emulatoren und math-emu – minus 14.104 Codezeilen.
- i486s werden nicht mit modernen Kernels genutzt; Distributionen sind zu PAE oder 64-Bit gewechselt.
- Torvalds unterstützt es: cmpxchg8b-Emulation ist obsolet – LTS für Legacy nutzen.
- Embedded Quarks sind unbetroffen – sie haben natives CX8/TSC.
Diese Änderungen machen den Kernel sauberer für Mid- und Senior-Entwickler, die an x86 arbeiten.
— Editorial Team
Noch keine Kommentare.