CPUの変遷から見るアップルOSの歴史

次の記事

仮想サイクリング環境「Zwift」を長野県こもろ観光局が採用、大規模仮想サイクリングイベント開催へ

まだまだ油断のならないコロナ禍の中、オンラインで開催される今年のWWDC20で、アップルはインテル製ではなく、自社設計のARMプロセッサーを搭載したMacを発表するのではないかという噂が流布されている。そうした話は何年も前から出てはいたが、今回まことしやかに語られるようになった発端は「Apple Plans to Announce Move to Its Own Mac Chips at WWDC」というタイトルのBloomberg(ブルームバーグ)の記事だ。この記事では、最初にARMを搭載するのがMacのどのモデルなのかについては述べていない。しかし、それは復活する12インチのMacBookだとか、新しいデザインのiMacだとか、また別のソースからの噂もいろいろと聞かれる。

真偽のほどは、実際にWWDCの基調講演が終わった時点でなければ判明しないが、これまでも、そうした噂が語られてきたのは、それがまったく荒唐無稽というわけではなく、むしろありそうなことだからに違いない。言うまでもなく、iPhoneやiPadは、最初からARMコアのプロセッサーを採用している。そしてそのOSは、元をたどれば、現在はmacOSと呼ばれているMac用のOS、Mac OS Xから派生したもの。しかも、その後はiPhone用のiOSから、逆向きにmacOSが機能やデザインを取り入れるという動きも見られるようになっていった。

また実際に、iPhoneやiPad用のアプリとmacOS用のアプリは、Xcodeという単一の開発環境で作製することができる。こうしたことからアップル製デバイスのOS本体は、少なくともソースコードレベルでは、かなりの共通点を持ったものとなっていることが容易に想像できる。決定的に違うのは、コンパイラーのスイッチでターゲットのCPUを選ぶ部分くらいかもしれない。つまり、MacがARMベースになっても、少なくともアップルとしては、それほど大した苦労もなく、涼しい顔でARM用のmacOSと標準アプリをリリースできるのではないか。その体制は、もう十分に整っているのではないかとすら考えられるのだ。

MacのCPUとOSの変遷

言うまでもなく、現在のMacは多くのWindows PCと同様に、インテル製のCPUを搭載している。最近のユーザーは、そうした状況が当たり前だと思っているかもしれないが、Macは最初からインテル製のCPUを採用していたわけではない。むしろMacは、そこらのPCとは違うのだということを強調するためもあって、あえてインテル製とは趣向が異なるCPUを採用し、他社に頼らず独自のOSを開発してきた歴史がある。ここで、その経緯を簡単に振り返っておこう。

最初のMac、オリジナルのMacintoshが発売されたのは、今から遡ること36年にもなる1984年のこと。当初採用していたCPUは、モトローラ製のMC68000だった。これは当時としては先進的なCPUで、データバスは16ビットながら、内部のデータレジスターは32ビットとなっていて、16/32ビットCPUと呼ばれていた。当初Macが採用していた自社製のOSは、まだマルチタスクも実現しておらず、今の感覚ではOSと呼ぶのがはばかられるようなものだった。

しかし、いったん発売したものは、なかなか変更するのが難しい。その後、CPUの世代が進み、MC68020/68030/68040といった高性能のCPUを搭載するに至っても、OS自体は、少しずつ改良を加えつつも、古いアーキテクチャから脱却できずにいた。いわゆる協調型のマルチタスクは実現したものの、メモリ管理などは不完全なもので、アプリの不具合がOS全体のクラッシュにつながることも珍しくなかった。

こうしたモトローラの68K(68系)と呼ばれるCPUは、いわばCISC(Complex Instruction Set Computer)の代表的なもの。CPUのアーキテクチャとしては旧世代に属するものだった。1990年代になると、そうしたアーキテクチャでは性能向上の限界が見え始め、新世代のアーキテクチャとしてRISC(Reduced Instruction Set Computer)がもてはやされるようになった。そしてMacも、モトローラとIBM、そしてアップル自身が共同開発したRISCプロセッサーであるPowerPCを採用するに至った。最初は1994年に登場したPower Macintoshシリーズからだった。

CISCとRISCの違いからも明らかなように、両CPUの間には少なくともソフトウェア(機械語)の互換性はまったくない。この機会は、OSを刷新するチャンスでもあったが、ここでもOSのアーキテクチャに、大きく手が入れられることはなかった。サードパーティ製のアプリや周辺機器も含め、それ以前にMac用として積み上げてきたものが大きすぎたためかもしれない。乱暴に言えば、それまでのソースコードを単にPowerPC用にビルドし直したようなものだった。そして、それ以前からあった68系用のアプリは、ビルドし直すことなくそのまま動作できるよう、68系CPUのエミュレーターをOSに内蔵することまでした。いわば後ろ向きの互換性を重視したものだった。

MacのOSが、誕生以来初めて大きく刷新されたのは、しばらくアップルを離れていたスティーブ・ジョブズ氏が復帰し、その際に持ち込んだ技術を利用して開発したMac OS Xの登場によるものだった。正式版のリリースは、今世紀に入ったばかりの2001年だ。このときは、逆にハードウェアアーキテクチャの刷新のチャンスだったはずだが、やはり見送られた。そのころには、MacのCPUは、すでにPowerPCに一本化されていた。当時のMac OS Xは、それを前提としたハードウェアアーキテクチャの上で動作するものだった。

そして、Macにとって大きなくくりで3世代目となるインテル製CPUの採用は、OSの変遷とはほとんど無関係に、すでにMac OS Xが定着した2005年に発表された。実際の製品としては、翌2006年に発売されたiMacが皮切りとなった。その際には、やはりPowerPCの機械語コードをインテル製プロセッサー上で実行できるようにするエミュレーターが提供された。そのソフトウェアが優れた完成度だったこともあって、PowerPCからインテルへの遷移も、かなりスムーズに成し遂げられた。

こうしてざっと振り返ってみると、MacのCPUとOSは、あえて無関係と思われるようなズレたタイミングで切り替えてきたからこそ、インパクトを最小限にすることができ、Macという製品が、発売から36年を経て、今日まで生き延びることができたのかもしれないと思えてくる。そして近い将来に、ARMコアのCPUを採用したMacが登場しても驚くには値しない。何事もなかったかのように切り替えが進行することも十分に期待できる。あるいは、現在同じインテルでもXeonプロセッサーを搭載するMac ProやiMac Proのようなハイエンドの製品はインテルに留まりながら、ミドルレンジやローエンドのMacだけをARMベースに転換していくのかもしれない。今後のMacが、そうしたヘテロな環境になっていったとしても、すんなり受け入れられそうな気がしてくる。

いまARMコアを採用したMacが登場したとすれば、どのようなインパクトが考えられるのか。その2では、アップル自身、サードパーティのデベロッパー、そして一般のユーザーごとに考えてみることにしよう。

WWDC20