\r\n\r\n

macosはunixなのか(これはどういう意味?)

Macosはunixなのかunixなのか、それともunixのようなものなのか。 終わらない議論に答え、posixやsus...といった標準を解説しています。

macOSはUNIXなのか、それともUnixのようなものなのか。 尽きない議論に答え、POSIXやSUSなどの標準規格を解説します。

macos:unix or not?

macOSの系譜はどうなっているのだろう?今のmacOSにどれだけの遺伝子が残っているかは関係ないのでしょうか?UNIXなのか、UNIXなのか、UNIXライクなのかを答える前に、これらの用語の意味をよく理解しておく必要がある。UnixかUnixかは誰が決めて、どんな規格で作っているのですか?

最初からやりましょう。

Unixは50年前にアメリカ電話電信会社(at&t)の研究開発会社であるベル研究所で誕生しました。Unixのバージョン4はプログラミング言語Cに書き直されました。これにより、オペレーティング・システムの移植性が高まり、異なるハードウェア・プラットフォームへの移行が容易になりました。同じ年、Unixの中心的な設計者であるケントンプソンとデニスリッチーの2人が、オペレーティングシステムに関する学会で論文を発表した。早速、「OSをコピーしてほしい」という要望が寄せられた。

Unixは、AT&Tが利益を得る対象にはならず、AT&Tは1956年の同意判決により、「公共通信事業以外の事業の提供」を控えることになった。そこで同社は、Unixをソースコードとして配布し、フリーライセンスを取得するという、当時としては画期的なことを行った。少額の手数料には、送料と梱包料、そして "妥当なロイヤリティ "が含まれていた。

unixの普及

Unixは「そのまま」提供されるため、サポートはありません。その結果、Unixのコミュニティが団結してメンバーを助け、Unixにパッチを当てたり拡張したりするようになったのです。聞き覚えのある音がした。Unixのさまざまなスタイルが出現し、仕事をする組織に合わせて調整され、適応され始めたのです。

ボブ・ファブリー氏は、カリフォルニア大学バークレー校のコンピュータサイエンス教授で、1973年の「オペレーティングシステム原理に関するシンポジウム」のプログラム委員を務めた人物である。トンプソンとリッチーのUNIXタイムシェアリングシステムに関する講演を聴いた。

ファブリーはオペレーティングシステムのコピーを要求し、1974年にカリフォルニア大学バークレー校のコンピュータサイエンス研究グループ(CSRG)のPDP/11にUnixがインストールされた。驚くべきことに、ケン・トンプソンはそこで1年を過ごし、すぐに大学独自のスタイルのUnixを開発しました。UCバークレーが修正・追加したコピーが配布され、バークレー・ソフトウェア配布(BSD)として知られるようになりました。最終的には、BSDとして知られているUnixシステム全体のディストリビューションになりました。バージョン番号(4.2BSDなど)は、異なるバージョンを識別します。

1984年、AT&T(American Telephone and Telegraph Company)は、1956年のライセンス契約の制約から解放され、OSを適切に販売することができるようになった。bSDにはAT&Tのコードが含まれており、これはオープンソースではありませんでしたが、BSDの要素はオープンでした。

これらの問題を解決するために、AT&Tのコードを除いたバージョンのBSDが開発された。しかし、AT&Tのコードが削除されたとき、カーネルの約20%が失われました。williamjolitzは不足する部分を書き、Unixのバージョンが386BSDとしてリリースされました。386BSDプロジェクトは停滞しましたが、1993年にそのソースコードベースからNetBSDとFreeBSDプロジェクトが生まれました。

これでFreeBSDというパズルの一片ができた。

次のステップ

1985年にアップルを解雇されたスティーブ・ジョブズは、ワークステーション製品群のOSとして、NeXT社が開発したNeXTSTEPを提供するためにNeXT社という会社を設立した。BSDをコードベースとしながらも、全く別のカーネルを導入したのだ。

