BSDがLinux(および他のUnixファミリー)バイナリを実行することを許可しますが、Linux(および他のほとんどのUnixファミリ)バイナリはBSDバイナリを実行できないのですか?
答え1
市場勢力。
*BSD用のプログラムより特別にLinux用のプログラムが多くあります。多くのソフトウェアソースコード両方でコンパイルできるだけの移植性は十分ですが、Linuxバイナリを提供する多くのソフトウェアメーカーは、あまりにも怠惰な残りのBSDについてはそうしません。全体的に、市場シェアはLinuxよりも小さい。^
ソフトウェアの一部がさまざまなオペレーティングシステムでバイナリ形式でのみ利用可能である場合、ABIエミュレーションはこれを機能させる1つの方法であり、BSDが実行するのと同じです。
昔、x86 UnixがLinuxと比較して市場の大部分を占めたとき、iBCSこの機能は、SCO Unixなどのために構築されたバイナリを実行できるようにLinuxに追加されました。 Linuxの市場シェアが増加するにつれて、この機能への関心が減り、Linuxが壊れてしまいました。Linux 2.3開発シリーズのうち.³のSCO訴訟この機能をLinuxにインポートするのに役立ちましたが、この機能を生み出した市場支配力の喪失による副次的な問題だと思います。
LinuxがいつかBSDバイナリを実行するためのiBCSのような機能を得られない技術的な理由はありませんが、何らかの理由でBSDとLinuxの市場位置が変わらない限り、その可能性はありません。
今日、そのようなことが必要な場合はほとんどありません。 Linux用に構築されていないBSD純粋なバイナリプログラムはいくつありますか?明らかにいくつかありますが、ほとんどは組み込みBSD用のようです。ジュノース。重要なプログラムセットがLinuxで実行されることを許可されていない場合(そうでなければ実行できない)、これらの機能は生成されません。 ⁴
脚注:
ここでは、OS X を BSD とは見なしていません。これは別のバイナリ互換性の問題であるためです。 FreeBSD、OpenBSD、NetBSDの使用非常に低い周波数x86では、OS Xが使用している間全く異なる実行可能ファイル形式。動的接続図全く違う既存のx86 BSDよりもOS Xで。
バラよりこの問題Linux ⇔ OS X バイナリ互換性ストーリーの詳細をご覧ください。
そして特定種のサメ、進むことを停止するソフトウェアは死ぬ。私たちはこの現象をビット腐敗ソフトウェアの窒息現象が発生するのではなく、原因と結果は同じです。
比較済みNDISラッパーこれにより、LinuxはWindows XP用に作成された純粋なバイナリネットワークカードドライバを実行できます。要件が識別され、要件が満たされます。 BSD専用バイナリをどこで実行する必要がありますか?