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


19

ダーウィンには、それ固有の機能がありますか?他のUnixeにはダーウィンにはない機能がありますか?

回答:


20

OS Xは、Machマイクロカーネルに基づく唯一の残りのオペレーティングシステムであり、これも商業的に関連しています。いくつかの進行中の研究プロジェクトと古いOSの陳腐化したOSがまだ古いマシンの生産設定で使用されていることは間違いありませんが、今日出かけて新しいマシンで購入することはできません。

OS Xには、通常の* ixが持つカーネル機能の非互換性があります。私が最近回避しなければならなかった最大のものは、System Vメッセージキューの欠如です。(msgget(2)および友人)。「実際の」System Vバリアント用に作成され、後でLinuxに移植されたメッセージキューコードをTCP / IPに置き換えて、ソフトウェアをOS Xで実行する必要がありました。これら2つのIPCメソッドの違いは、メッセージキューを使用することを選択した時点で重要でしたが、後のアーキテクチャの変更により、最終的にTCP / IPに切り替えることは大したことではなくなりました。


11

結局のところ、DarwinはMach 2.0の上にある薄いBSDレイヤーではありませんか?

以前はNeXTStepを使用していましたが、現在のMacOSXがNeXTStepからどれだけ離れているかわかりませんが、...

Mach 2.0は、カーネルレベルで異なる抽象化のセットを提供しました。

  1. 「タスク」:それはアドレス空間+一連の「ポート」であり、スレッドが実行されている可能性があります。
  2. スレッド。これは、スケジュール可能な実行単位でした。タスク(アドレススペース)で複数のタスクを実行できます。Mach-Oファイル(Machの実行可能ファイル形式)は、プロセスの実行時に複数のスレッドを指定できると考えています。Cthreadsをさらに起動するmain()関数はなく、OSは1つを起動します。
  3. ポート。これらはTCPまたはUDPポートとは異なります。それらはメッセージのタイプされた、順序付けられたストリームです。むしろRPCに似ています。プロトコル仕様ファイルを作成し、それをコンパイラを介して実行して、サーバーおよびクライアント側のスタブ、マーシャリングおよびアンマーシャリングルーチンなどを取得しました。
  4. ユーザーレベルのメモリページャー。他のタスクのアドレススペースのページングを処理するタスク+スレッドを設定できます。

元のCMUマッハの人々は、これらの抽象化を使用して、BSD Unixプロセス、MS-DOSプロセス、および非常に奇妙なVMSタスクをエミュレートしました。各VMSタスクは2つのマッハタスクと多くのスレッドを取りました。誰かが、ユーザー空間ページャーを使用して効果を発揮するNeXTStep用のMac OS(OSX以前)エミュレーターを販売していた。

古いCMU 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


2
Mac OS X(したがってDarwin)はMach 3.0を使用します。
バハマ

5

これは完全な答えではありませんが、DTraceは、Solaris、Darwin / OS X、および* BSDには存在するがLinuxには存在しない素晴らしいシステムデバッグツールです。


3
Oracleは2011年にLinuxへのDTraceを移植
マット・ビアンコ

