6/24/2020

OS Xの終焉

STRATECHERYより

2002年5月6日、スティーブ・ジョブズはWWDCでClassic Mac OSの葬儀を行いました。

18年後の昨日、OS Xはついに自ら終焉を迎えました。macOSの次のバージョンは10.16ではなく11.0です。

葬儀はありませんでした。

OS Xファミリー

OS Xは、テクノロジーの中でも最も魅力的な系統樹を持っています。その重要性を理解するには、それぞれの先人を理解する必要があります。

Unix: Unixは、AT&Tのベル研究所(その著作権はノベルが所有)に由来する特異なオペレーティング・システムを指しますが、米国政府との和解のおかげで(電気通信の巨人を大目に見ることになり、広く批判されました)、Unixは特に大学に広くライセンスされています。結果として最も人気のある亜種の1つは、カリフォルニア大学バークレー校で開発されたBerkeley Software Distribution(BSD)でした。

Unixのすべてのバリエーションに共通していたのは、1978年にBell System Technical Journalで説明されたUnix哲学です。

多くの格言が、Unixシステムを作った人たちとユーザとの間で、その特徴的なスタイルを説明し、宣伝するために流布しています。

  1. それぞれのプログラムは、1つのことをしっかりこなすようにしましょう。新しい仕事をするには、古いプログラムに新しい「機能」を追加して複雑にするのではなく、新しいものを作りましょう。
  2. すべてのプログラムの出力が、まだ知られていない別のプログラムへの入力になることを期待して下さい。無関係な情報で出力を乱雑にしないようにしましょう。縦欄やバイナリの入力形式を絶対に避けましょう。インタラクティブな入力を要求しないで下さい。
  3. ソフトウェア、たとえオペレーティング・システムであっても、理想的には数週間以内に試せるように設計し、構築します。出来の悪い部分はためらわずに捨てて再構築して下さい。
  4. ツールを構築するために回り道をし、ツールの使用が終わった後に一部を捨てる必要がある場合でも、プログラミング・タスクを軽減するために、未熟なヘルプよりもツールを優先的に使用して下さい。

[...]

Unixオペレーティング・システム、Cプログラミング言語、そしてこの環境で開発された多くのツールと技術は、ベル・システム内や大学、政府の研究所、その他の商業施設で広く使用されています。この環境で推奨されるコンピューティング・スタイルは、新世代のプログラマやシステム設計者に影響を与えています。これはおそらく、Unixストーリーの最もエキサイティングな部分です。フレンドリーな環境と高品質なツールによって育まれた生産性の向上が、増大するソフトウェアの要求を満たすためには不可欠だからです。

今日でも、macOS上でほぼすべてのUnixプログラムを実行できますが、特にCatalinaで行われたセキュリティ変更のいくつかでは、プログラムをシームレスにリンクすることに関して、アクセス許可の問題が発生する可能性があります。

Mach: Machはカーネギーメロン大学で開発されたマイクロカーネルでした。 マイクロカーネルの概念は、オペレーティング・システムのコア機能に必要な最小限のソフトウェアを最も特権の高いモードで実行し、それ以外のすべての機能をそれほど特権のないモードに置くことです。OS Xには本物のマイクロカーネルはありません — BSDサブシステムは性能上の理由から同じ特権モードで動作します— しかし、マイクロカーネルタイプの設計のモジュール構造により、異なるプロセッサ・アーキテクチャへの移植や、様々なタイプのデバイスで必要のないオペレーティング・システム機能の削除が容易になります(もちろん、最新のオペレーティング・システムの移植には、多くの作業がありますが、これは劇的な簡素化です)。

より一般的には、マイクロカーネルの精神 — 異なるコンポーネント間でメッセージをやり取りする小さな集中管理されたソフトウェア — は、現代のコンピュータ、特にモバイルデバイスの設計方法となっています。複数の専用チップが、オペレーティング・システムの指示の下で個別タスクで実行し、それをすべて構造化しています。

Xerox: スティーブ・ジョブズがXeroxを訪問した話は、よく知られているのと同じくらい間違っています。XeroxのAltoとその画期的なマウス駆動のグラフィカル・ユーザ・インタフェースは、パロアルト研究所(PARC)が行った何千ものデモと論文公開のおかげで、シリコンバレーでよく知られていました。PARCの失敗は、XeroxがAltoを市場に出す方法を考え出すよりも、コピー機からお金を稼ぐことを重視していたことです。

このことは、Altoがジョブズにどれほどのインスピレーションを与えたかということに変わりはありません。訪問後、彼はLisaのコンピュータにグラフィカル・ユーザ・インタフェースを持たせるようにプッシュしましたし、それがMacintoshプロジェクトを引き継いだ理由でした。彼は、これまでものに比べてはるかに使いやすいコンピュータを作ろうと決意しました。

