Linux и x32-ABI - Как использовать?

8

Вступление
Я только что перешел на 64-битную установку и испытываю большую разницу в использовании памяти (особенно для таких приложений, как chrome, firefox, mysql и java):

  • Если раньше было достаточно 4Гб, то теперь они скоро исчерпаны!

Это хорошо известный побочный эффект 64-битных ОС. В любом случае, 64-битная версия имеет и другие преимущества.

Кроме того, оперативная память очень дешевая, есть некоторые нетбуки, которые все еще поставляются с оперативной памятью 1 / 2gb ... ... и вот она x32 ABI: функция ядра, предназначенная именно для ограничения этой проблемы.

Что такое x32 ABI:
согласно этому PDF-документу он обеспечивает большое преимущество памяти по сравнению с 64-битной нормальной ОС (даже 40% улучшение).

Теперь, если я понял, x32-ABI требует :

  • Ядро Linux 3.4 скомпилировано с CONFIG_X86_X32 = y
  • Gcc 4,7
  • Бинутилс 2.22
  • Glibc 2.16
  • Перекомпиляция всех системных библиотек, требуемых приложением, с помощью gcc -mx32

Я знаю Debian и другие дистрибутивы, которые на самом деле поставляют библиотеки с поддержкой 32x-ABI, но я не могу найти никакой документации для настройки этой функциональности (я на Ubuntu 14.04 64bit)

Я хотел бы использовать этот вопрос, чтобы помочь мне и другим собрать информацию, потому что я считаю, что это очень интересная функция.

В частности, моей целью было бы запустить одно приложение (например, Chrome, Firefox или MySQL), используя x32-ABI.

Francesco
источник
Как вы берете эти библиотеки с поддержкой x32 ABI для использования в Ubuntu?
Ярно

Ответы:

2

Debian
Я еще не пробовал, но здесь приведена инструкция по запуску X32-ABI в Debian: https://wiki.debian.org/X32Port

Arch
Здесь хранилище со многими пакетами X32 (такими как chromium, mysql): https://github.com/fantix/ArchLinux-x32

Francesco
источник
1
Поэтому вам нужно загрузить ядро ​​с опцией "syscall.x32 = y".
Ярно
Обратите внимание, что параметр будет работать только на Debian (и, может быть, на производных?), Которые включают этот патч примерно 4 года назад. По какой-то причине он никогда не был принят в ванильную магистраль, которая все еще имеет все CONFIG_X86_X32
ворота