古くは68kから始まり、PowerPC、そしてインテル製へと大きく乗り換えてきたMacのCPU。近年ではiOSデバイスで使われているARM系列も高いパフォーマンスを持つようになったことから、採用の噂も囁かれるようになってきた。そんな中、最新のOSで使われるソースコードにもその布石を匂わすような要素が増え始めている。
未来への試金石
アップルは自社のハードウェアで動作するオペレーティングシステムを「製品」として提供しているだけでなく、その中で使われているソースコードに関しても無償で公開しているのをご存じだろうか。これは現在使われているmacOSがリリースされたバージョン10・0から連綿と続けられている文化ともいえる。
このソースコードの公開は、基本的に該当するバージョンが一般向けに配布されたあととなるのがいつものことだ。しかし、今回公開されたmasOS 10・13、つまりハイ・シエラ(High Sierra)の中に興味深いものが含まれていた。macOSの中核となる「XNU」カーネルに、Macで使われているインテル製CPU向けを示す「i386」「x86_64」だけでなく、新たにiOSデバイスで使われているCPU「arm」「arm64」が追加されて公開されたのだ。
これを受けて、業界筋では「近いうちにCPUの世代交代が始まるのでないか」という噂が流れ始めているようだ。確かに最新のiPhoneに搭載されているAシリーズは、組込用プロセッサである「ARM」を祖先に持ち省電力性も高く、ファンレスや薄型化といった進化にも大きく寄与できる。加えてベンチマークでMacBookエアなどを超えるパフォーマンスを出すとの報告もあり、以前からMacへの搭載を期待する声も大きい。
そもそもアップルはモトローラのMC68000(68k)に始まり、IBMも協業参入したPowerPCシリーズ、そして現在のインテル製CPUファミリーへと「トランジション(乗り換え)」をしてきた。この作業は単なるハードウェアの更新だけでなく、その上で動作するソフトウェアもすべて書き換える必要が出てくるが、OS X 10・4「タイガー(Tiger」)で移行に成功した実績を持つことからも不安材料は少ない。ましてARMはすでにiOSで使われていることを考えると、そのハードルはさらに低くなっているのは間違いないだろう。
公開されたmacOS 10.13 High Sierraのソースコード。この中にある「xnu-4570.1.46」ディレクトリをチェックしてみると確かにiOSデバイスで使用されているARM用のコードが増えている。これは10.12.6までのバージョン(3789.70.16)には見られなかった。【URL】https://opensource.apple.com/source/xnu/xnu-4570.1.46/osfmk/
ハードとソフトの融合
こういった背景を鑑みれば、世代交代の話も現実味を帯びている気もする。だが、残念ながら現在のコードのままではすぐにCPUを切り替えることもできない。実際にコードをチェックしてみると、ARM系に入っているものはiOS 11、つまりMacではなくiOSデバイス向けのものが入っているのだ。
そもそもiOSは、macOSのサブセット(全機能の一部)として作られている。タッチインターフェイスやセンサ類などモバイルデバイスにしかない機能もあるため、両者は独自のフレームワークを持つ部分も多いが、それでもシステムのコアとなる部分、つまりカーネルなどは最初期のiOSバージョンから共通のものが利用されている。
そう考えると今回のソースコードの公開は、今までシステムコアに関わるmacOS部分だけだったものを、iOSまで、その範囲を広げただけだと解釈することもできる。未来のハードウェアのために用意されたコードを公開しても、検証する環境がなければ意味がないということも併せて考えれば、こちらのほうが現実的なのも間違いはない。
しかし、アップルは以前からmacOSのシステム部分をオープンソースで提供する「ダーウィン」プロジェクトにおいて、タイガーに相当する8.0以前からインテル向けバージョンを試験的にリリースしていた実績もある。この点から考えると今回の動きはiOS向けのコードを公開するとともに、次世代のCPUがどんなタイプであってもアップルのシステムは動作するという布石を打っているのだろう。
どんな形でこれから先、システムが進化していくのか。「ハードウェアとソフトウェアの融合」を得意とするアップルが目指す次のヒントは、こういった部分にも隠されているのかもしれない。