Wie ist der aktuelle Status der x32 ABI-Implementierung in Ubuntu ab 14.04?

11

Die Versionshinweise vom 14.04 enthalten den folgenden Satz:

Die Unterstützung von X32-ABI (64-Bit-Modus mit 32-Bit-Zeigern) wurde ebenfalls eingeführt.

Ich denke, das verdient etwas mehr Erklärung. Wenn Sie eine Suchmaschine verwenden, um mehr über "x32 ABI" zu erfahren, finden Sie möglicherweise bestenfalls einen Wikipedia-Artikel , aber hauptsächlich Phoronix und Slashdot, die nicht sehr nützlich zu sein scheinen.

Ich würde gerne einige aufschlussreiche Antworten sehen auf:

  • Wie oder was ist mit x32 ABI derzeit in 14.04 implementiert?
    • Ist es in 14.04 64-Bit standardmäßig aktiviert oder sind zusätzliche Schritte erforderlich, um x32 ABI einzurichten?
    • Welche Komponenten oder welche Software kann x32 ABI verwenden?
  • Gibt es tatsächliche Vorteile auf einem Computer / einer Installation mit x32 ABI?
    • Wie ist der Speicherverbrauch im Vergleich zu Standard-32-Bit- und 64-Bit-Installationen?

Im Idealfall hätte der x32 ABI das Beste aus beiden Welten zusammenbringen sollen: Die meisten Geschwindigkeitsverbesserungen von x86-64 und ein geringerer Speicherverbrauch für Benutzer älterer 64-Bit-fähiger Hardware ohne viel RAM .

LiveWireBT
quelle
Ich bin selbst neugierig darauf. Eine Sache, die ich Ihnen über die x32-Speichernutzung sagen kann, ist, dass 32-Bit-Adressierung verwendet wird (gleiche 4-GB-Beschränkung wie x86). Da 64-Bit-Prozessoren eine 64-Bit-Speicheradressierung verwenden, müssen Speicherreferenzen in 64-Bit-Speicher gespeichert werden - doppelt so viel wie 32-Bit, um Speicherreferenzen im 32-Bit-Modus zu speichern. Daher ist 64-Bit in einigen Fällen implizit schlechter im Speicher, wenn viele Speicherreferenzen (Zeiger) verwendet werden.
Chuck R
hier eine Studie über Leistung und x32: cds.cern.ch/record/1528222/files/LHCb-TALK-2013-060.pdf
Postadelmaga

Antworten:

5

Bei der 64-Bit-Installation treten große Unterschiede in der Speichernutzung auf (insbesondere bei Apps wie Chrome-, Firefox-, MySQL- und Java-Apps).

Dies ist ein bekannter Nebeneffekt von 64-Bit-Betriebssystemen, 64-Bit bringt jedoch auch einen anderen Vorteil.

Hier kommt es x32 ABI: eine Kernelfunktion, die genau dieses Problem begrenzen soll.

Was ist x32 ABI:
Laut diesem PDF bietet es einen großen Speichervorteil im Vergleich zu einem normalen 64-Bit-Betriebssystem (sogar 40% Verbesserung).

Wenn ich verstanden habe, dass x32-ABI Folgendes erfordert :

  • Linux Kernel 3.4 kompiliert mit CONFIG_X86_X32 = y
  • Gcc 4.7
  • Binutils 2.22
  • Glibc 2.16
  • Neukompilieren aller von einer Anwendung benötigten Systembibliotheken mit gcc -mx32

Wie man es versucht
Neuer Kernel hat standardmäßig das erforderliche Flag, so dass Sie nur das Paket benötigen , das auf die richtige Weise kompiliert wurde (hier Gentoo für sichere Regeln;).
Unter Ubuntu bin ich mir nicht sicher, ob es dafür ein Repository / ppa gibt, jedenfalls Debian und Arch habe eine Lösung:

Debian

Bogen

Postadelmaga
quelle
Ich nehme an, es müssen Kernel-Optionen in grub hinzugefügt werden, wie im Debian-Wiki beschrieben.
Jarno
1
Aus Sicht des Ubuntu-Endbenutzers scheint die Installation eines x32-ABI-Ubuntu-Systems zu schwierig zu sein :(
jarno