macOS (左) と Linux (右) でデモされたシンプルな「HelloWorld」Cocoa アプリ | |
| 原作者 | ルボシュ・ドレゼル |
|---|---|
| プレビューリリース | 0.1.20220213 / 2022年2月13日 |
| リポジトリ | github.com/darlinghq/darling |
| オペレーティング·システム | リナックス |
| タイプ | 互換性レイヤー |
| ライセンス | 各種、主にGPLv3 |
| Webサイト | darlinghq.org |
DarlingはLinux用の無料かつオープンソースのmacOS互換レイヤーです。[1] macOSプログラムが呼び出すライブラリやフレームワークの代替実装を提供することで、macOSの機能を複製します。 [2]この複製方法は、macOSプログラムが仮想マシンで実行されるエミュレーションとも考えられる他の方法とは異なります。[3 ] DarlingはmacOSアプリを実行するためのWINEのカウンターパートと呼ばれています。 [4]
このプロジェクトは2012年の夏に始まり、時間不足のため中止されたmaloaderという以前のプロジェクトを基に構築されています。このレイヤーは、 Midnight Commander、The Unarchiver、Pythonなどの多くのコンソールアプリで動作することが示されていますが、 Cocoaフレームワークに基づくグラフィカルアプリケーションも基本的にサポートしています。 [6] [1] Darlingには、 Appleディスクイメージを抽出する機能があります。[7]
このプロジェクトは将来的にiOSアプリケーションをサポートすることを目指している。 [8]
建築
Darlingシステムの入り口には、Appleのオペレーティングシステムの実行形式であるMach-Oバイナリのローダーがあります。 Darlingの前身であるmaloaderは、Appleの動的ライブラリローダーdyldが行うことすべてを再現しようとすることで、問題に対する最大主義的なアプローチを提示しました。 これは困難であることが判明し、2017年の「Mach-O移行」以来、Darlingは代わりにオープンソースのApple dyldを起動するのに十分な軽量ローダーを使用しています。[9]
macOS バイナリにカーネルを提供するために、 Darling は修正されたXNUカーネル (APSL ライセンス) をGPL ライセンスのLinuxカーネル モジュールにラップして使用します。 [更新が必要]これは APSL ソフトウェアに GPL コードを含めることとは異なり、APSL ライセンスでは異なるライセンス (この場合は GPL) のコードからのリンクが許可されます。このモジュールはMach カーネルの典型的なジョブ、主にポートIPC処理を処理します。[10] darling-mach モジュールにはライセンスの問題がいくつか存在します[引用が必要] 。これはチームがAPSLカーネルにGNU GPL の変更を追加しているためです。[11] [検証に失敗]
カーネルより上位にあるのはルート環境です。 Darling は WINE と同様に、Linux overlayfs を使用して実装されたchrootプレフィックスをサポートしています(WINE のパス変換とは対照的です)。PID 、IPC、および UTS 名前空間は、内部の Darwin システム用の コンテナーを作成するために使用されます。
Darlingのフレームワークとシステムライブラリは、可能な限り、 Appleがリリースしたソースコードに基づいています。Mach-Oへの移行により、これらのフレームワークは、本来意図されていたMach-O形式で構築されるようになったため、より簡単に構築できるようになりました。[9] Cocoaなどの多くの高レベルフレームワークのギャップを埋めるために、DarlingはCocotron、ApportableFoundation、GNUstepのコードを使用しています。[1]
ライセンス
より大きなDarlingシステムは、さまざまなライセンスを使用する多くの外部コンポーネントに基づいていますが、それらはすべてオープンソースです。主なライセンスはGPLv3です。[12]
外部リンク
- https://www.darlinghq.org/
- https://github.com/darlinghq/darling
参考文献
- ^ abc "Darling |". www.darlinghq.org . 2022年6月16日時点のオリジナルよりアーカイブ。2022年6月17日閲覧。
- ^ “You Can Now Use 'Darling' to Run macOS Software on Linux | iPhone in Canada Blog”. 2020-10-05. 2022-06-17時点のオリジナルよりアーカイブ。 2022-06-17に閲覧。
- ^ González, Diego Germán (2021-10-31). 「LinuxでMacOSプログラム? Darlingを使えば可能です」。Linux Adictos 。 2022年6月17日閲覧。
- ^ Brodkin, Jon (2013年8月6日). 「Macソフトウェア用のWineのようなエミュレーターを使用して、LinuxでOS Xアプリを実行」Ars Technica . 2014年1月23日閲覧。
- ^ Lynch, Jim. 「Darling を使って Linux で OS X アプリを実行できるようになるでしょうか?」InfoWorld . 2018 年 7 月 23 日閲覧。
- ^ 「Darling、Linux上のmacOS互換レイヤーに新たな貢献者を採用」www.phoronix.com。2022年6月17日時点のオリジナルよりアーカイブ。 2022年6月17日閲覧。
- ^ 「ソフトウェアのインストール - Darling Docs」。docs.darlinghq.org 。2022年1月27日閲覧。
- ^ Heath, Nick (2013 年 7 月 15 日)。「OS X アプリが Darling プロジェクトのおかげで Linux に登場」ZDNet。2014年1 月 23 日閲覧。
- ^ ab Bugaev, Sergey (2018年7月24日). 「Mach-Oのリンクとロードのトリック」 。 2020年1月12日閲覧。
- ^ 「ビルド手順」。Darling。 2020-01-21 にオリジナルからアーカイブ。2020-01-12に取得。
Darling はカーネル モジュールを使用して、主に Mach Ports IPC などの特定の OS X 固有の機能を提供します。 Libc は初期化や sleep() などの非常に基本的な機能にも Mach Ports を必要とするため、このモジュールなしでは OS X アプリケーションを実行できません。
- ^ 「問題: APSL に基づく Apple のコードは GPL と互換性がありません」。GitHub。2020年1 月 12 日閲覧。
- ^ “Darling”. GitHub . 2021年10月16日.