Apple: Macintoshは最初のAppleコンピュータではありませんでした。それはApple Iであり、次に象徴的なApple IIでした。Apple IIをユニークなものにしたのは、企業ではなく消費者に明確に焦点を当てたことです。興味深いことに、Apple IIを成功させたのは、最初のスプレッドシート・アプリケーションであるVisiCalcで、Apple IIは主に企業向けに販売されたと言えます。しかし、真実はAppleが最初から消費者企業であったということです。

だからこそ、MacはAppleとXeroxの子供だと考えられているのです。Appleは消費者を理解し、消費者に製品を販売したいと考えていましたが、Xeroxはその製品がどのようなものであるべきかというインスピレーションを提供しました。

一方、UnixとMachの子供であったのがNeXTSTEPでした。独自のアーキテクチャからオブジェクト指向プログラミングに焦点を当て、新しいプログラムを作成するための様々な「キット」を簡単に組み合わせることができる、非常にモジュール化された設計でした。

そして、古典的なMacintosh OSとNeXTSTEPの子供であるOS Xに辿り着きました。OS Xについて考える最良の方法は、Macintoshの消費者主義とインタフェースのパラダイムを取り入れ、それらをNeXTSTEPのテクノロジーの上に重ね合わせたということです。言い換えれば、Unix側のファミリーがOS Xの決定的な特徴だったのです。

Macの帰還

2005年にポール・グレアムは、『Return of the Mac』と題したエッセイを書き、開発者が1980年代以来初めてAppleに戻ってきた理由を説明しています。

私が知る優秀なハッカーたちは皆、徐々にMacに乗り換えつつある。友人のロバートがいるMITの研究グループでは、全員が最近Powerbookを買ったそうだ。彼らは、1990年代半ば、Appleの低迷期にMacを購入していたグラフィック・デザイナやおばあちゃんではない。彼らは、あなたがどこにでもいる筋金入りのOSハッカーである。

その理由はもちろんOS Xだ。Powerbookは美しくデザインされていて、FreeBSDが動いている。あなたは、これ以上何を知る必要があるのだろうか?

グレアムは、ハッカーが有力な指標であると主張し、そのために彼は父親にApple株を買うように勧めました。

あなたは一般の人たちが10年後にコンピュータで何をしているかを知りたいなら、優れた大学のCS部門を歩き回るといい。彼らがやっているものは何でも、あなたがすることになるだろう。

この傾向は、「プラットフォーム」の問題ではさらに顕著になる。なぜなら、斬新なソフトウェアは偉大なハッカーたちによって考え出され、彼らが個人的が使うコンピュータのために最初にそれを書く傾向があるからだ。そして、ソフトウェアがハードウェアを売ってくれる。Apple IIの初期の売り上げの大部分は、VisiCalcを実行するために購入した人たちによるものだ。そして、どうしてブリックリンとフランクストンはApple IIのためにVisiCalcを書いたのでだろうか? 彼らは個人的にそれが好きだったからだ。彼らはどんなマシンを選んでも、スターにすることができただろう。

もし、ハッカーたちにハードウェアを売ってくれるようなソフトウェアを書いてもらいたかったら、あなたはハッカー自身が使うようなものにしなくてはいけない。「オープン」にするだけでは十分ではない。オープンで優れたものでなければなりません。そして、オープンで優れたもの、ついにMacが復活したのである。

興味深いのは、グレアムのストック・コールがこれまでにないほど先見の明がなかったということです。Appleの株価は2005年3月31日に5.15ドルで終了し、昨日は358.87ドルで取引を終えました。しかし、この上昇の主な要因はMacではなく、iPhoneでした。

iOSの兄弟

上の図で示した系統樹にiOSを追加するとしたら、ほとんどの人はMac OS Xの下に置くでしょう。しかし、私は、iOSはClassic MacとNeXTのもう一つの子供として最もよく理解されていると思いますが、今回の類似性はファミリーのApple側にあります。言い換えれば、Macはグレアムの言葉を借りれば、「ハッカー」のための完璧なマシンでしたが、iPhoneはAppleが消費者に焦点を合わせた最も純粋な表現の1つでした。

2007年の発表で、スティーブ・ジョブズが宣言したように、iPhoneはOS Xを実行しますが、確かにMac OS Xではありません。同じXNUカーネルとほとんど同じサブシステムを実行しますが(セルラー機能などをサポートするためにいくつか追加されました)、インタフェースは全く新しいものでした。特に、このインタフェースにはターミナルが含まれておらず、任意のUnixプログラムを実行することもできませんでした。

しかし、その新しいインタフェースは、通常のユーザーにとってはるかに使い易いものでした。

