Eliminación del soporte para i486 en el kernel de Linux: El parche de Molnar y el contexto histórico
Ingo Molnar, el mantenedor de la arquitectura x86 en el kernel de Linux, ha preparado un parche para eliminar completamente las opciones CONFIG_M486, CONFIG_M486SX y CONFIG_MELAN. Esto excluirá el soporte para procesadores 486DX, 486SX y AMD ELAN de las compilaciones modernas del kernel.
Consecuencias técnicas de la eliminación
El soporte para i486 requiere emular instrucciones clave: CX8 (cmpxchg8b para operaciones atómicas de 64 bits) y TSC (Time Stamp Counter para el planificador de tareas). Este código añade complejidad al kernel, complica la depuración y genera errores de forma periódica.
Eliminar estas capas reducirá el código fuente en 14.104 líneas. En particular:
- Desaparecerán los emuladores de CX8 y TSC.
- Desaparecerá la biblioteca math-emu para FPU en 486SX.
Esto optimiza los subsistemas de planificador y bloqueos, aliviando la carga de los desarrolladores.
Nota: Ninguna distribución importante envía kernels recientes con M486=y activado. Las ramas actuales de Linux en hardware i486 de 32 bits apenas se utilizan.
Posición de Linus Torvalds
Linus Torvalds ha planteado este tema varias veces. En 2022, señaló que emular cmpxchg8b en i486 es inútil: la instrucción existe en Pentium y todos los CPU x86-64. Torvalds sugirió usar ramas LTS para sistemas heredados.
Anteriormente, en 2012, se eliminó el soporte para i386. Hace trece años, Torvalds propuso eliminar math-emu, pero la comunidad se contuvo debido a clones de 486SX aún en producción. El consenso ha cambiado desde entonces.
Compatibilidad con sistemas empotrados
Chips especializados como Intel Quark (basados en i486) soportan CX8 y TSC de forma nativa; el parche no los afectará. Los i486 originales funcionan en distribuciones obsoletas y kernels antiguos.
Las distribuciones modernas de 32 bits usan X86_PAE, que requiere CX8. El soporte puro para x86 de 32 bits es mínimo.
- Beneficios de la eliminación:
1. Reducción de código en más de 14 mil líneas.
2. Planificador y bloqueos simplificados.
3. Menos errores relacionados con la emulación.
4. Enfoque en arquitecturas relevantes.
Puntos clave
- El parche de Molnar elimina CONFIG_M486*, los emuladores CX8/TSC y math-emu: menos 14.104 líneas de código.
- Los i486 no se usan con kernels modernos; las distribuciones han migrado a PAE o 64 bits.
- Torvalds lo respalda: la emulación de cmpxchg8b es obsoleta; usad LTS para lo heredado.
- Los Quarks empotrados no se ven afectados: tienen CX8/TSC nativo.
Estos cambios harán el kernel más limpio para desarrolladores de nivel medio y senior que trabajan en x86.
— Editorial Team
Aún no hay comentarios.