Copland

Copland Project（コープランド・プロジェクト）は、1994年にAppleが発表したMacintosh用次世代オペレーティングシステムの開発コードネーム。System 8（後に発売されたMac OS 8とは別）として1995年に発売される予定であった。開発は難航し1996年に当時のCEOであるギル・アメリオと、彼がナショナル セミコンダクターから引き抜いたCTOのエレン・ハンコックの調査・判断によりプロジェクトは中止された。 1988年3月にAppleの技術マネージャー達が今後のMac OSの開発計画を策定した。カラー化の様な短期的に達成が可能なアイデアを青いインデックスカードに、マルチタスクといった中長期的な目標をピンクのインデックスカードに、そして実現が難しそうな物を赤色のインデックスカードにまとめた。これを元に、既存のOSを改修するBlueチームと、新OSを開発するPinkチームとの2つのプロジェクトに分かれてそれぞれ開発が行われた。当初は1990年から1991年にかけてBlueチームが既存のOSのアップデートをリリースし、93年頃にPinkチームが新OSをリリースする予定であった。 Blueチームは1991年5月13日にSystem 7を発表したが、一方のPinkチームは仕様が巨大化してしまい収拾がつかなくなる、所謂セカンドシステム症候群によって遅々として開発が進まずにいた。同年10月2日にIBMとAppleの連携が発表され、その契約の1つとして合弁会社「Taligent」が設立され、Pinkを元にオブジェクト指向型の次世代OSの開発を行うこととなった。この連携はハードウェア的には成功し、RISC型CPUのPowerPCの開発が行われ新しいMacintoshに搭載された。しかし、ソフトウェア的には失敗し、OSの開発は停滞した。事実上IBMが主導して開発することとなり、Appleの手を離れたTaligent OSはフレームワークCommonPointと姿を変えていった。1995年12月には提携の解消に至った。 その間にもSystem 7は既に基本設計が古く様々な部分で限界が見えていた（Classic Mac OSの初版リリースは1984年）。問題点として指摘されていたのは、「メモリ保護の欠如」「プリエンプティブマルチタスク機構の欠如」、「サードパーティーの基幹部分への機能拡張によるシステムの不安定化」、などが挙げられていた。これらの理由からシステムは非常に不安定なものとなり、クラッシュが頻発することとなった。さらに、PowerPC搭載モデルのPower Macintosh登場以降もOSコアの部分に残る68K時代のコードによる制約があり、PowerPCのスペックを十分に生かし切れないどころか、それが原因となったクラッシュも多発した。 旧来のMac OSの技術が陳腐化し、さらに次世代OSの開発が停滞する間にも、Appleの創業者であるスティーブ・ジョブズ率いるNeXTによって開発されたNeXTSTEP、 マイクロソフトのWindows NT、サン・マイクロシステムズのSolarisなど、メモリ保護機構やプリエンプティブマルチタスクを備えた堅牢な次世代OSが市場を席巻しはじめていた。 以上の背景から、次世代OSの開発の必要性に迫られ、当時の開発責任者のデビッド・ネーゲル上級副社長が中心となり、1994年に正式にCopland計画がスタートした。 発表された計画によれば、 Nukernelと呼ばれるマイクロカーネルを採用したモダンなメモリ管理機構 完全なプリエンプティブ 先進的なオブジェクト指向環境 新しいルックアンドフィール 旧Systemとの完全な上位互換性 など、様々な新要素が約束されていた。アピアランスマネージャを搭載し、テーマファイルを切り替えるだけで外観を大胆に変えることができる機能も発表されていた。この他にNewtonテクノロジーの融合やOpenDocによるドキュメント環境の改革などが挙げられていた。 なお、CHRP（Common Hardware Reference Platform; AIX, Windows NT, Mac OSなどの複数OSを実行可能なPowerPCハードウェアの構想）は本来Coplandを意識して開発されたものである。 最初にアナウンスされたのは1995年の3月で、同年5月のWWDCでは1995年中には開発版の配布が始まり、1996年の初旬には正式版がリリースされると発表された。さらにその翌年の1997年には次期大型メジャーアップデートGershwinが登場すると発表されていたが、どれも実現することはなかった。 1995年11月17日にApple社内で完成パーティが開催されたが、開発担当副社長のアイク・ナッシの発言とは裏腹に、1997年半ばまで出荷されることはないと報道された。結局1995年内に開発版の配布は行われることはなかった。 1996年2月にギル・アメリオが新CEOに就任した。彼は当時Appleにあった300の開発案件を整理統合して50にまとめるなど、当時ほとんどマネジメントがされていなかったAppleの開発現場を立て直そうとした。1996年2月21日、MACWORLD Expo/Tokyoにて、開発担当者のデビッド・ネーゲル上級副社長が、日本語環境のデモを披露したが、その時も開発版が配布されず、同年4月に彼は辞任した。 1996年5月、Appleは「Worldwide Developers ConferenceでCoplandを『Mac OS 8』として発売する」と発表した。しかし、期待されていたベータ版の配布は行われず、基調講演でアメリオが新しいFinderのデモを見せる程度で終わってしまった。この頃、Coplandは各モジュールがばらばらに開発されている状態で、OSとして組み上げられないという悲惨なものであった。また、Gershwinは名前とコンセプトの触れ込みだけで、開発はまったく手をつけられていなかった。 7月にナショナル・セミコンダクターから引き抜いたエレン・ハンコックにCTOの権限を与え、泥沼化したCoplandプロジェクトの収拾に当たらせた。その結果、Coplandのマルチタスク環境は暫定的なものとなり、プリエンプティブに動作するのは、バックグラウンドタスクのみとのことだった。また、メモリ管理機構もSystem 7の改良版に留まりモダンOSと呼ぶには程遠いものとなった。この状況を調べ上げたCTO兼上級副社長のエレン・ハンコックは、Coplandが完成する見込みがないと早々に判断を下した。IBMやノベルの撤退でOpenDoc計画も中止となった。そしてネーゲルの後任であったCopland開発担当者のアイク・ナッシ上級副社長も11月に辞任した。 予定されていたCoplandの機能は、1年ごとに「Tempo」「Allegro」「Sonata」（いずれも開発コード）として少しずつリリース、その合間にマイナーアップデートを提供すると発表、翌1997年1月に、「Mac OS」という呼称を初めて公式に採用したSystem 7.5のマイナーアップデート版「Mac OS 7.6」が発売された。その間Copland技術のうち転用が可能な部分は順次Mac OS 8、9などに応用された。ファイルシステムのHFS+や、アピアランス・マネージャ（ただしプラチナ以外のアピアランスは搭載されず、アピアランスの切り替え機能はあえて使えなくされていた）、キーチェーンなどがこれにあたる。そのうちいくつかの機能は現在のmacOSにも引き継がれた。しかしこれらの機能は、本来Copland用の新しい概念のために設計された技術であり、Mac OS 8 / 9では完全に性能を生かしているとはいいがたかった。 Copland計画を白紙に戻したアメリオとハンコックは、次期Mac OSとなる新たなOSを外部から調達することを決定する。計画中止後、AppleはNeXTを買収し次世代OS計画を "Rhapsody" へと移行させる。後に "Rhapsody" 計画は変更され、代わりにMac OS Xの計画が発表される。"Rhapsody"自身は暫定的にMac OS X Server 1.0 としてリリースされた。 Pinkプロジェクトから遡れば1990年代の初頭からすでに開始されており、実に6年にも亘って開発が行われた。しかし、様々な要因から開発は迷走をつづけた。その原因には以下のような要素が挙げられる。 度重なる最高経営責任者の解任などApple経営上層部の混乱 既存のToolbox APIが68000に強く依存しており、上位互換を保つ事が技術的に非常に困難であった 開発チームやATGの連携がほとんど行われておらず、個々のチームがバラバラにそれぞれの要素を開発していた 例として、QuickDraw GXとPostScriptが両立せず、後から作られたQuickDraw 3Dを入れると不安定になるなど 営業サイドからの過大な要求を取り入れたことによって、計画が際限なく肥大化していった 技術マネージャー側も計画を精査することなく、次々と新機能の開発にゴーサインをだしてしまい、リソースが発散してしまった 既にメモリ保護やプリエンプティブを搭載したWindows NTがリリースされていた市場からの圧力 Coplandとは別に、IBMとともにTaligentやKaleidaプロジェクトという別OSの開発計画を併行させ、開発者や経営陣が分散・対立・混乱した NewtonやGeneral Magicなど、別OS/デバイスの開発計画を併行させ、Macの主要開発者が離散したこと 完全なシングルタスクを前提としておりリエントラントにすることが難しかったToolbox API