Apple Silicon搭載のMacではIntel-Onlyのターミナルエミュレータを利用するとCLIツールはRosetta経由で起動するので注意が必要のようです。詳細は以下から。
AppleはWWDC20で、今後2年かけてMacのメインプロセッサをIntelからApple Siliconへ移行する計画を発表し、15年前にPowerPCからIntelへ移行したときと同様に、Intelバイナリに含まれるx86_64命令を自動的にApple Siliconで実行可能なarm64命令へ変更するバイナリトランスレータ「Rosetta (2)」を次期macOS 11 Big Surに導入することで、
ユーザーはIntel(x86_64)バイナリのアプリはもちろんJIT(just-in-time)コンパイラを含めIntel/Apple Siliconバイナリを意識せずに既存のアプリケーションを実行できるとコメントされていましたが、
HomebrewのメンテナーであるMisty De Meoさんらによると、Apple Silicon搭載のMacでIntel-Onlyのターミナルエミュレータを利用して起動したシェルやアプリはRosetta経由で起動するため、iTerm 2の様な非Universalのターミナルエミュレータを利用するとCLIツールは全てRosetta経由となるそうなのでApple Silicon搭載のDTKをレンタルされた方は注意して下さい。
Tip for people testing software on Apple Silicon: if your terminal emulator is Intel-only, it will launch shells running under Rosetta and all software you launch will run in Rosetta too.
In other words: if you have a non-universal iTerm, all your CLI tools run in Rosetta.
— Misty (@mistydemeo) July 17, 2020
And if you want to keep using your favorite Intel-only terminal app but don't want all commands to run in Rosetta, set your startup command to be "arch -arm64e zsh" (for shells that come with the OS) or "arch -arm64 …" (for 3rd party shells) 🙂
— Kuba (Brecka) Mracek (@kubamracek) July 17, 2020
ただし、iTerm 2については既にUniversal化が進んでおり、AppleでApple Silicon搭載のMacとXcodeの開発を担当されているコンパイラーエンジニアのKuba Mracekさんによると、お気に入りのIntel-OnlyのターミナルエミュレータアプリでCLIツールをRosetta経由で実行したくない場合は、”arch -arm64e”オプションを付けてzshやサードパーティ製シェルを起動すれば、arm64ネイティブで利用できるようになるそうなので、DTKをお持ちの方は試してみて下さい。
iTerm2 macOS Universal binary support has landed to master; thanks @gnachman! https://t.co/Y48bD8U1cI
— Stuart Carnie (@stuartcarnie) July 9, 2020
arch -arm64e zsh
コメント