NeXTは、Machマイクロカーネルの修正版と4.3BSDを使用して、このパズルの第2部であるNeXTSTEPを形成しました。 Machは、分散・並列コンピューティングの研究を促進するためにカーネギーメロン大学で開発されたものでした。研究チームは、独自のOSを書くのではなく、BSDをOSとして使い、カーネルを入れ替えた。

xnu株式会社

1996年、AppleはNeXTを買収したため、NeXTSTEPの開発を開始し、MacOSXを通じて最終的にmacOSとなるOSを開発した。 Machカーネルをアップグレードし、Open Software Foundationが開発しOSF/1 OSで使われているより進んだバージョンと置き換えたのだ。また、AppleはBSDコンポーネントをFreeBSDディストリビューションの更新・改良版でアップグレードしました。

AppleはBSDカーネルの要素をMachカーネルに持ち帰り、さらにモノリシックカーネルとマイクロカーネルアーキテクチャの両方の特徴を併せ持つハイブリッドカーネルを開発した。

また、NeXTSTEPをベースにしたAppleのDriverKit開発もI/Oツールキットに含まれています。これにより、カーネルにドライバを追加する際に、いちいち修正する必要がなくなりました。

XNUは、ジグソーパズルの3番目のパーツです。

POSIXとSUSスタンダード

1996年には、X/OpenとOpen Software Foundationの2つの標準化団体が合併し、Open Groupとなった。

opengroupは、UNIXの商標の認証機関です。つまり、UNIXと呼ぶには、その標準に準拠したオペレーティングシステムであることを証明する必要があるのです。

そのため、以下のように分類しています。

  • Unix:オペレーティングシステムのファミリーで、UNIXオペレーティングシステムとUNIXライクなオペレーティングシステムが含まれます。
  • UNIXオペレーティングシステム:これらのオペレーティングシステムは、適合性が確認されています。
  • Unix系OS:外観や動作がUnixに似ているOSですが、互換性は確認されていません。

もちろん、「Unixライク」のカテゴリーに属するOSの中には、明日にでもテストして互換性が確認されるものがある可能性は十分にある。今はまだゴム印を押していないため、UNIXとしか分類できませんが、実際にはUNIXです。

UNIXを認定する規格には、POSIXとsingleunix specification(SUS)の2つがある。susはPOSIXのスーパーセットである。つまり、POSIX互換であってもUNIXであるとは限らず、SUS互換であればUNIXであるということです。

POSIXとSUSは、約3700ページにも及ぶ膨大な文書群を形成しています。UNIX互換システムのあらゆる面の動作と期待される挙動を定義しています。非同期および同期I/Oからスクリプト・インターフェース、ユーザーレベルのプロシージャまで、すべてがカタログ化され定義されています。

これらの規格は、アプリケーションのインターフェースと実行時の動作を定義していますが、それらをどのように実装するかは規定されていません。

では、macosはunixなのでしょうか?

答えはイエスでなければならない。

FreeBSDからBSD、そしてAT&Tのライセンス料が上がるまでのベル研究所のUnixのリリースまで遡ることができます。

でも、そんなことはどうでもいいんです。

今、ゼロからOSを書いても、SUSの要件を満たしていれば、どのように実装してもUNIXとみなされる。macOSの心臓部であるXNUカーネルは、ハイブリッドアーキテクチャを採用しています。AppleのコードとMachやBSDのカーネルの一部を組み合わせたものです。

重要なのは、それが測定基準の要件を満たしているかどうかです。

XNUカーネルのBSDパートは、POSIXアプリケーションプログラミングインタフェース(各種APIやBSDシステムコールなど)を提供します。XNUのBSDカーネル要素の整合性を維持することは、UNIX認証取得の鍵となる。これにより、XNUはシステムの他の部分と互換性のあるUNIXを話すことができるようになります。

macOSは、Open Groupの認定を受けたUNIX 03準拠のOSです。2007年以降、MacOSX 10.5から。唯一の例外はMacOSX10.7Lionですが、OSX10.8 MountainLionは規制遵守を回復しています。

興味深いことに、GNUが "GNU is not Unix "の略であるように、XNUは "X is not Unix "の略です。

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