Appleから2020年にリリースされたMacは、これまでのMacとは大きく変わった点があります。
それはCPUがx86アーキテクチャから、ARMアーキテクチャに変更されたことです。
これにより、こんな点が改善されてめちゃくちゃMacが優位に立っています。改善1:消費電力の効率化
改善2:処理性能の向上
改善3:iPhone, iPadとのアプリ共有
x86とARMは何がどう違うの?
アーキテクチャが違うとはいえ、同じCPUじゃないの?何が違うの?
という疑問も出てくるかと思います。
結論、同じプログラムを別なCPUで動かすことはできません。
なぜなら、CPUアーキテクチャが異なると、コンピュータに命令する機械語が全く異なるからです。
機械語は、CPUに対して命令するための仕様です。
この仕様は、各社個別に定義されているので、機械語の書き方もバラバラになっています。
ARMアーキテクチャでも使えるようにするためには、ARMに対応した機械語にビルドできるソフトウェア(コンパイラ)を使う必要があります。
それだけでなく、ARM版でも正しく動作するのか全面的にテストし治す必要もあるので、アーキテクチャの移行はソフトウェアの規模が大きいほど大変な再開発となります。
ARMに変わったことによる悪影響
プログラマにとって最も悪い影響は「Dockerが使えなくなった」点です。
CPUアーキテクチャの変更により、x86アーキテクチャに依存する機能がARMアーキテクチャでは動作しない状況が続いていました。
DockerがApple silicon対応完了
ずっとM1 MacではDockerが動作しない状況が続いていましたが、2021年4月に遂にDockerからApple silicon対応版がリリースされました!
詳しくはこちらをご覧ください。
Docker Desktop for Apple silicon
ttps://docs.docker.com/docker-for-mac/apple-silicon/
(お手数ですが、頭に"h"を追加してアクセスください)
これにより、プログラマにとってのM1 Mac実用化もかなり進みましたね!