Почему x32 провалился
Linux x32 ABI, представленный в версии ядра 3.4, позволял использовать 32-битные указатели и целые числа на 64-битных процессорах x86_64, сохраняя при этом доступ к расширенному набору регистров. Идея заключалась в оптимизации использования памяти и повышении производительности. Однако на практике эта архитектура не получила широкого распространения. Основные причины провала:
- Отсутствие индустриального интереса: Большинство рабочих нагрузок остались на стандартном x86_64.
- Проблемы безопасности: Увеличенная площадь атаки (attack surface) из-за особенностей работы с памятью.
- Отказ дистрибутивов: Debian отключил x32 по умолчанию, требуя явной активации через командную строку. Fedora также отключила поддержку в своих сборках (на примере rawhide 7.0-rc5).
Технические детали удаления
Инженер Linutronix Себастьян Анджей Сивор (Sebastian Andrzej Siewior) представил новый набор патчей, который начинает процесс деprecation. Ключевые технические моменты:
- Символ x32 будет помечен как
BROKENв Kconfig, что сделает невозможным его включение по умолчанию. - Удалению подлежат специальные случаи совместимости (compat cases), связанные с разной выравниванием данных.
- Диапазон системных вызовов >512, используемый x32, не может быть переиспользован. В ядрах старше v5.4 (до коммита 6365b842aae4) невозможно достоверно определить, предназначен ли системный вызов для x86-64 или x32, если он не реализован.
Дорожная карта и сроки
Процесс удаления будет поэтапным. Архитектура останется в последней LTS-версии ядра текущего года (Linux 7.3 или 7.4), после чего будет полностью исключена из кодовой базы. Это решение актуализировано с приближением конца 2026 года.
Сравнение статусов поддержки
| Параметр | Статус x32 ABI | Статус x86_64 ABI |
|---|---|---|
| Версия появления | Linux 3.4 | Давно стабильный стандарт |
| Поддержка Debian | Отключено по умолчанию | Основная архитектура |
| Поддержка Fedora | Отключено (rawhide 7.0-rc5) | Основная архитектура |
| Планируемое удаление | После выхода LTS 7.3/7.4 (конец 2026) | Не планируется |
Значение для сообщества
Удаление x32 упростит поддержку ядра, избавив разработчиков от необходимости поддерживать редкий и проблемный путь совместимости. Для пользователей это означает чистоту кодовой базы и фокус на оптимизации массовых архитектур x86_64 и ARM64.
Источник: Phoronix ↗
