Ветеран ядра Linux Инго Молнар сегодня выпустил серию патчей ядра Linux, предназначенных для удаления поддержки «устаревших» 32-битных процессоров. В частности, если эти исправления будут приняты, ядро Linux прекратит поддержку старых процессоров i486, а также более ранних моделей процессоров i586.

Хотя ядро редко упоминается или используется в современных средах Linux, поскольку во многих дистрибутивах прекращена поддержка 32-разрядного оборудования x86, ядро по-прежнему сохраняет поддержку старых процессоров i486, представленных в начале 1990-х годов. Однако сегодняшняя серия патчей прекратит поддержку процессоров i486, а также более ранних процессоров i586. Эти исправления ядра удалят поддержку процессоров, не имеющих функций TSC и CX8/CMPXCHG8B. Это означает, что минимальная поддержка 32-битных процессоров в исходном ядре Linux будет на уровне исходных процессоров Pentium, которые поддерживали CMPXCHG8B и счетчики меток времени (TSC). Тем не менее, было бы удивительно услышать, как кто-то загружает современное ядро Linux и современный программный стек на свой i586/P5 Pentium с исправлениями только для того, чтобы отказаться от поддержки ЦП для более старого оборудования.
Инго Молнар отметил в серии патчей, что удаление поддержки старых процессоров i486 и ранних версий i586 уменьшит нагрузку на разработчиков ядра. Удаление поддержки этого старого оборудования также уменьшит код ядра более чем на четырнадцать тысяч строк. Молнар написал сегодня утром в серии патчей RFC:
В архитектуре x86 мы предоставляем множество сложных инструментов эмуляции оборудования на x86-32 для поддержки старых 32-разрядных процессоров, которые мало кто использует на современных ядрах. Эта проблема совместимости иногда может даже привести к проблемам, решение которых требует от людей много времени, которое можно было бы потратить на другие дела.Как недавно сказал Линус:
«>Я действительно думаю, что пришло время отказаться от поддержки i486».
> Нет причин тратить ни секунды усилий на решение этой проблемы. "
В этой серии добавлена минимальная поддержка ядра, включая аппаратную поддержку TSC и CX8 (CMPXCHG8B), удалена поддержка 486 (и его производных) и ранней поддержки 586 (и его производных).
При этом удаляется много кода:
Изменено 80 файлов, вставлено 38 кодов (+), удалено 14104 кода (-).
Большая часть этого — библиотека math-emu/, но даже без math-emu упрощение весьма существенно:
Изменено 33 файла, вставлено 38 кодов (+), удалено 1081 код (-). "