14.04現在、Ubuntuでのx32 ABI実装の現在の状態は何ですか?


11

14.04のリリースノートには、次の文章が含まれています。

X32 ABIサポート(32ビットポインターを使用した64ビットモード)も導入されました。

これにはもう少し説明が必要だと思います。検索エンジンを使用して "x32 ABI"の詳細を調べると、せいぜいWikipediaの記事を見つけることができますが、ほとんどはPhoronixとSlashdotで、あまり有用ではないようです。

私はいくつかの洞察に満ちた答えを見たいです:

  • 現在、14.04で実装されているx32 ABIはどのようなものですか?
    • 14.04 64ビットでデフォルトで有効になっていますか、それともx32 ABIのセットアップに必要な追加手順はありますか?
    • x32 ABIを使用できるコンポーネントまたはソフトウェアは何ですか?
  • x32 ABIを実行しているマシン/インストールに実際の利点はありますか?
    • デフォルトの32ビットおよび64ビットインストールと比較した場合のメモリ消費量はどうですか?

理想的には、x32 ABIは両方の長所を併せ持っているはずです。x86-64の速度向上の大部分と、RAMの少ない古い64ビット対応ハードウェアのユーザーのメモリ消費量の削減。


私はこのことに興味があります。x32のメモリ使用量について説明できることの1つは、32ビットアドレス指定を使用していることです(x86と同じ4GBの制限)。64ビットプロセッサは64ビットメモリアドレス指定を使用するため、メモリ参照はメモリ内の64ビットに格納する必要があります。32ビットモードでメモリ参照を格納するのに必要な32ビットの2倍です。したがって、多くのメモリ参照(ポインタ)が使用される場合には、64ビットはメモリ上で暗黙的に悪化します。
チャックR

ここでパフォーマンスとx32に関する調査:cds.cern.ch/record/1528222/files/LHCb-TALK-2013-060.pdf
Postadelmaga

回答:


5

64ビットインストールでは、メモリ使用量に大きな違いが生じます(特にchrome、firefox、mysql、javaアプリなどのアプリの場合)。

これは64ビットOSのよく知られた副作用であり、とにかく64ビットは他の利点ももたらします。

ここに来るのx32 ABIは、まさにこの問題を制限するためのカーネル機能です。

x32 ABIとは何ですか:このpdf
よれば、64ビットの通常のOS(40%の強化でも)と比較して、メモリの大きな利点があります。

x32-ABIが必要と理解している場合

  • CONFIG_X86_X32 = yでコンパイルされたLinux Kernel 3.4
  • GCC 4.7
  • Binutils 2.22
  • Glibc 2.16
  • gcc -mx32を使用して、アプリケーションに必要なすべてのシステムライブラリを再コンパイルする

試用方法
新しいカーネルにはデフォルトで必要なフラグがありますので、正しい方法でコンパイルされたパッケージのみが必要です(ここではGentooのルールを確実に;)
Ubuntuでは、とにかくDebianとArch解決策があります:

Debian

アーチ


Debian wikiで説明されているように、grubにカー​​ネルオプションを追加する必要があると思います。
ジャルノ

1
Ubuntuエンドユーザーの観点からは、x32-ABI Ubuntuシステムのインストールは非常に難しいようです。(
jarno
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.