6

Linux はどのように同時に 32 ビットと 64 ビットですか? それとも、それは glibc で処理されるものですか?

CentOS 5.3 を実行していますが、これは「64 ビット」バージョンです。私は64ビットと32ビット用のものを構築していますが。私が知っていると思うことから、Windowsにはおそらく32ビットエミュレーターがあります。Linuxは同じことをしますか?ユーザー空間またはカーネル空間にありますか?

libc がそれを処理する場合、32 ビット アプリとリンクしますが、カーネルに対しては 64 ビットを話すというエミュレータのようなものですか?

4

3 に答える 3

5

CPU は 64 ビットと 32 ビットの両方の命令を実行でき、カーネルはモードを切り替えることができます。唯一の制限は、32 ビット プログラムを 64 ビット ライブラリに対してリンクできないため、32 ビット バージョンと 64 ビット バージョンの両方の libc などをインストールする必要があることです。

于 2009-10-01T14:37:12.377 に答える
3

CPUが64ビットから32ビットに切り替わるのを止めるものは何もありません。切り替わるだけです。

64 ビットのカーネルを使用して、32 ビットのアプリを実行できます。32 ビット カーネルを使用して 64 ビット アプリ (Mac OS X) を実行することもできます。

ただし、それらが使用するライブラリも 32 ビットまたは 64 ビットである必要があります。そのため、64 ビットまたは 32 ビット ライブラリの場合、Linux で lib64 または lib32 と呼ばれるファイルが表示されることがあります。

于 2009-10-01T14:29:18.257 に答える
1

x86_64 プロセッサは x86 テクノロジで設計されているため、PowerPC または Sparc 環境で x86 プログラムを実行するために必要なハードウェア エミュレーションなしで 32 ビット プログラムをサポートできます。Linux では、32 ビット ソフトウェアを実行するために必要なソフトウェア ライブラリをインストールするだけです。

于 2009-10-01T14:31:36.160 に答える