OPENSTEP

OPENSTEP(オープンステップ)とは



OPENSTEPは、オペレーティングシステムソフトウェアの仕様、およびNeXT Softwareが開発した製品の名称です。元々、先進的な設計で評価の高かったNEXTSTEPから、Machカーネルを分離し、上位のフレームワーク層を整理して生まれたものです。特に、FoundationとAppKitというフレームワークが中核を成しています。

1994年9月には、サン・マイクロシステムズとの共同開発により「OPENSTEP Enterprise」として公開されました。これはSolarisHP-UX、Windows NT上で動作し、ソースコードレベルでのクロスプラットフォームを実現しており、基本的に再コンパイルのみでソフトウェアの移植が可能でした。また、従来のNEXTSTEPは「OPENSTEP for Mach」としてアップデートされました。

現在のmacOSやiOSのCocoa、Windows版WebObjectsに付属する開発実行環境は、OPENSTEP直系のフレームワークです。また、有志によって開発されたクローンであるGNUstepも存在し、X11やWindows NTで動作します。さらに、Javaのクラス設計にもOPENSTEPの影響があると言われており、普及こそしなかったものの、その影響は小さくありません。

歴史



サン・マイクロシステムズワークステーションは、当初、UnixオペレーティングシステムやSunViewウィンドウシステムツールキットを直接呼び出す形でプログラミングされていました。そのため、簡単なプロジェクトでも複雑なプログラミングが必要でした。1980年代半ばには、オブジェクト指向プログラミングモデルでこの問題に対処しようとしましたが、APIの複雑さやパフォーマンスの低さから、実際にはほとんど使用されず廃止されました。

その後、サンは代替案を模索し始め、TaligentマイクロソフトのCairoプロジェクトを検討しました。しかし、Taligentの理論的な新しさは、成熟したNeXTのプラットフォームと比較されることが多く、サンはNeXTと提携してOpenStepを開発することを決定しました。この決定は、「TaligentとCairoに対する先制攻撃」と見なされました。1993年の提携には、サンからNeXTへの1,000万ドルの投資が含まれていました。

OpenStepの基本的なコンセプトは、NeXTSTEPのオブジェクトレイヤーを縮小し、SunのSolarisオペレーティングシステムで実行できるように適応させることでした。OpenStepの取り組みの大部分は、MachやNeXT固有のハードウェアに依存するNeXTSTEPの部分を取り除くことでした。その結果、Display PostScript、Objective-Cランタイムとコンパイラ、およびNeXTSTEP Objective-Cライブラリで構成される小規模なシステムが生まれました。しかし、基本的なオペレーティングシステムや低レベルの表示システムは含まれていませんでした。

1994年半ばに、NeXTはAPIの最初のドラフトを公開し、その年の後半には、OpenStep準拠のNeXTSTEPバージョンをOPENSTEPとしてリリースしました。また、OpenStepの仕様をオブジェクト標準化団体に提出しました。1994年9月に公開された公式のOpenStep APIは、APIをFoundationとApplication Kitに分割した最初のものであり、「NS」プレフィックスの使用もここから始まりました。一方、初期のNeXTSTEPは「NX」プレフィックスを使用し、低レベルのデータ構造に標準のUnix libcタイプに依存したApplication Kitのみを含んでいました。

OPENSTEPは、1997年にNeXTがApple Computerと合併するまで、NeXTの主力製品であり続けました。その後、OPENSTEPは既存のClassic Mac OSの技術と統合され、Mac OS Xが誕生しました。iPhoneとiPadのiOSもOPENSTEPの後継ですが、タッチデバイスを対象としています。

当初、サンはOpenStep環境を、CORBA準拠のオブジェクトシステムであるSolaris NEOを補完するために採用しました。この移植では、OpenStep AppKitをSun X11サーバーのDisplay PostScript層に統合し、AppKitをマルチスレッドコードに対応させ、Machポートの動作をシミュレートするSolarisデーモンを実装しました。また、NeXTのObjCランタイムを使用してObjective-CをサポートするようにSunPro C++コンパイラを拡張し、NeXTSTEPのルックアンドフィールを可能な限り実装するX11ウィンドウマネージャーを作成しました。さらに、Project BuilderやInterface Builderなどの開発ツールをSunProコンパイラに統合しました。完全なエンドユーザー環境を提供するために、サンはMail.app、Preview.app、Edit.app、Workspace Manager、Dockなど、いくつかのエンドユーザーアプリケーションのNeXTSTEP-3.3バージョンも移植しました。

製品のOpenStepとCORBA部分は後に分割され、NEOは1995年後半にOpenStep環境なしでリリースされました。1996年3月、サンはNEOとJavaを統合する製品であるJoeを発表しました。サンは1996年7月22日にSolaris用のOpenStep環境のベータリリースを出荷し、1996年8月に非商用目的で無料でダウンロードできるようにし、1996年9月に販売を開始しました。OpenStep/SolarisSPARCアーキテクチャ専用に出荷されました。

解説



OpenStepは、NeXTSTEPといくつかの点で異なります。まず、NeXTSTEPはオペレーティングシステムであるのに対し、OpenStepはAPIです。また、NeXTSTEPとは異なり、OpenStepではMachカーネルは必須ではありません。さらに、NeXTSTEPの各バージョンには特定のエンディアンがありますが、OpenStepはエンディアンフリーです。OpenStepでは、新しいクラスとメモリ管理機能が導入されています。

OpenStep API仕様では、Foundation Kit、Application Kit、Display PostScriptの3つの主要コンポーネントが定義されています。

OpenStepの構築



OpenStepの標準化により、OPENSTEPプラットフォームで提供されるいくつかの新しいライブラリパッケージも作成できるようになりました。これらのパッケージは、実質的にすべてのオペレーティングシステムでスタンドアロンで実行できるように設計されており、異なるプラットフォームで実行されるネットワーク全体のアプリケーションの基盤として使用されることを目的としています。

これらのパッケージの中で最も重要なのは、Portable Distributed Objects (PDO)です。PDOはOpenStepの「簡素化された」バージョンであり、Foundation Kitテクノロジーのみを含み、新しいライブラリと組み合わせて、非常に少ないコードでリモート呼び出しを提供します。PDOは、アプリケーションが実行されるオペレーティングシステムを定義するOpenStepとは異なり、ライブラリがアプリケーション自体にコンパイルされ、特定のプラットフォーム用のスタンドアロンの「ネイティブ」アプリケーションを作成します。

また、同様のD'OLEは、COMオブジェクトとしてサービスを提供し、プログラマーがMicrosoft Windowsアプリケーションから呼び出されるCOMサービスを作成できるようにしました。たとえば、D'OLEを使用して高性能な財務モデリングアプリケーションを開発し、それをMicrosoft Excel内から直接呼び出すことができます。PDOにより、NeXTは、Microsoft自身がこの機能(DCOM)を実装する前に、ネットワークを介してExcelが他のMicrosoftアプリケーションと通信することを実証することができました。

さらに、OpenStepで開発されたもう1つのパッケージは、オブジェクト関係マッピング製品であるEnterprise Objects Framework (EOF)です。

実装



OpenStepは、以下の形で様々な実装が行われました。

OPENSTEP for Mach
Solaris OpenStep
OPENSTEP Enterprise
Rhapsody, Mac OS X Server 1.0
Darwin, Mac OS X 10.0 とそれ以降
GNUstep

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。