i386ダウンロードとamd64の違いは?


164

標準のi386ダウンロードとUbuntu 11.04のamd64ダウンロードの違いは何ですか?現在、amdマシンでi386を実行していますが、代わりにamd64をダウンロードした方がシステムの動作が良くなりますか?(私のマシンはWindows 7 64ビットを実行していましたが、Ubuntuをインストールする前にそれを見るのを怠っていました)。



回答:


165

i386は32ビット版を指し、amd64(またはx86_64)はIntelおよびAMDプロセッサーの64ビット版を指します。

ウィキペディアのi386エントリ:

i386または386とも呼ばれるIntel 80386は、1985年にIntelによって導入された32ビットマイクロプロセッサでした。これは、コンテキストに応じて、x86、IA-32、またはi386アーキテクチャと呼ばれます。

ウィキペディアのx86_64エントリ:

x86-64は、x86命令セットの拡張です。x86で可能なよりもはるかに大きな仮想および物理アドレススペースをサポートしているため、プログラマははるかに大きなデータセットを簡単に操作できます。「x86-64」の名前でアーキテクチャを起動した後、AMDはAMD64 ... -64は依然としてベンダー中立的な用語として業界の多くの人に使用されていますが、特にSun Microsystems(現在のOracle Corporation)とMicrosoftはx64を使用しています。

Intel CPUを使用している場合でも、AMD64を使用してコンピューターに64ビットをインストールする必要があります(同じ命令セットを使用します)。

使用することを強くお勧めします。ほとんどの場合、違いに気付かないでしょうが、大きなワークロード(ビデオ編集、ゲームなど)の場合、コンピューターはより高速に実行されます(コンピューターは2 + 2 + 2 = 6を計算する代わりに、例では2 + 2 = 4 + 2 = 6)。Windowsの世界では、32ビットOSでは、コンピューター上で3.5ギガバイト以上のRAMを使用できません(8を搭載していても!)。すべてのRAMを完全に使用するには、64ビットOSを使用する必要があります。ただし、Linuxの場合、そのような制限はありません(ありがとう、Uri)。

とにかく、世界は32ビットからシフトしており、64ビットを実行できない古いマシンをサポートするためだけに存在しています。


その最後の部分は、現在(もちろんLinuxで)真実ではありません。PAEカーネルで32ビットの3.5GB以上のRAMを使用できます。
ウリエレーラ

32ビットの3.5GBのRAM制限は4GB- <グラフィックカードメモリ>ではありませんか?
クリスキン

3
簡単にするために、グラフィックカードメモリなどの技術は省略しました。私の目的は、「3.5-4を超えるギグがある場合、64ビットを使用する」と言うことでした。

1
@Treefroginc正確な調整は何ですか?
ウリヘレラ

1
64ビットは32ビットと同じように使用可能で安定しているすべてのビットです。特定の時間帯の特定の状況下で、惑星が宇宙線を放出して整列する場合、Flashの例外はほとんど無視できます。

41

アーキテクチャは、AMDがAthlon 64で発明したため、AMDにちなんで命名されています。同様に、32ビットi386アーキテクチャは、Intel 386プロセッサにちなんで命名されています。そのため、そのISOイメージを使用できます。

ソース: https : //superuser.com/questions/128482/ubuntu-amd64-vs-i386


10

はい、amd64ビットをIntel 64ビットプロセッサにインストールできます。AMDはx86-64ビット命令セットプロセッサを発明したため、その名前はAMDへのオマージュに過ぎません。


これを片付けてくれてありがとう。単純な質問でしたが、どこにも答えが見つかりませんでした。
デイブWolover

8

amd64i386の違いは、amd6464ビットであるのに対し、i38632ビットであることです。これは、コアで使用可能なレジスタの幅(ビット単位)です。

基本的に、32ビットCPUコアが一度に処理できる最大数は42.9億を少し超え、64ビットコアは184.4億10億を少し超える数を処理できます。

最新のPCのコアは、インストールしたオペレーティングシステムのバージョンに応じて、64ビットまたは32ビットプロセッサとして動作できます。

64ビットコードは32ビットコードよりも高速に実行される傾向があります。これは、実行中により大きな数を処理できるか、64ビットコアがより多くのレジスタを持っているため、外部メモリに物を置くことなくより多くのものを格納できるためです。ただし、プロセッサの追加機能を利用するためにコードが記述されていない場合、64ビットコードがより高速に実行されるという保証はありません。

32ビットシステムでコンパイルすると、64ビットシステムとは異なるコードが生成されます。これを証明するには、2つのシステムでアセンブリコードをコンパイルします。Cファイルがmyfile.cであると仮定してgcc -S myfile.c、両方のシステムで試してmyfile.sを比較します

32ビットシステムの適切に記述されたコードは、64ビットシステムでコンパイルおよび実行する必要がありますが、すべてのコードが適切に記述されているわけではありません。多くのプログラマーは、レジスター幅やバイト順序など、システムについては正しくないかもしれないと仮定しています。

ソースコードにアクセスしないと、問題の内容を確認することは困難ですがsegmenation fault、プログラムに属していないメモリにアクセスしようとしたことが示されます。これは、たとえば、mem_ptrが32ビットシステムでは問題ないが、64ビットシステムでは64ビットポインターである必要がある32ビットポインターであることを示している場合があります。


私はそれを確認し、これに戻ってきます... Thankx
bikram990

realloc(mem_ptr, 0)機能は、以前に割り当てられたメモリ解放されmalloccallocそのポインタがどのような方法で破損している場合、あなたはメモリを解放しようとしているあなたが所有していないと、これがセグメンテーションフォールトを発生さなどを、
ウォーレンヒル

6

はい、その.ISOを使用できます。amd64はアーキテクチャを指します。AMDは64ビットCPUを最初に作成したので、当時この名前が付けられていたと思いますが、その名前はそのままです。少しわかりにくいようですが、amd64は64ビットを意味します。


10
64ビットCPUを作成したのは初めてではありません。Intelには以前のものがありましたが、後方互換性がないため、広く採用されていませんでした。amd64という名前は、AMDのアーキテクチャとIntelのIA64を区別するためのもので、現在は廃止されています。
-psusi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.