Apple OS-XオペレーティングシステムはUNIX派生(BSD)であり、基盤となる(Intel)Macアーキテクチャは同じであるため、Apple固有のアプリケーションを入手するのは非常に簡単ではありません。 Linuxで実行していますか?
OS Xは、実際には(ほとんど)BSD上にある独自のグラフィカルシェルです。 OS X GUIアプリケーションを作成するには、Appleが公開しているAPIに従う必要があります。したがって、これはクロスプラットフォームではなく、簡単に移植できません。
そのため、ほとんどのライブラリはLinuxに簡単に移植できます(実際にはほとんどがLinuxで開発されています)が、ではありませんグラフィカルシェル。
補足:クロスプラットフォームのGUIアプリケーションを作成できるフレームワークがあります。 Qt 頭に浮かぶ。しかし、これらのフレームワークがクロスプラットフォームであるという事実により、それらを使用して作成されたアプリケーションは、「ネイティブ」GUIアプリケーションよりも特定のプラットフォームでのユーザーフレンドリーではなくなります。これらのフレームワークは、プラットフォーム間ですべてが一般的に見える傾向があります。Appleは悪いです。なぜなら、Appleは、簡単ではない非常に特殊なユーザーエクスペリエンスを作成したからです。 "他のプラットフォームに適合します。
編集(コメントを回答に組み込むために-@ Nick、@ kbisset、@ Johnに感謝します):
解決策は、OS Xグラフィカルシェル全体(クローズドソースのCocoa/Coreライブラリ-これがOS Xを真にユニークなものにしている)をLinuxに移植することです。そして技術的には、Appleはそれを非常に簡単に行うことができますが、ビジネスモデル全体がプラットフォーム全体(ハードウェアとソフトウェア)の独自性であるため、そうする理由はありません。
誰かがライブラリのクローンを作成しようとする可能性は考えられますが、それを行うには数十年かかり、文書化されていないすべての呼び出しを複製する必要があるため、おそらく正しくありません。
Apple固有のアプリケーションとは、GUIアプリを意味しますか?コマンドラインの上に移動すると、Linuxでサポートされていないすべて(グラフィック、サウンドなど)に固有のAPIがApple)あるため、アプリケーションを簡単に移植することはできません。
グラフィックレイヤーはまったく同じではありません。 OS Xは独自のグラフィカルフレームワークを使用し、LinuxはX(X11/X.org)を使用します
ほとんどすべてのネイティブOSXアプリケーションは、Cocoa、CoreAnimationなどのフレームワークを使用します。これらはOSXでのみ使用できます。
たとえば、ユーザーのパスワードを保存するアプリケーションがあるとします。OSXでは、キーチェーンシステムと関連するAPIを使用します。これをLinuxに移植する場合、直接同等のものはないため、この機能全体を再実装する必要があります。これは小さな機能であり、大規模な書き換えが必要になります。
GTK、Qt、wxWidgetsなどのクロスプラットフォームのGUIライブラリを使用してアプリケーションを作成すると、移植がはるかに簡単になります(または「可能」になります)が、オペレーティングシステムはUI(OSなど)の点で大きく異なります。 Xは個別のメニューバーを使用しますが、Linuxはウィンドウごとにメニューバーを使用する傾向があります)
私が見た中で最高のクロスプラットフォームポートの1つは Transmission です。これは、その主な機能をライブラリ(プラットフォーム固有のコードをできるだけ少なく含む)として実装し、各プラットフォームのネイティブGUIを作成します。 、 別々に。これは、各ポートが多くのコードを共有していることを意味しますが、すべてに優れたネイティブインターフェイスがあります(Linuxにはうまく適合しますが、OS Xには適していない、またはその逆の単一のインターフェイスではありません)。
Cocotron というプロジェクトがあります。これは「Apple Inc.のCocoaドキュメントで説明されているものと同様のクロスプラットフォームのObjective-CAPIを実装することを目的としています」移植がはるかに簡単になる可能性がありますが、最近の活動はほとんどないようです(最後のブログ投稿は2008年12月でした)
ほとんどのアプリケーションは、それらが実行されているマシンのプロセッサと基盤となるアーキテクチャよりもはるかに多くに依存しているためです。また、ユーザーインターフェイスツールキットやその他のプラットフォーム固有のライブラリにも依存しています。