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

Darwin（ダーウィン）は、Appleが開発するオペレーティングシステム (OS) で、macOSやiOS、iPadOS、さらにはwatchOSとtvOS、bridgeOSの基礎となる部分でもある。 Darwinはオープンソース及びフリーソフトウェアとして公開されており、他のフリーなUnix系同様に特定のライセンス、Apple Public Source License (APSL) 下で入手、インストール、運用が可能であり、PowerPCベースのMacだけでなく、サポートされているハードウェアドライバの問題からハードウェア構成は限定されるが、Intel Macではないインテル機でも動作する。 しかし、この公開されていたソースコードでは当初Intel Macには対応していなかったためインテル製CPUに移行後はクローズドソースになるのではないかという臆測も流れたが、Intel Mac発売から半年後に対応のソースコードが公開された。 なお、2005年4月にリリースされた Darwin 8.0以降、インストール用CDイメージは公開されていないが、後継プロジェクトPureDarwinのサイトからダウンロードできる。 Darwinは技術的にはNEXTSTEPからOPENSTEPに続く流れを汲み、Mach 3.0+BSDをベースとするUnix系のオペレーティングシステム(OS)の中核部で、一部の機能は他のBSD系OSからも取り入れている。ほぼPOSIX互換だが、Darwin自体はPOSIXのどのバージョンにも準拠認定されたことはない。Leopard以降、macOSはSingle UNIX Specification version 3 (SUSv3)準拠の認定を受けている。 カーネルはXNUと呼ばれ、Machを採用してはいるものの、macOSを動作させる場合には複数のサーバを組み込む必要はない。またパフォーマンス上の問題が懸念されたため、Darwinカーネル自体にマイクロカーネル構造は採用されていない。 ドライバモデルには、I/OKitと呼ばれるオブジェクト指向のフレームワークを採用している。NEXTSTEPで採用されたDriverKitの後継のライブラリで、DriverKitのObjective-Cでの実装を機能限定版のC++での実装に置き換えたもの。開発ツールはXcodeに含まれる。 Darwin (macOS) を立ち上げると最初に起動し端末の初期化を行うプロセスはlaunchdというデーモンであり、他のUnix系システムのinitに相当する機能を担う。またinetd / xinetdと同じようにネットワークのポートを監視したり、cronのように指定時刻ごとにプロセスを立ち上げる機能も担当する（採用はDarwin 8.0から）。 DarwinにはCore FoundationなどCore Serviceの一部も含まれる。ただし、CocoaやCore Image（OpenGL、GLSL）やCore Audio (OpenAL) やOpenCLといったAPIのほか、HTMLレンダリングエンジン群のWebKitやXQuartzなどのGUI関連も含まず、Darwin単体の操作画面はCUIとなっている。 macOSの構造（2017年時点） Mac OS X 構造図表 Darwinは1989年に最初にリリースされた、NeXTのNeXTSTEP OS（バージョン4.0からはOPENSTEPとして知られる）に起源を持つ。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がある。 以下は主なDarwinのリリースと、それに対応するmacOS (Mac OS X / OS X) の表である。 対応する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のビルドバージョンが表示される。 Darwinはフリーソフトウェアであるため、修正や強化を目的とする多くのプロジェクトがある。 OpenDarwinはDarwinシステムをもとにしたコミュニティ主導のOSである。Appleの開発者とフリーソフトウェアコミュニティとの協調を高めることを目指して、2002年4月にAppleとInternet Systems Consortiumによって設立された。このプロジェクトはAppleによるDarwinのリリースに恩恵を与えたが、しかし独立したDarwin OSを作成する試みは達成できず、プロジェクトは停止した。 2007年、PureDarwinプロジェクトがOpenDarwinの後継としてはじまり、現在[いつ?]Darwin 9にもとづいたリリースの制作が進められている。「PureDarwin XMas」と呼ばれる、Darwin 9にもとづいたデベロッパープレビューが入手できる。このリリースはX11、DTrace、ZFSをもつ。「PureDarwin nano」は最小限のコンポーネントだけをもつ、別のリリースである。 XQuartzは、macOS (Darwin) 向けのX Window Systemの実装。前身はXDarwin。 GNUstepは、macOSのCocoaのインタフェースと同様、NeXTのOPENSTEPから派生。ウィジェット・ツールキットも含まれている。GNUstepのデスクトップ環境とするために開発されたウィンドウマネージャにWindow Makerがある。 Étoiléは、GNUstepをもとに開発されたデスクトップ環境。 WebKitは、macOSに搭載されるウェブブラウザ・Safariのレンダリングエンジン。 MacPorts（かつてのDarwinPorts）、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ファイルシステムなど。 [脚注の使い方] ^ “Kernel Architecture Overview”. Kernel Programming Guide. 2024年1月3日閲覧。 ^ “darwin-xnu/README.md at master”. GitHub. March 31, 2019時点のオリジナルよりアーカイブ。November 21, 2019閲覧。 ^ “Apple - Public Source - Darwin FAQ”. November 19, 2004時点のオリジナルよりアーカイブ。August 9, 2021閲覧。 ^ “Binary Drivers required for PureDarwin”. November 18, 2009時点のオリジナルよりアーカイブ。July 20, 2009閲覧。 ^ “Mac OS X Leopard - Technology - UNIX”. Leopard Technology Overview. Apple Inc.. December 27, 2008時点のオリジナルよりアーカイブ。2023年12月16日閲覧。 “Leopard is now an Open Brand UNIX 03 Registered Product, conforming to the SUSv3 and POSIX 1003.1 specifications for the C API, Shell Utilities, and Threads.” ^ The Open Group (May 18, 2007). “Mac OS X Version 10.5 Leopard on Intel-based Macintosh computers certification”. 2023年12月16日閲覧。 ^ “macOS version 10.13 High Sierra on Intel-based Mac computers”. The Open Group. 2023年12月16日閲覧。 ^ X is Not Unixの略とされる。 Porting UNIX/Linux Applications to Mac OS X: Glossary ^ 第4回 plist（プロパティリスト）とFoundation【後編】 - ITmedia 2007年05月30日 03時32分 公開 ^ web.archive.org/web/20161007041552/https://opensource.apple.com/static/iso/ ^ Hubbard, Jordan (October 31, 2007). "Re: Darwin 9.0 Source Code Available."". darwinos-users (Mailing list). 2008年2月25日時点のオリジナルよりアーカイブ。2007年11月27日閲覧。 ^ github.com/darwin-on-arm/xnu ^ "Darwin Releases." Apple Developer Connection. Retrieved on 2007-10-24. ^ "Technical Note TN2029: Mac OS X v10.1." Apple Developer Connection. Retrieved on 2008-06-02. ^ Siracusa, John (September 5, 2002). "Mac OS X 10.2 Jaguar." Ars Technica. Retrieved on 2008-05-31. ^ Siracusa, John (November 9, 2003). "Mac OS X 10.3 Panther." Ars Technica. Retrieved on 2008-05-31. ^ Siracusa, John (April 28, 2005). "Mac OS X 10.4 Tiger." Ars Technica. Retrieved on 2008-05-30. ^ Siracusa, John (October 28, 2007). "Mac OS X 10.5 Leopard: the Ars Technica review." Ars Technica. Retrieved on 2008-05-30. ^ Siracusa, John (August 31, 2009). "Mac OS X 10.6 Snow Leopard: the Ars Technica review." Ars Technica. Retrieved on 2009-11-29. ^ Prabhakar, Ernie (November 9, 2001). "Darwin Version - New Scheme in Software Update 1." Apple Mailing Lists. Retrieved on 2008-06-02. ^ OpenDarwin Core Team and Administrators (July 25, 2006). "OpenDarwin Shutting Down." OpenDarwin Project. Retrieved on 2007-04-16. ^ PureDarwin Download Page. ^ “Security Enhanced Darwin”. SEDarwin (2007年1月22日). 2010年7月12日閲覧。 ^ “What's New In Mac OS X: Mac OS X v10.5”. Mac OS X Reference Library. Apple (2009年11月13日). 2010年6月13日閲覧。 ^ “http://www.ertos.nicta.com.au/software/darbat/home.pml | ERTOS | NICTA”. Ertos.nicta.com.au (2007年5月9日). 2010年7月12日閲覧。 ^ yuriwho (2002年5月5日). “WirelessDriver Home Page”. Wirelessdriver.sourceforge.net. 2010年7月12日閲覧。 ^ “iwi2200 Darwin”. SourceForge (2009年3月27日). 2010年6月13日閲覧。 ^ “Port BSD tulip driver(s) to Darwin OS | Download Port BSD tulip driver(s) to Darwin OS software for free at”. Sourceforge.net. 2010年7月12日閲覧。 ^ “RealTek network driver for MacOSX/Darwin”. SourceForge (2006年3月15日). 2010年6月3日閲覧。 Project inactive since 2006-03-15. ^ fansui, et al. (2007年8月1日). “RTL8150LMEthernet”. SourceForge. 2010年6月13日閲覧。 ^ “ZyXEL Modem Drivers for OS X/Darwin | Download ZyXEL Modem Drivers for OS X/Darwin software for free at”. Sourceforge.net (2002年5月14日). 2010年7月12日閲覧。 ^ “Mac OS X PC Card ATA Driver”. Pccardata.sourceforge.net (2001年12月20日). 2010年7月12日閲覧。 ^ “Mac OS X Ext2 Filesystem | Download Mac OS X Ext2 Filesystem software for free at”. Sourceforge.net (2002年10月14日). 2010年7月12日閲覧。 ^ “ext2 filesystem in user space”. SourceForge (2008年7月14日). 2010年6月13日閲覧。 ポータル FLOSS AppleのOpen Sourceページ Darwin Releases Apple Public Source License Source Browser Mac OS Forge PureDarwin