Ганс Питер Анвин (Hans Peter Anvin), один из ключевых разработчиков Linux-ядра в компании Intel и создатель таких проектов как syslinux [2], klibc [3] и LANANA [4], опубликовал [5] в списке рассылки разработчиков ядра Linux серию патчей, реализованных в рамках проекта X32 [6], нацеленного на создание гибридного x86_64 ABI с 32-х битной адресацией памяти.
X32 представляет собой прослойку поверх стандартного x86_64 ABI ядра, эмулирующую на 64-разрядных системах 32-х битную модель адресации памяти. Как следствие, приложения могут использовать все преимущества архитектуры x86_64, такие как дополнительные регистры, более быстрые инструкции, PIC ABI, но в то же время смогут работать с 32-х битными указателями памяти, что положительно скажется на потреблении памяти, кэша и общей скорости исполнения кода.
Замеры производительности, сделанные разработчиками, показали, что внедрение нового ABI в некоторых случаях позволяет добиться прироста скорости исполнения кода до 32% в сравнении с классическим x86_64 ABI, хотя не исключены ситуации, в которых наблюдается небольшое падение производительности на 0.5-6%. Также ограничением служат запросы приложения к размеру используемой оперативной памяти, которые теперь ограничиваются 4 Гб.
Для реализации X32 ABI разработчикам потребовалось добавить около 1000 строк кода в ядро Linux, а также интегрировать поддержку новой "архитектуры" в пакеты binutils, libc и GCC. Патчи, а также инструкции по сборке и установки можно получить на официальной странице [6] проекта.
Ссылки:
[1] http://htfl.ru/cat-news-novosti
[2] /out.php?link=http://www.syslinux.org
[3] /out.php?link=http://en.wikipedia.org/wiki/Klibc
[4] /out.php?link=http://www.lanana.org/
[5] /out.php?link=https://lkml.org/lkml/2012/2/19/124
[6] /out.php?link=https://sites.google.com/site/x32abi/