Ядро Linux прекратит поддержку устаревших процессоров i486 и ранних 586

В наши дни архитектура i486 — это скорее пережиток из учебников по истории компьютеров, чем то, чем пользуются люди. Для сравнения: мы говорим о процессорах 1990-х годов. Другими словами, они очень старые.
Но хотите верьте, хотите нет, ядро Linux по-прежнему поддерживает эту древнюю архитектуру. Тем не менее, эта реликвия, возможно, наконец-то приближается к своему давно заслуженному уходу на пенсию.
Чуть больше недели назад, во время обсуждения некоторых функций ядра в списке рассылки разработчиков ядра, Линус Торвальдс завершил своё сообщение следующим образом:
У нас действительно сложилось впечатление, что пришло время отказаться от поддержки i486. Нет никаких реальных причин тратить хоть секунду на разработку такого рода проблем.
И ответ пришёл даже раньше, чем на следующий день. Разработчик ядра с большим стажем Инго Молнар опубликовал RFC с 15 исправлениями, которые повысили бы базовый уровень аппаратного обеспечения для 32-битных систем x86 до процессоров, оснащённых счётчиком временных меток (TSC) и инструкцией CMPXCHG8B («CX8»).
Проще говоря, это означает прощание с семейством 486 и самыми ранними компьютерами класса Pentium, настолько старыми, что они появились ещё до Windows 95.
Сохранение «компиляции совместимости» для чипов, которые сегодня практически никто не использует, «иногда даже вызывает проблемы, на решение которых люди тратят время», — предупредил Молнар в сопроводительном письме. Поэтому был представлен патч, который удаляет или жёстко прописывает несколько параметров сборки:
- Варианты процессоров: M486, M486SX, ранние версии M586, WinChip, Elan и другие.
- Поддержка платформы: нишевые платы, такие как RDC321x и Elan от AMD эпохи 486, не поддерживаются.
- Эмуляция FPU: почтенная библиотека
math-emu/
и флагno387
загрузки удаляются. - TSC и CX8: оба символа становятся безусловными, удаляя резервные пути для микросхем, в которых их нет.
При очистке удаляется примерно 14 104 строки в 80 файлах, при этом добавляется всего 38 строк. Даже после исключения эмулятора FPU в ядре остаётся более тысячи строк, что значительно сэкономит время будущим разработчикам.
Если исправления будут одобрены, это станет первым массовым отказом от процессоров с тех пор, как в 2012 году в Linux 3.8 перестали поддерживать i386. Разработчики вынашивали идею отказаться от i486 как минимум с 2022 года, но импульс к этому наконец-то появился после публичного заявления Торвальдса.
И наконец, кто пострадает? Практически никто, или, проще говоря, никто не пострадает. Последний коммерческий i486 сошёл с конвейера в 2007 году, и современные ядра редко работают на таком устаревшем процессоре за пределами любительских ретро-вычислений. Для таких пользователей, как в нашем случае, по-прежнему актуальны старые ядра с долгосрочной поддержкой или эмуляторы всей системы.
Дополнительную информацию см. в предложении Молнара в списке рассылки ядра.