macOS は UNIX ですか、それとも単なる Unix ですか?それともUnixっぽいのでしょうか?終わりのない議論に答え、POSIX や SUS などの標準についても説明します。
macOS: UNIX かどうか?
この主題はさまざまな疑問を引き起こします。 macOS の系譜は何ですか?今日の macOS にはその遺伝的要素がどのくらい残っていますか? それは重要でしょうか?何かが UNIX なのか、Unix なのか、それとも Unix に似ているのかを答える前に、これらの用語の意味を理解する必要があります。何かが Unix であるか UNIX であるかを判断するのは誰でしょうか。また、どのような基準を使用するのでしょうか?
まずは始めましょう。
Unix は 50 年前に、AT&T が所有する研究開発会社である Bell Labs で作成されました。 1973 年に早送りすると、C プログラミング言語で書き直された Unix のバージョン 4 が登場します。これにより、オペレーティング システムの移植性が大幅に向上し、さまざまなハードウェア プラットフォームへの移行が容易になりました。同年、Unix アーキテクトの中心人物の 2 人である Ken Thompson と Dennis Ritchie が 、オペレーティング システムに関するカンファレンスで論文を発表しました。すぐに、オペレーティング システムのコピーの要求が届きました。
1956年に遡る 同意法令 に拘束され、AT&Tは「一般通信事業者通信サービスの提供以外のあらゆる事業」を回避しなければならなかった。 Unix は AT&T が利益を得られるものとしては適格ではありませんでした。そこで同社は、Unix を自由なライセンスでソース コードとして配布するという、当時としては注目に値することを行いました。少額の料金で、配送と梱包、そして「妥当なロイヤルティ」がカバーされました。
Unix の急増
Unix は「現状のまま」提供されていたため、サポートなしで提供されていました。その結果、Unix コミュニティが団結してメンバーを支援し、Unix にパッチを適用して拡張するようになりました。したがって、ソース コードを入手して変更し、コミュニティからサポートを受けることができます。それはおなじみの響きを持っています。 Unix のさまざまなフレーバーが登場し始め、作業を行う組織に合わせて適応および調整されました。
カリフォルニア大学バークレー校のコンピューター サイエンス教授である ボブ ファブリーは 、1973 年のオペレーティング システム原則に関するシンポジウムのプログラム委員会のメンバーでした。彼は、Thompson と Ritchie による「The UNIX Time-Sharing System」というタイトルのプレゼンテーションを聞きました。
ファブリーはオペレーティング システムのコピーを要求し、1974 年にカリフォルニア大学バークレー校のコンピューター サイエンス研究グループ (CSRG) の PDP/11 に Unix がインストールされました。重要なのは、Ken Thompson がそこで 1 年間を過ごし、すぐに大学独自の Unix となったものに取り組んだことです。 UC Berkeley の変更と追加のコピーが配布され、Berkeley Software Distribution (BSD) として知られるようになりました。最終的に、これらは現在でも BSD として知られる Unix システム全体のディストリビューションになりました。バージョン番号 (4.2BSD など) により、さまざまなリリースが識別されました。
1984 年に、AT&T は 1956 年の同意令の制限から解放され、オペレーティング システムを適切に販売できるようになりました。これには、 TCP/IP 、 vi 、C シェル、 csh などの BSD コードが含まれていました。このような他家受粉とコラボレーションがあっても、ライセンスには困難がありました。 BSD にはオープン ソースではなかった AT&T コードが含まれていましたが、BSD 要素はオープン ソースでした。
これらの問題を回避するために、AT&T コードを含まないバージョンの BSD が開発されました。しかし、AT&T コードが削除されたとき、カーネルの約 20% が失われていました。 William Jolitz が 欠落部分を書き、そのバージョンの Unix は 386BSD としてリリースされました。 386BSD プロジェクトは停滞しましたが、1993 年にそのソース コード ベースが NetBSD プロジェクトと FreeBSD プロジェクトを生み出しました。
これで、FreeBSD というジグソーパズルの 1 つのピースが得られました。
次のステップ
1985 年に Apple, Inc. を解雇された後、Steve Jobs は NeXT, Inc という会社を設立しました。ワークステーション製品ラインにオペレーティング システムを提供するために、NeXT は NeXTSTEP を開発しました。コードベースとして BSD を使用しましたが、まったく異なるカーネルを導入しました。
NeXT は、Mach マイクロカーネル の修正バージョンと 4.3BSD を使用して、このジグソーパズルの 2 番目の部分である NeXTSTEP を形成しました。 Mach は 、分散および並列コンピューティングの研究を促進するためにカーネギー メロンで開発されました。研究チームは独自のオペレーティング システムを作成するのではなく、BSD をオペレーティング システムとして使用し、カーネルを置き換えました。
XNU
1996 年に Apple, Inc. が NeXT, Inc. を買収し、それによって NeXTSTEP を買収しました。 Apple は 、Mac OS X を経て、最終的に macOS となるオペレーティング システムの開発を開始しました。これは、Mach カーネルをアップグレードし、Open Software Foundation が開発し、 OSF/1 オペレーティング システムで使用しているより高度なバージョンに置き換えました。 Apple はまた、FreeBSD ディストリビューションの更新および改良されたバージョンを使用して BSD コンポーネントをアップグレードしました。
Apple は、BSD カーネルの要素を Mach カーネルに戻しました。また、 モノリシック アーキテクチャ とマイクロカーネル アーキテクチャの両方の特性を組み合わせたハイブリッド カーネルも開発しました。
Apple が NeXTSTEP の DriverKit をベースに開発した I/O Kit も含まれていました。これにより、毎回変更することなくドライバーをカーネルに追加できるようになりました。
XNU はジグソーの 3 番目の部分です。
POSIX および SUS 標準
1996 年に、2 つの標準化団体、 X/Open と Open Software Foundation が合併して、 The Open Group を設立しました。
Open Group は UNIX 商標の認証機関です。言い換えれば、オペレーティング システムを UNIX と呼ぶ前に、オペレーティング システムがその標準に準拠していることをスタンプする必要があります。すべて大文字の UNIX は、コンプライアンスのバッジです。
したがって、カテゴリは次のようになります。
- Unix: オペレーティング システムのファミリー。このファミリには、UNIX オペレーティング システムと Unix 類似のオペレーティング システムの両方が含まれています。
- UNIX オペレーティング システム : これらは標準に準拠していることが認定されています。
- Unix のような オペレーティング システム : これらは Unix のように見え、動作しますが、準拠しているとは認定されていません。
もちろん、「Unix 類似」カテゴリの一部のオペレーティング システムが明日テストされ、準拠していることが判明する可能性は十分にあります。これらは事実上 UNIX ですが、まだゴム印が存在しないため、Unix としてのみ分類できます。
UNIX を認定する標準には、 POSIX と Single UNIX Supplement (SUS) の 2 つがあります。 SUS は POSIX のスーパーセットです。したがって、何かが POSIX に準拠している可能性はありますが、それが UNIX であるとは限りません。ただし、SUS 準拠のものであれば、それは UNIX です。
POSIX と SUS は大規模なドキュメントのコレクション (約 3,700 ページ) を形成します。これらは、準拠した UNIX システムのあらゆる側面の操作と予期される動作を定義します。非同期および同期 I/O から、スクリプト インターフェイスやユーザー レベルのプログラムに至るまで、すべてがカタログ化され定義されています。
標準はアプリケーション インターフェイスと実行時の動作を定義しますが、 その実装方法については 規定しません。
では、macOS は UNIX なのでしょうか?
答えは「はい」でなければなりません。
その系譜を FreeBSD から BSD に遡り、そこから AT&T からライセンス料が値上げされる前に Bell Labs によって配布されていた Unix にまで遡ることができます。
しかし、それは問題ではありません。
今、オペレーティング システムを最初から作成したとしても、SUS の要件を満たす限り、それは UNIX とみなされます。そして、それをどのように実装するかは関係ありません。 macOS の中心となる XNU カーネルはハイブリッド アーキテクチャです。 Apple のコードと Mach および BSD カーネルの一部を組み合わせたものです。
しかし、それも問題ではありません。重要なのは、それが測定される基準の要件を満たしていることです。
XNU カーネルの BSD 部分は、POSIX アプリケーション プログラミング インターフェイス (さまざまな API や BSD システム コールなど) を提供します。 XNU 内で BSD カーネルの要素をそのままの状態に保つことが、UNIX としての認定を取得するための鍵となります。これにより、XNU はシステムの残りの部分に対して、準拠および互換性のある UNIX を話すことができます。
macOS は、The Open Group によって認定された UNIX 03 準拠のオペレーティング システムです。 2007 年の MAC OS X 10.5 からです。唯一の例外は Mac OS X 10.7 Lion でしたが、OS X 10.8 Mountain Lion では準拠性が回復されました。
面白いことに、GNU が「GNU’s Not Unix」の略であるのと同じように、 XNU は「X は Unix ではありません」の略です 。





