LinuxでMac OS Xアプリケーションを実行する


13

このウィキペディアの記事によると:

OS Xは、Apple Inc.によって開発および販売されている一連のUnixベースのグラフィカルインターフェイスオペレーティングシステムです。

だから私は考えていました:

  • Wineに似たアプリケーションはありますが、Macアプリケーションを実行していますか?

  • LinuxマシンでMac OS Xアプリケーションを実行することは可能ですか?


2
唯一の方法は、OS X VMを作成することです(例:kvmまたはを使用Virtualbox)。残念ながら、これを行うとライセンスの問題が発生します-Appleは、Apple以外のハードウェアでOSを実行することを望んでいません。私は、彼らがOS XをDVDで販売することさえもうないと思います(あなたがMacでOS Xを手に入れ、彼らがそうするように言ったらインターネット経由でそれをアップグレードするはずです)。
cas

ありがとう!インストール前に仮想マシンを構成する必要がありますか?
0x0584

回答:


17

ダーリン(リンク)は、ワインに類似することを目的としたプロジェクトです。ただし、現在は一部のコマンドラインOSXプログラムのみが実行されます。2019年半ばの時点で、多くのコマンドラインプログラムを実行でき、ホームページによると、基本的なグラフィカルソフトウェアも実行できるようになっているようです。テキストベースでない限り、それはおそらくあなたが望むものをまだ実行しないでしょう。

OS Xプログラムの開発者がソースコードをリリースし、クロスプラットフォームライブラリ(QT、GTK、X11、GNUStep、WxWidgetsなど)を使用している限り、Linux用のOS Xプログラムを再コンパイルできます。OS XおよびLinuxは、ABIレベルよりもAPIレベルではるかに互換性があります。

GNUStepはNeXTStepとOS XのCocoa APIを実装します。私が試したとき、それはどれほど能力があるように見えたのか、どれだけ実際に使用しているように見えないのかという点で、驚くほど完全でした。GNUStepはソースコード(API)レベルでのみ機能するため、プログラムがオープンソースでAppleのCocoa GUI(独自仕様の「Aqua」ではない)を使用している場合に機能します。コードをコンパイルしてリンクできるかどうかに依存します。

API(アプリケーションプログラミングインターフェイス)を車のダッシュボードのようなものと考えてください。すべてが車のドライバーに表示され、他の人の車に乗り込んで、別のダッシュボードを簡単に見つけることができます。

ABI(アプリケーションバイナリインターフェイス)を車のエンジンと考えてください。メーカーやモデルによって大きく異なり、おそらくシェビーエンジンをボルボに簡単に交換することはできません。

ダーリングは、このアナロジーでボルボのシャーシにシボレーエンジンを配置し、ソースからコンパイルすることは、シボレーから出てボルボに入るようなものです。プログラマーの観点から見ると、一方は他方よりもはるかに簡単です。

しかし、Appleには、他にはない独自のユーザーインターフェイスライブラリがいくつかあります。開発者がこれらのいずれか(Aquaなど)を使用した場合、DarlingがWineのように成長することを待つか、自分で移植する必要があります。ソースコードがリリースされていない場合は、エンジンが大きすぎてボルボのエンジンベイに収まらない、またはボルボが後輪駆動である前輪駆動車に接続するように設計されているかのようになります。誰かが完全に狂気のマニアックであり(最善の方法で)、何ヶ月もの自由な時間とばかげた量の献身をしていなければ、それは起こりそうにありません。

さらに、Cocoa APIのカバレッジに関しては、GNUStepが100%完全ではないため、複雑なプログラムでは、まだある程度の靴磨きが必要になる可能性があります。また、GNUStepはxcodeと同等のビルドシステムを提供していません。つまり、元の開発者がXCode IDEの「ビルド」システムを排他的に使用した場合、そのためのmakefileを作成したままになる可能性があります。ソフトウェアのコンパイルとリンクの経験はあるものの、これまでバックエンドの経験がなかった.xcodeprojのような形式から有用な情報に取り組むのは難しいので、これは私にとって最も苛立たしい部分でした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.