2022-11-26 Apple Silicon mac で arch コマンドを試す
arch
コマンドでマシンのアーキテクチャを表示できる。
arch on Apple Silicon
Apple Silicon macで打った場合の結果はこうなる。
$ arch
arm64
ちなみに Intel mac だとこうなる。
$ arch
i386
なおman arch
すると下記のように説明されていた。
- i386 32-bit intel
- x86_64 64-bit intel
- x86_64h 64-bit intel (haswell)
- arm64 64-bit arm
- arm64e 64-bit arm (Apple Silicon)
ちなみに Intel mac が i386 と出力するのはそういうもんらしい。
Unfortunately, that’s just the way arch works on OS X. With current OS X systems, arch reports i386 for Intel architectures that are capable of running 32-bit;
ref. macos - OS X arch command incorrect - Stack Overflow
Intel macで uname -m
を聞くと下記のようになる。
$ uname -m
x86_64
Docker の場合
ARM対応しているdockerイメージであれば下記のように出力される。
$ docker run mysql:8.0 arch
aarch64
aarch64 は ARMアーキテクチャであるということ。
AArch64またはARM64は、ARMアーキテクチャの64ビット命令セットである。
ref. AArch64 - Wikipedia
一方、armアーキテクチャ非対応のdockerイメージだと下記のように WARNING が出て、x86_64
と出力される。
$ docker run mysql:5.7 arch
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
x86_64
WARNING 解消のためには、 --platform
オプションを明示すればOK。
$ docker run --platform linux/amd64 mysql:5.7 arch
x86_64