Darwin (オペレーティングシステム)

Darwinは、Appleが開発するオペレーティングシステム  で、macOSやiOS、iPadOS、さらにはwatchOSとtvOS、bridgeOSの基礎となる部分でもある。

1. 概要
-----

Darwinはオープンソース及びフリーソフトウェアとして公開されており、他のフリーなUnix系同様に特定のライセンス、Apple Public Source License  下で入手、インストール、運用が可能であり、PowerPCベースのMacだけでなく、サポートされているハードウェアドライバの問題からハードウェア構成は限定されるが、Intel Macではないインテル機でも動作する。

しかし、この公開されていたソースコードでは当初Intel Macには対応していなかったためインテル製CPUに移行後はクローズドソースになるのではないかという臆測も流れたが、Intel Mac発売から半年後に対応のソースコードが公開された。

なお、2005年4月にリリースされた Darwin 8.0以降、インストール用CDイメージは公開されていないが、後継プロジェクトPureDarwinのサイトからダウンロードできる。

2. テクノロジー
---------

Darwinは技術的にはNEXTSTEPからOPENSTEPに続く流れを汲み、Mach 3.0+BSDをベースとするUnix系のPOSIXに準拠したオペレーティングシステムで、一部の機能は他のBSD系OSからも取り入れている。

カーネルはXNUと呼ばれ、Machを採用してはいるものの、macOSを動作させる場合には複数のサーバを組み込む必要はない。またパフォーマンス上の問題が懸念されたため、Darwinカーネル自体にマイクロカーネル構造は採用されていない。

ドライバモデルには、I/OKitと呼ばれるオブジェクト指向のフレームワークを採用している。NEXTSTEPで採用されたDriverKitの後継のライブラリで、DriverKitのObjective-Cでの実装を機能限定版のC++での実装に置き換えたもの。開発ツールはXcodeに含まれる。

Darwin  を立ち上げると最初に起動し端末の初期化を行うプロセスはlaunchdというデーモンであり、他のUnix系システムのinitに相当する機能を担う。またinetd / xinetdと同じようにネットワークのポートを監視したり、cronのように指定時刻ごとにプロセスを立ち上げる機能も担当する。

DarwinにはCore FoundationなどCore Serviceの一部も含まれる。ただし、CocoaやCore ImageやCore Audio  やOpenCLといったAPIのほか、XQuartzなどのGUI関連も含まず、Darwin単体の操作画面はCUIとなっている。

3. 歴史
-----

Darwinは1989年に最初にリリースされた、NeXTのNeXTSTEP OSに起源を持つ。1997年のAppleによるNeXTの買収後、次期のOSはOPENSTEPをベースに開発されることがアナウンスされた。これは同年にRhapsodyとなり、1999年には、Mac OS X Server 1.0、2000年には、Mac OS X Public Beta、そして2001年にはMac OS X 10.0に開発された。Mac OS Xのコアコンポーネントは、Apple Public Source Licenseの下、Darwinとしてオープンソースでリリースされているが、CocoaやCarbonのようなより高次のコンポーネントはクローズドソースのままとなっている。

Darwin 8.0.1までのバージョンでは、Appleは、ISOイメージの形でバイナリインストーラーを提供していた。これはMac OS Xのメジャーリリース後に、PowerPCとIntel x86システムでDarwinをスタンドアロンのOSとしてインストールできるものであった。Darwinは現在、ソースコードとしてのみ利用できる。ただしこれは、ARMアーキテクチャによるものを除いてであり、ARM向けDarwinはiOS、watchOS、tvOSから分離されてはリリースされていない。ただし、趣味的な開発者が公式のDarwinのソースコードをARMにポートした//winocm//がある。

4. リリース履歴
---------

以下は主なDarwinのリリースと、それに対応するmacOS  の表である。 対応するmacOSは異なる日にリリースされたかもしれないことに留意し、それらのリリース日についてはmacOSの個別ページを参照。

Mac OS X v10.1.1のリリースで、バージョン番号がDarwin 1.4.1から5.1へ飛んでいるのは、DarwinをmacOSのバージョンとビルド番号の体系に結びつけたためである。macOSのビルド番号の体系では、すべてのバージョンが固有のビルド番号ではじまり、macOSのバージョンの全体の中のどの部分であるかわかるようになっている。Mac OS X v10.0は4ではじまるビルド番号があり、10.1には5ではじまるビルド番号があった。Darwinのバージョンにあるピリオド以下の番号は、Mac OS Xのバージョンにある二つめのピリオド以下の番号とおなじである。Mac OS X v10.1.1の場合は、ビルド5M28および10.1.1リリースであり、バージョン番号の5.1はこれに由来する。

ターミナルでuname -rのコマンドを実行するとDarwinのバージョン番号が表示され、uname -vとするとDarwinのバージョン番号をふくんだXNUのビルドバージョンが表示される。

5. 派生プロジェクト
-----------

Darwinはフリーソフトウェアであるため、修正や強化を目的とする多くのプロジェクトがある。

5.1. OpenDarwin
---------------

OpenDarwinはDarwinシステムをもとにしたコミュニティ主導のOSである。Appleの開発者とフリーソフトウェアコミュニティとの協調を高めることを目指して、2002年4月にAppleとInternet Systems Consortiumによって設立された。このプロジェクトはAppleによるDarwinのリリースに恩恵を与えたが、しかし独立したDarwin OSを作成する試みは達成できず、プロジェクトは停止した。

5.2. PureDarwin
---------------

2007年、[1]プロジェクトがOpenDarwinの後継としてはじまり、現在date=2013年6月}}Darwin 9にもとづいたリリースの制作が進められている。「PureDarwin XMas」と呼ばれる、Darwin 9にもとづいたデベロッパープレビューが入手できる。このリリースはX11、DTrace、ZFSをもつ。「PureDarwin nano」は最小限のコンポーネントだけをもつ、別のリリースである。

5.3. その他
--------

XQuartzは、macOS  向けのX Window Systemの実装。前身はXDarwin。
GNUstepは、macOSのCocoaのインタフェースと同様、NeXTのOPENSTEPから派生。ウィジェット・ツールキットも含まれている。GNUstepのデスクトップ環境とするために開発されたウィンドウマネージャにWindow Makerがある。
Étoiléは、GNUstepをもとに開発されたデスクトップ環境。
MacPorts、Fink、HomebrewはUNIXプログラムをDarwin OSに移植し、パッケージ管理を提供する、よく知られたプロジェクトである。さらに、RPM、pkgsrc、Portageなどいくつかの標準的なUNIXパッケージ管理システムもDarwin portsをもっている。これらの中にはベースとなるシステムに干渉しないよう、独自の名前空間で動くものもある。
GNU-DarwinはフリーソフトウェアのパッケージをDarwinに移植するプロジェクトである。
DarwineプロジェクトはWineの移植で、Microsoft WindowsソフトウェアをDarwin上で実行できるようにする。
SEDarwinはTrustedBSDの強制アクセス制御フレームワークと、SELinuxフレームワークの一部をDarwinに移植する これはMac OS X v10.5に組み込まれた。
DarbatプロジェクトはL4マイクロカーネルへのDarwinの実験的な移植である。既存のDarwinバイナリと互換であることを目指している。
ドライバのサポートに主眼を置いたさまざまなプロジェクトがある。ワイヤレスドライバ、有線NICドライバ、モデムドライバ、カードリーダ、ext2やext3ファイルシステムなど。

6. 脚注
-----

7. 外部リンク
--------

[2]
[3]
[4]
[5]
[6]
[7]