Linuxでは、x86 / x64バイナリ互換性はどのように機能しますか? [コピー]

Linuxでは、x86 / x64バイナリ互換性はどのように機能しますか? [コピー]

Windowsでは、x64バージョンのオペレーティングシステムはx86とx64の両方のバイナリを実行できます。

ただし、x86 Windowsではx86バイナリのみを実行できます。デフォルトのCPUが64ビットをサポートしていても、x64バイナリを実行することはできません。

Linuxのx86 / x64バイナリ互換性の状況は同じですか?それとも互換性が多いか少ないのですか?

答え1

GNU/Linuxこれは、そのディストリビューションと32ビット互換性のために関連パッケージがインストールされているかどうかによって異なります。関連機能はしばしば「」と呼ばれますmultilib。これはLinuxカーネルのサポートにも依存します。 Linuxカーネルをコンパイルするときは、32ビットバイナリのサポートを無効にできます。人気のあるバージョンDebianUbuntuディストロバージョンの両方が32ビット互換性をサポートし、以前はサポートされていなかった一部のディストロはこれを追加しました(例Arch:)。

もちろん、上記のタスクには、64ビットカーネルと64ビットサポートCPUで32ビットプログラムを実行するタスクが含まれます。 CPUが64ビットをサポートしていても、Linuxは32ビットカーネルで64ビットアプリケーションを実行できません。 CPUが64ビットをサポートしていない場合、エミュレーションなしでは64ビットアプリケーションを実行できません。

関連情報