さらに注目に値するのは、iPhoneがUnix哲学の一部も放棄したことです。アプリケーションはすべて個別のサンドボックスで動作したため、他のアプリケーションやオペレーティング・システムのデータにアクセスできませんでした。これはセキュリティにとっては素晴らしいことで、iOSがマルウェアやシステム全体を泥沼に引きずり込むアプリの影響を受けない主な理由ですが、確かに「すべてのプログラムの出力が別のプログラムの入力になることを期待する」ことはできませんでした。iOS 8で共有拡張機能が追加されるまで、プログラムは互いにデータを共有することが全くできず、現在でも厳しく規制されています。

同時に、App Storeは原則1である「各プログラムが1つのことをうまく実行できるようにする」ということを、一般消費者が利用できるようにしました。つまり、いつもあなたと一緒にいるコンピュータのために考えられるどのようなユースケースでも、「そのためのアプリがある」ということです。

消費者は、これらのアプリが互いにやり取りできないことを気にしませんでした。彼らは単にそれらが存在しているだけで満足しており、自分の携帯電話や自分に起こっている悪いことを心配することはなく、好きなだけダウンロードできました。サンドボックス化は、オペレーティング・システムを保護しながら、すべてのアプリがAppleによってレビューされたという事実は、機能しない、さらに悪い、エンドユーザを詐欺しようとしたアプリを淘汰しました。

これは、少なくともビジネスの観点から見て、開発者にとっては良い結果になりました。確かに、iPhoneがロックダウンされていた程度は、多くの人に評価されましたが、Appleのアプローチは、Macには存在しなかった何百万もの新しい顧客を生み出しました。クローズで良いという事実は、誰にとってもメリットがありました。

macOS 11.0

macOS 11.0について印象的なのは、Mac OS Xの兄弟というよりも、iOSの息子のように感じられる度合いです。

  • macOS 11.0は、iOSと同様にARMで動きます。実際、Appleが開発者向けに提供している開発者移行キットには、iPad Proと同じA12Zチップが搭載されています。
  • macOS 11.0には、iOSに大きくインスパイアされているように見えるだけでなく、タッチ向けのユーザインタフェースのオーバーホールを行なっています。
  • macOS 11.0は、オープンで優れていることを第一義にするのではなく、簡単で十分に良いことを第一に考えて開発者を獲得しようとしています。

この最後のポイントの種は昨年、iPadアプリをMacに簡単に移植できるようにしたCatalystで蒔かれました。macOS 11.0では、少なくともARM上で動作するバージョンでは、Appleは再コンパイルすら必要としません。iOSアプリはmacOS 11.0で動作し、デフォルトでMac App Storeに掲載されます(開発者はオプトアウトできます) 。

このようにして、Appleは、同社が弱点と認識しているものに対処するために、最も強力なレバレッジポイント(Appleのルールにも関わらず、開発者にiPhone用アプリを作るように強いるすべてのiPhone消費者)を使用しています。つまりMac App Storeでのアプリの不足に対処しています。

しかし、Mac App Storeアプリ不足は本当に弱点なのでしょうか? Macで定期的に使用しているアプリを考えてみると、膨大な数のアプリがMac App Storeでを利用できません。これは、開発者がAppleに、売り上げの30%カットを抗議しているからではなく、単にAppleがMac App Storeでアプリに課している制限を考えると、それらが機能しないからです。

とりわけ、主な制限は、iOSを非常に信頼できるものにしたのと同じサンドボックス化技術です。信頼性には常にコストが伴います。それは、Unix哲学の言葉を借りれば、「タスクを軽くする」ことができるツールを構築する能力であり、たとえその手段がより悪質な目的への扉を開くものであったとしてもです。

幸い、macOS 11.0はNeXTSTEPの遺産を維持しています。Mac App Store以外のアプリは、良くも(想像力と権限のダイアログによってのみ制約される新しいユースケース) 悪くも(他のアプリやあなたのファイルへのアクセス)引き続き許可されています。注目に値するのは、これが懸念されていたことでさえあったということです。iOS上でのAppleの最近の動き、特にSaaSアプリのアプリ内購入の必要性については、Xeroxの方へと押し流されているように感じます。金儲けに夢中になっている会社は、競合他社に未来のデモを提供していたことを無視していました。この強迫観念がMacにも波及するのではないかと心配になりました。

今のところ、答えはノーであり、それが楽観的な理由です。iPhoneによって推進されている途方もないハードウェアのイノベーションの上にオープン・プラットフォームがあると言うのは素晴らしいことだと思います。さらに、iPhoneによって作成されたグリーンフィールドからすべての最後のお金を絞り出すよりも、将来の成長のためのより信頼できるドライバであると主張できます(希望?)。少なくとも、まったく新しいものができる可能性を残したままにしておけば、iOSのように、より厳しく紐を引くよりも、はるかに多くの将来の選択肢を残しておくことになります。OS Xの遺産は今のところ生きています。

Hacker News