「x86-64」「x64」「AMD64」これらは何が違うのか?

「x86-64」「x64」「AMD64」これらは何が違うのか? ナレッジ

Windows等のソフトウェアやサーバーOSのパッケージのファイル名で「x86_64」「x64」「amd64」などという64bit用を表す表記がある。

基本的に今のPCやOSはほぼ全て64bitに対応しており、32bitのソフトウェアを特に利用する必要もなく、もちろん64bitのバージョンをインストールするのだが、何かモヤモヤ感がある。

というわけで「x86-64」や「x64」「AMD64」は何が違うのか?を徹底的に調べてみた。

64bitとは?

まず、64bitとは何か?ですが、それを理解するためには「bit」を理解する必要があります。bit(ビット)とはコンピュータが扱うデータの最小単位の「binary digit」の略です。この最小単位は「0」と「1」の2種類で区別されます。

次に、64bitとは連続した64個(64桁)のbitのことを表します。

つまり、64bitとは一度に扱えるデータの幅が、最大で2の64乗(18,446,744,073,709,551,616個)まで可能ということです。例えば32bitであれば、2の32乗(4,294,967,296個)までなのでその差は歴然です。

それにより、例えばOSなどでは、32bitと64bitの違いとして「処理速度」「扱えるメモリの容量」「扱えるハードディスクの容量」などで差が出ます。

命令セットアーキテクチャ(ISA)とは?

CPUの話に移りますが、CPUを動かすには「CPUが理解できる命令のセット」が必要で、それを体系化したものを命令セットアーキテクチャ (instruction set architecture ※略してISA)といいます。昔の言い方をすれば、機械語(マシン語)の仕様みたいなものです。

そして、「x86-64」や「x64」「AMD64」はこの命令セットアーキテクチャ(ISA)の名前です。

64bitの命令セットアーキテクチャ(ISA)の種類

x86-64またはx64

x86アーキテクチャを64bitに拡張したものの総称です。(※今現在では下記「AMD64」「Intel 64」を含んだ総称で使われています。)

AMD64

「AMD社」が発表したx86アーキテクチャを64bitに拡張したもの。※下記「Intel 64」とは厳密にいえば極僅かな差はあるが通常用途では差は無いと思って良い。

Intel 64

「インテル社」が発表したx86アーキテクチャを64bitに拡張したもの。※上記「AMD64」とは厳密にいえば極僅かな差はあるが通常用途で差は無いと思って良い。

AArch64(ARM64)

スマホやタブレットなどで多く利用されているARMアーキテクチャを64bitに拡張したもの。

IA-64

EPICアーキテクチャによる64bitの命令セットISA。1994年に発表され、インテル社が2001年にリリースした64bitマイクロプロセッサ「Itanium(アイテニアム)」シリーズで採用されたが、2021年のItaniumの製造終了予定に伴い、事実上終了する。

「x86-64」も「x64」も「AMD64」も「Intel 64」も事実上同じ。

この記事自体のタイトルの答えですが、「x86-64」も「x64」も「AMD64」も「Intel 64」も事実上同じと考えて問題ありません。

しかし、実はOSによって64bit命令セットアーキテクチャ(ISA)の呼び名が微妙に違うことにより様々な混乱が発生します。

OSによる呼び名の違い

各OSにて、64bit用のアプリやパッケージをダウンロードする際に、ファイル名の中に存在する64bit用を表す主なパターンを表にしておきます。

OS 64bitを表す主なパターン
Windows 「x64」が多い
RHEL(Red Hat Enterprise Linux) 「x86_64」
CentOS 「x86_64」
Debian 「amd64」
Ubuntu 「amd64」

まとめ

「x86-64」も「x64」も「AMD64」も「Intel 64」も事実上同じ。
利用するOSによってファイル名などで微妙な呼び名の違いがありますが、事実上同じですので安心してダウンロードしましょう。

以上で解決です。