i686とx86_64の違いは何ですか?


回答:


69

i686は32ビットバージョンで、x86_64は64ビットバージョンのOSです。

64ビットバージョンは、特に同じプロセスで大量のRAMを使用する必要がある大規模なデータベースのようなワークロードの場合、メモリのスケーラビリティが向上します。32ビットマシンで(重要な)データベースサーバーを実行することを検討しないでください。

ただし、他のほとんどの場合、32ビットバージョンは問題ありません。32ビットコードはより少ないメモリを使用するため、他のことにより多くを使用できます。OSが使用できるメモリの制限は変わらず、プロセスごとのメモリだけです。

だから、それは本当にあなたがそれを使用したいものに依存します。大規模サーバー用のソフトウェアの開発や大規模サーバーの実行を計画している場合は、64ビットを使用してください。それ以外の場合は32を使用します。


1
4GB以下のRAMの場合、64ビットOSをインストールしないでください。4GB以上のRAMがある場合は、64ビットOSをインストールする必要があります。そうしないと、すべてのRAMにアクセスできなくなります。
d -_- b

3
@toor私は同意しません、1)32ビットOSはPAEなどで4G以上のRAMを使用できます。これは現在標準であり、2)プロセスのアドレス空間のすべてが(別個の)物理RAMにマッピングされるわけではないため、 RAMが(わずかに)4G未満の場合でも、64ビットOSを使用すると便利です。
MarkR

3
@toor確かに、2〜3 GBのプライベートな匿名ページで単一のプロセスを実行したい場合、32ビットOSでは困難になります。このようなシステムでは、(仮想)メモリが不足するのではなく、アドレス空間の枯渇が深刻な問題です。ただし、64ビットカーネルとユーザー空間に切り替えると、タスクがはるかに多くのRAMを消費し、ターゲットを超える可能性があります。状況によっては、64ビットカーネル、32ビットユーザースペースが適している場合があります。
MarkR

1
64ビットプロセッサを使用している場合は、64ビットOSを実行してください!当たり前、賢明なようです
サムワトキンス

2
64ビットバイナリは通常64ビットアセンブリをサポートするようにコンパイルされているということを皆さんが言及していないのは奇妙です!場合によっては、64ビット操作を利用できると、アプリケーションの速度が大幅に向上します。頭に浮かぶのは、Crypto(OpenSSLなど)です。プロセッサが64ビットをサポートしている場合、通常は64ビットアプリケーションを使用するのが最善です!
jduncanator 14

121

簡潔な答え:

i686 = 32-bit Intel x86 arch 
x86_64 = 64-bit Intel x86 arch

18
この答えは、特に32ビットと64ビットを既に認識している場合に最も役立ちます。私を追い払った部分は「i686」でした。通常、x86
Antony

4
そして、なぜx86_64には「86」の部分が含まれているのでしょうか?
mmdemirbas

3
なぜ「86」なのかについての良い質問です。私の自己を調べなければなりませんでした。 serverfault.com/questions/188177/...
thrag

8
「386」、「486」、「586」、「686」を一般化するには- 「80386」、「80486」のようなチップなどに戻る-アーキテクチャのニックネーム
ブラッド

3
@Bradはそれを正しく理解しました:) 64ビット(またはこの場合はx86_64の_64ビット)は、単にx86命令セットの拡張を指します。まだ同じアセンブリ(-ish)ですが、64ビット整数などで作業するための新しい命令が追加されます。したがって、x86が依然として関連している理由です。x86と言うとき、x86は64ビットマシンにも適用されるため、ほとんどの場合、実際には32ビットを意味します。
jduncanator 14

31

ix86は、プロセッサの生成によって設定されたプロセッサ命令の表示です。例:Intel Pentium、Intel Core2Duo、AMD K6。ix86は長年使用されてきました。2000年以降に製造されたプロセッサを使用している場合は、少なくともi686命令セットが含まれている可能性があります。他のインジケータがないことは、これが32ビットバージョンであることを示唆しています。

x86_64は、64ビットレジスタとアドレス空間の使用を示しています。64ビットプロセッサがあり、64ビットバージョンのオペレーティングシステムを使用する場合にのみ、これを選択します。

選択はあなた次第です。すべてのAMD Turionプロセッサは64ビットをサポートしていると思います。Arch Linuxの64ビットバージョンと32ビットバージョンのどちらを使用するかを決める必要があります。


0

マケモネータは説明します

基本的に、異なるカーネル指定は、コンパイラが最適化するように指示された命令セットを識別します。i686 CPUはi586命令とi386命令を実行できます。したがって、先ほど説明したように、i686はi386カーネルを実行できます。ただし、i686用に特別にコンパイルされたものほど最適に実行されない場合があります。

これらは、通常実行される指定です。

x86_64プロセッサ

  • AMDのAthlon 64、Athlon 64-FX、およびOpteron
  • Intel EMT64プロセッサー-Nocona Xeon、PrescottコアのE0リビジョンを使用するPentium 4(別名Pentium 4、モデルF)

i686プロセッサ*すべてのIntel 32ビットPentium(Pentium 1およびPentium MMXを除く)*すべてのAMD 32ビットAthlon

i586プロセッサー

  • すべての32ビットAMD K
  • ペンティアム1
  • Pentium MMX

i386プロセッサ

  • Intel 80386互換CPUの一般的な「最小公分母」の指定(上記のすべてを含みますが、後のCPUの拡張命令を利用しません)。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.