1
2011年10月の時点で、OracleはSolarisからLinuxへのDTraceの移植を発表しましたが、2014年10月13日の時点では、正式には利用できません。(slideshare.net/brendangregg/from-dtrace-to-linux
scravy

4

Darwinには、サポートされるファイルシステムタイプの比較的小さなセットがあります。devfsのような特別なものやwebdavのようなネットワークタイプは別として、リストは次のとおりです。

  • HFS / HFS +
  • UFS / FFS
  • ISO-9660 / UDF / CDDA
  • NTFS
  • 脂肪

このリストのうち、Unix用に設計されたのはUFSのみですが、HFS +はすべての必要なUnix機能をサポートするようにアップグレードされています。Mac OS X 10.6以降、ルートパーティションにUFSを使用することはできませんが、この制限はおそらくダーウィンには適用されません。デフォルトでは、HFS +は大文字と小文字を区別しませんが、作成時に大文字と小文字の区別を要求できます。Mac OS Xは大文字と小文字を区別するパーティションで動作しますが、多くの有名なMacアプリケーションは動作しません(Adobe CSなど)。

しばらくの間、AppleはHFSをZFSで置き換えることを計画しており、ZFSを一部のバージョンのMac OS Xで出荷することもありましたが、残念ながらこの実験は解決できないライセンスの問題のために最終的に失敗しました


私が思い出すように、OS X / macOSのNTFS書き込みサポートはまだ実験的で安定していないため、バグがあると報告されています。
RandomDSdevel

3

Darwin をUNIXの単なる別のフレーバーとして説明するのが最善だと思います。Solarisは1つです。HP / UXも別です。もっとたくさんあります、「知名度」ではないかもしれませんが、そこにあります。そして、どのフレーバーにも独自の特性があります。それが、そもそもフレーバーがある理由です。いくつかの会社はそれを売るのに役立つ何かを考え(または単にそれと協力するか、それを管理することさえ)、それを作成し、それ自身の名前を与えます。


2
UNIX(すべて大文字)は、多くの国でThe Open Groupの登録商標です。「UNIX」(すべて大文字)であるためには、認証が必要です。Darwinは「UNIXのフレーバー」ではありませんが、Intel x86-64上のMac OS X 10.10は別のUNIXとして認定されています。
user314104 14年

0

AppleからリリースされたDarwinが独立したオペレーティングシステムとして機能しなくなったと聞いた場合、その最大の違いはOS Xであると指摘します。:D

古いMac OS、新しいMac OS X、NeXTの統合は時々笑えるかもしれませんが、diskutilhdiutilなどの小さなユーティリティは素晴らしいです。たぶん、これらのささいなことを使い、XCodeをこのような優れたツールにしたのは、NeXTから残った古いMachカーネルアーキテクトであり、それらを気にかけているのかもしれません。


-1

DarwinはFreeBSDに基づいています。(私の経験では)他のUnixオペレーティングシステムにはないクールな機能の1つは、Berkeley Packet Filter(別名)/dev/bpfです。これは、パケットキャプチャに使用できる非常に用途の広いデバイスです。


1
Darwinは実際にはFreeBSDに基づいていませんが、いくつかのユーザーランドのものを借用しています。ここの他のコメントはそれをよりよく説明しています。bpf(4)はDarwinとFreeBSD / NetBSD / OpenBSDだけではありません。以前のLinuxカーネル用に誰かがそれを実装したかもしれないと感じています。SCOは(有名な)Unixware製品でそれを(イン)持っていました。
jrg

-11

私の頭に浮かぶのは、OSXがコンソールに持っているすべてのツールです。unixにはもっと便利なコマンドがたくさんあります。Diskutilはシェルのパーティションマジックのようなもので、このツールにはディスク操作のオプションがたくさんあるため、fdiskは実際にこの獣の10%に過ぎません...タイプ..本当にUnixにはこれがありますか?あなたの夢の中で!!; D

SystemProfiler-すべてのハードウェアID、名前、モデル、SNなどを非常に快適な方法で表示する優れたツール。

darwinカーネルは、UNIXのように完全に透過的ではありません。

darwinはkillall util = P unixはありません、スキルのみ

異なるファイルシステムも.. HFS、HFS +

多分後者の方が覚えやすいでしょう=)


2
ダーウィンには「killall」があり、他のUnixバリアントにはないという意味ですか?それは真実ではない。
kbyrd

2
この答えはトローリングの疑いがある。os X以外の* nixについてのステートメントで中傷する必要はありません。また、前回* NIXを使用したことがありますkillallが絶対にPATHに存在していました。また、Linuxにはシステムプロファイラーがあります。宿題をしてください。ドゥーシュにならないでください。編集:私は使用してOS Xの非常に好きです
イーライ・フレイ

2
私はLinuxでkillallを持っているので、ダーウィンに固有のものではありません
-xenoterracide

2
この答えはあいまいで不正確です。fdiskにはどのような便利な機能がありませんか?Linux RAID(mdadm)に、連結(LINEAR)、ストライピング(RAID0)、ミラーリング(RAID1)などがあります。Linuxは、HFSとHFS +の両方もサポートしています。
マシューフラッシェン

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