Linux Kernel припиняє підтримку i486 після 36 років існування

У травні 2025 року Лінус Торвальдс та спільнота розробників ядра Linux ухвалили рішення про формальне відмовлення від старої мікроархітектури Intel i486. Більш ніж через 36 років після її появи та 18 років після останньої серійної продукції Intel, код, що забезпечує сумісність з i486, буде видалено з майбутнього випуску Linux 6.15. Як зазначив Торвальдс, «немає жодної реальної причини, щоб хтось витрачав хоч би секунду» на підтримку такого застарілого обладнання.
Історичний контекст: Спадщина Intel i486
Intel 80486 (i486), випущений у 1989 році, став першим x86 процесором, що інтегрував на чіпі модуль для обчислень з плаваючою комою (FPU) та мав 32-бітний внутрішній канал передачі даних. З технологічними вузлами понад 600 нм та тактовими частотами від 16 до 100 МГц для серії DX2, він став справжнім стрибком уперед у порівнянні зі своїм попередником 386.
- Вбудований FPU: Інтегрований математичний сопроцесор, сумісний з 80 x 87.
- 8 КБ кешу L1: Розділений на 4 КБ для інструкцій та даних.
- Конвеєрна обробка: П’ятиступенева скалярна конвеєрна архітектура підвищила пропускну здатність інструкцій.
- Швидкості шини: Зовнішня шина на 16–33 МГц, що забезпечує швидший доступ до пам’яті.
Багато ентузіастів та прихильників вбудованих систем досі використовують плати на базі i486 в промислових контролерах, ретро-комп’ютерах та наднизькопотужних тестових системах. Проте сучасні розробники ядра Linux зазначають, що i486 не має ключових функцій, які з’явилися в новіших архітектурах.
Технічні наслідки відмови від підтримки i486
Оскільки код для сумісності з i486 планується до видалення, мінімальний набір функцій процесора для arch/x86
тепер вимагатиме:
- Лічильник часу (TSC): Забезпечує субнаносекундну точність для профілювання та таймстампів планувальника.
- CX8 / CMPXCHG8B: Атомарна 64-бітна інструкція для порівняння та обміну, що є необхідною для SMP-замків без програмних обхідних шляхів.
- PAE (Розширення фізичної адреси): Дозволяє адресацію понад 4 ГБ, що є обов’язковим для багатьох сучасних навантажень.
Відмовившись від i486, розробники ядра зможуть прибрати сотні рядків умовного коду, спростити сценарії збірки та оптимізувати процес завантаження. Перші бенчмарки з Поштового списку ядра Linux показують зменшення часу компіляції на 5–8% для коду x86 після впровадження патчів.
Спадкові випадки використання та альтернативні платформи
Ентузіасти та оператори, які все ще підтримують обладнання на базі i486, мають кілька варіантів:
- Використання старих ядер: Продовжувати використовувати основну версію Linux 5.x або гілки довгострокової підтримки (LTS).
- Легкі операційні системи: MenuetOS, KolibriOS або Visopsys — але зауважте, що кожна з них вимагає щонайменше процесор класу Pentium.
- FreeDOS: Для сумісності з реальним режимом MS-DOS на машинах 486.
- ArcaOS: Підрозділ OS/2 з меншими вимогами та підтримкою 32-бітних систем.
Декотрі ентузіасти навіть адаптували Windows XP для роботи на платах 486, хоча такі налаштування не мають сучасних патчів безпеки та мережевих стеків. У більшості випадків користувачам доведеться відмовитися від підключення до Інтернету або покладатися на передачі даних через захищені канали.
Переваги безпеки та продуктивності
Видалення підтримки i486 — це не лише питання чистоти коду. Це також:
- Зменшує площу атаки: Усуває застарілі обробники та обхідні рішення, які можуть виявити вразливі місця.
- Дозволяє оптимізації: Код може припускати доступність CX8 та TSC, що відкриває можливості для швидшого усунення блокувань та покращення алгоритмів планування.
- Зменшує розмір ядра: Економить оперативну пам’ять у вбудованих системах, видаляючи архаїчні ініціалізаційні процедури.
Експерти з безпеки, такі як Йоанна Рутковська з Qubes OS, зазначають, що «підтримка старих особливостей процесорів може призвести до неочікуваних каналів витоку та проблем з часом. Сфокусованість на архітектурах після Pentium закриває кілька таких шляхів».
Перспективи: Сумісність у екосистемі x86
Відмова від підтримки i486 піднімає більш широкі питання щодо зворотної сумісності x86. Протягом останнього десятиліття ядро відмовилося від i386 у 2012 році і вже планує подальші скорочення, такі як застарілі шляхи завантаження BIOS на користь підтримки лише UEFI. Оскільки виробники процесорів переходять до мікрооперацій, подібних до RISC, і спеціалізованих прискорювачів, утримання кожного з режимів спадщини стає все важчим.
Зрештою, рішення про відмову від i486 нагадує, що навіть найуспішніші архітектури повинні еволюціонувати. Для розробників ядра це означає менше проблем з обслуговуванням. Для кінцевих користувачів це невеликий крок до обладнання, яке відповідає сучасним стандартам продуктивності, безпеки та надійності.