Архитектура ядра Linux x32 может быть прекращена

Linux Kernel 4.19

Недавно было выпущено электронное письмо через список рассылки ядра Linux, и это письмо имеет своей основной целью удалить код из реализации субархитектуры x32 (не путать с x86 IA-32).

Что позволяет использовать 32-битную модель адресации памяти. (гибридные x86 и x86_64) в 86-битных системах x64.

Что такое архитектура x32?

Важно отметить, что подархитектура x32 представляет собой гибридный ABI x86_64., что позволяет использовать 32-битную модель адресации памяти в 64-битных системах (процессор работает в 64-битном режиме, но использует 32-битные указатели и арифметические операции).

АБИ Х32 позволяет приложениям в полной мере использовать преимущества архитектуры x86_64, такие как дополнительные регистры и более быстрые инструкции, PIC ABI.

В то же время ABI X32 поддерживает 32-битные указатели памяти, что экономит память, способствует более эффективному заполнению кэша процессора и положительно влияет на общую скорость выполнения кода.

Ограничением ABI X32 является невозможность направить из приложения более 4 ГБ памяти.

Поддержка X32 была частью ядра Linux с момента его выпуска 3.4, созданного в мае 2012 года.

Разработчики будут обсуждать, продолжать ли поддерживать эту архитектуру или нет.

По словам разработчика, предлагающего удалить технологию x32 это не оправдало себя и не нашло практического применения в современных промышленных схемах.

Кроме того, иl x32 код использует довольно спорный метод работы с системными вызовами, что создает риск прерывания нормальной работы после обработки реализаций системного вызова.

Линус Торвальдс сказал, что согласится удалить x32, если не будут представлены аргументы или если системы, в которых применялась субархитектура x32, не представлены.

Линус Он также указал, что использование архитектуры x32, по-видимому, ограничивалось тестированием экстремальной производительности.s, поскольку поддержка этой субархитектуры связана с большим количеством хлопот в поддержке дистрибутивов и среды разработки.

Почта:

Привет всем.

Я серьезно подумываю отправить патч для удаления поддержки x32 в Linux.. Вот некоторые проблемы с этим:

  1. Не совсем понятно, есть ли у него пользователи. Насколько мне известно, он поддерживается в Gentoo и Debian.
  2. Система звонков работает очень странно. Большинство системных вызовов на x32 вводятся через их * родную * (т.е. не COMPAT_SYSCALL_DEFINE) точку входа, и это сделано намеренно.

Например, adjtimex () использует собственный ввод, а не совместный ввод, потому что структура x32 struct timex соответствует макету x86_64. Но некоторые системные вызовы имеют отдельные точки входа - это системные вызовы, начинающиеся с 512.

Они входят через точки входа COMPAT_SYSCALL_DEFINE.

Системные вызовы X32, которые * не * находятся в диапазоне 512, нарушают все подобия соглашения о системных вызовах ядра.

В обработчиках системных вызовов in_compat_syscall () возвращает true, но запись COMPAT_SYSCALL_DEFINE не вызывается, это безумие, и вы рискуете что-то сломать, когда люди реорганизуют свои реализации системных вызовов.

И, прежде всего, никто не пробует эти вещи.

В одном случае При тестировании x32 один из разработчиков Gentoo пришел к выводу, что прирост производительности при переходе на ABI x32 не так велик, как показывают синтетические тесты. От создателей ABI x32:

значительный прогресс наблюдается только по сравнению с предыдущей архитектурой x86, но по сравнению с текущей архитектурой x86-64 выигрыш незначителен (тесты SPEC создателей x32 показали ускорение до 40% по сравнению с классическим ABI x86_64, тесты с кодеком H.264 показал ускорение на 15-20%).


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован.

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.