ダーウィンには他のUnixにはない機能があり、その逆の場合もありますか?

ダーウィンには他のUnixにはない機能があり、その逆の場合もありますか?

ダーウィンはユニークな特徴を持っていますか?他のUnixにはDarwinにない機能はありますか?

答え1

OS Xは今残った唯一のオペレーティングシステムだ。マッハマイクロカーネルベースそれでもビジネス的にも意味があります。間違いなく、古い機械の生産に使用されているいくつかの進行中の研究プロジェクトと古いオペレーティングシステムがありますが、今日新しい機械では何も購入できません。

OS Xには、すべての* ixに共通のカーネル機能の非互換性があります。最近私が経験している最大の問題は不足しています。システムVメッセージキュー。 (msgget(2)友達と一緒に。)私たちのソフトウェアをOS Xで実行するには、メッセージキューコード(「実際の」System Vバリアント用に書かれ、後でLinuxに移植される)をTCP / IPに置き換える必要がありました。私たちのアプリケーションでは、メッセージキューを使用することを選択したときに2つのIPCメソッドの違いが重要でしたが、将来のアーキテクチャ変更のために最終的にTCP / IPに切り替えることは大きな問題ではありませんでした。

答え2

結局、DarwinはMach 2.0の上の薄いBSD層ではありませんか?

以前にNeXTStepを使用していましたが、現在のMacOSXがNeXTStepとどのくらい違いが出るのかはわかりませんが...

Mach 2.0はカーネルレベルで様々な抽象化セットを提供します。

  1. 「作業」: これは、スレッドが実行できるアドレス空間 + 「ポート」のセットです。
  2. 糸。これは予約可能な実行単位です。 1つのジョブ(アドレス空間)で複数のジョブを実行できます。私は、Mach-Oファイル(Machの実行可能ファイル形式)がプロセスの実行中に複数のスレッドを指定できると思います。 main() 関数がより多くの Cthread を起動しない場合、オペレーティングシステムは 1 つを起動します。
  3. ポート。これらのポートはTCPまたはUDPポートとは異なります。これは、入力され順序付けられたメッセージ・ストリームです。 RPCに似ています。プロトコル仕様ファイルを作成し、コンパイラを介してそのファイルを実行して、サーバーとクライアントのスタブ、マーシャリング、マーシャリング解除ルーチンなどを取得します。
  4. ユーザーレベルのメモリポケットベル。他のジョブのアドレス空間ページングを処理するために、ジョブ+スレッドを設定できます。

もともとCMU Machの人々はこれらの抽象化を使ってシミュレーションBSD Unixプロセス、MS-DOSプロセス、非常に奇妙なVMS操作。各VMSジョブには2つのMachジョブと多くのスレッドが必要です。誰かがユーザースペースポケットベルを使用して良い効果を発揮するMac OS(OSX以前)用のNexTStepエミュレータを販売したことがあります。

Old Carnegie Mellon University Mach出版物ページ: http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/documents_top.html

VMS-on-Mach ドキュメント: http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf

答え3

完全な答えではありませんが、DTraceLinuxではなく、Solaris、Darwin / OS X、および* BSDのための優れたシステムデバッグツールです。

答え4

私はダーウィンが他の人として最もよく描かれていると思います。Unixスタイル。ソラリスもその一つです。 HP/UXは別のものです。たくさんありますもっと、「ハイプロファイル」ではないかもしれませんが、そこにあります。各味には独自の特性があります。それでそもそも味があるんです。一部の会社では、これを販売するのに役立つ(または単に使用または管理するのに役立つ)製品を作成し、独自の名前を付けます。

関連情報