回答:
「Unixのような」システムは、Unixシステムとして適格なものの標準の総称であるSingle UNIX Specificationに完全に準拠している可能性がありますが、同時にUnixはThe Open Groupの登録商標であり、Unixのようなシステムのベンダーが必要としていますUnixとして正式に認定されるようにシステムを登録する。現在、登録されているUNIX 03システムは次のとおりです。
- Apple Inc .: IntelベースのMacintoshコンピューター上のMac OS Xバージョン10.5 Leopard
- Apple Inc .: IntelベースのMacintoshコンピューター上のMac OS Xバージョン10.6 Snow Leopard
- 富士通株式会社:FujitsuPRIMEPOWER®64ビットSPARC®ベースプラットフォーム上のSolaris™10オペレーティングシステム
- Hewlett-Packard Company:HP Integrityサーバー上のHP-UX 11i V3リリースB.11.31以降
- IBM Corporation:POWER V5.2用AIX 5L(APAR付き8-2004以降):pSeries CHRPシステム上のVAC 6.0.0.8以降を搭載したIY59610、IY60869、IY61405
- IBM Corporation:POWER™プロセッサーを搭載したCHRPシステムアーキテクチャーを使用するシステムでの7-2006以降のPOWER V5.3用AIX 5L
- IBM Corporation:POWER™プロセッサーと2、8または128ポートの非同期カードを備えたCHRPシステムアーキテクチャーを使用するシステム上のAIX 6オペレーティングシステムV6.1.2 SP1以降
- Oracle Corporation:SPARCベースのプラットフォーム、32ビットおよび64ビット、およびX86ベースのプラットフォーム、32ビットおよび64ビット上のOracle Solaris 11 FCS以降
- Oracle Corporation:Solaris 10オペレーティングシステムと、64ビットX86ベースのシステム上のX86以降のパッチ118844-06
- Oracle Corporation:Solaris 10オペレーティングシステムおよび32ビットおよび64ビットSPARCベースシステム
- Oracle Corporation:Solaris 10オペレーティングシステムおよび32ビットX86ベースシステム上
システムのようなオープンソースUnix(ほとんどの場合LinuxおよびFreeBSD)のベンダーは、認証のコストを避けるため、またはそうすることであまり価値がないため、Open Groupに登録しません。理論的には、Unixのようなシステムが技術的にはUnixである可能性は完全にあり、欠けているのは認証だけです。
一方、Linux Foundationは、Linuxの標準化を目指して、ISO標準であるLinux Standard Baseを作成しました。遵守POSIXは 方法でUnixおよびLinuxの間のリンクを維持し、SUSとLSBの両方の心臓部です。
UnixとUnix系のシステムは異なるよりも似ている傾向があり、理論的には、登録されているかどうかに関係なく、すべての人気のあるUnixフレーバーはPOSIX準拠(完全または大部分)であるため、コアプログラミングインターフェイス、シェル、ユーティリティ(および他の多くのもの)。IEEEとThe Open Groupは、POSIX.1-2008の最新バージョンの無料で入手可能なコピーを保持しています。ここでは、POSIXコンプライアンスが実際に意味するものに関する詳細情報を見つけることができます。
現在、法的および技術的な理由は別として、Linuxは、Richard Stallmanによって開始されたUnixのようなオペレーティングシステムであるGNUとの関連付けから、「Unixではない」というマントラを継承しています。ストールマンの意図は、フリーなUnix互換システムを構築することであり、そのためにはUnixがプロプライエタリであるため、Unixコードを含むべきではないため、GNUは「GNU's not Unix」の略です。
初期のLinux開発者はGNUツールのLinuxへの移植を開始し、結果として得られたシステムは1992年には早くも GNU / Linuxと呼ばれていました。LinuxをLinuxとGNU / Linux(GNUのいくつかの部分が組み込まれているため)と呼ぶかどうかについては長続きする論争がありますが、それはあなたの質問とは無関係です。関連するのは、「Unixではない」コンテキストに応じて、GNUを使用し、その設計とはほとんど関係ありません。
「歴史のLinuxの」記事ウィキペディア上では、Linuxの起源と(経由のUnixとそれとの関係について説明しMinixのいくつかの詳細とGNU)を、そしてあなたがに興味があるなら、あなたはまた、記事の参照を介して読み込むためにいくつかの時間を取る必要がありますもっと学ぶ。
UNIXはオペレーティングシステムのファミリであり、最近ではUNIXはOpen Groupが所有するブランドになっています。オペレーティングシステムにUNIXのブランドを付けるには、適合性テストを実施する必要があり、Linuxの場合、そこにあるすべてのディストリビューション(Ubuntu、Debian、Fedora、Red Hatなど)は、リリースごとにこの適合性テストを個別に受ける必要があります。これが、LinuxがUNIXではなくUNIXに似たシステムである主な理由の1つです。
私が述べたこのテストは、現在バージョン4 SUSv4(Single Unix Specification version 4)にあるSingle Unix SpecificationにOSが準拠していることを確認するためのものです。この仕様は、システムがUNIXという名前の資格を得るためにアプリケーションで使用できる必要があるAPIのセットを定義します。
既存の答えは、あなたが探している違いのいくつかをすでに言及しています。Linuxカーネルの専門家でなくても、GNU / LinuxとさまざまなUnicesの設計/実装の違いの多くは、Linuxカーネル設計パターンシリーズでカバーされていることを付け加えます。
「UNIX」は特定するのが複雑なものです。標準への準拠という点では、SolarisとMac OS Xはどちらも「公式に」UNIXですが、両者の間に大きな違いを見つけるまでに多くの時間を費やす必要はありません。UNIXまたはUNIXライクなオペレーティングシステムのさまざまなフレーバーのリリースと、それらが相互にどのように影響および相違したかを文書化した素晴らしい図があります。
UNIXのような見た目、歩き、偽物の壮大なスキームでは、Linuxシステム[*]はより一般的なリリースの1つです。人々がUnicesまたは* nixを参照し、「UNIXに似たもの」を意味することは非常に一般的です。これにはおそらくLinuxが含まれます。ただし、UNIXは商業的に適用される方法に制限がある登録商標です。これらの制限に適合するLinuxディストリビューションはありません。
[*]この質問はセマンティックなヘアスプリッティングのレベルを招くため、この場合はLinux自体がオペレーティングシステムを構築できる単なるカーネルであると指摘するのはトピックだと思います。Linuxの上にUNIXのようなシステムを構築することは一般的であり、それが設計された目的であり、そのシステムは通常GNUプロジェクトコンポーネントから構築されます。上記の答えでは、「Linux」は「Linuxカーネルを組み込んだオペレーティングシステム」の省略形として読むことができます。
私はかつて、LinuxはPC開発者を連れてUnix OSの作成を依頼したときに得られるものだと読みましたが、FreeBSDはUnix開発者を連れてPC OSの作成を依頼したときに得られるものです。あなたの比較でBSDを忘れないでください!
ユーザー空間アプリケーション(lsなどを含む)はすべてGNUプロジェクトの一部であるため、違いは主にカーネルにあります。これは、Unix、FreeBSD、およびLinuxがすべてほぼ同じように見えることを意味します。
ただし、よく見ると違いがあります。ディレクトリレイアウトは異なりますが(多くのLinuxディストリビューションでは独自のほとんど互換性がありますが、レイアウトは異なります)、ファイルシステムは異なります(UnixはUFSを使用し、FreeBSDはFFSを使用し、LinuxはExt3を使用して単純化します-それらのすべては一般的なFS、たとえばZFS)
次に、コアAPIには違いがあります。Linuxはinotify APIを提供してファイルの変更を通知し、Mac OSXはFSEventsを提供し、FreeBSDはkqueueを提供します。
したがって、それらは同じファミリーと見なすことができます。GNUツールが移植されたWindowsシステムと同じツールを備えたLinuxシステムを比較してください。それらは表面的には同じように見えますが、UnixまたはFreeBSDシステムは依然として同等に見えます。よく見ると、FreeBSD、Unix、Linux間のアプリの移植は、Windowsなどの代替OSへの移植に比べて比較的簡単です。
Unixはもはや単一のオペレーティングシステムではありません。以前はBell Labs / AT&Tによる実装でしたが、現在は標準です。
技術的には、Linuxはカーネルにすぎません。このカーネルは、OSのような非Unixで見つけることができ、最も一般的なのはAndroidです。一方、Unixに似たLinuxベースのOSは数多くあります。それらのほとんど(すべてではないにしても)は、Gnuライブラリとユーティリティを使用しています。この組み合わせにより、LinuxディストリビューションにUnix APIと標準への準拠(または非準拠)が提供されます。
Unix標準では、準拠システムがプロプライエタリである必要も、特定のライセンスを持つ必要もありません。BSD、OpenSolaris / Illumos、darwinは、Linux以外のフリーなUnix実装の例です。
準拠システムは通常、プロプライエタリとオープンソースのコンポーネントの組み合わせですが、Gnu / Linuxは完全にオープンソースであるか、プロプライエタリのものを含むこともできます。
Unix準拠に関する限り、大きな違いはありません。ほとんどのLinuxディストリビューションとUnix実装は、同じオプションセットを使用して同じコマンドセットを共有します。ただし、特にGnuismsと呼ばれるGnu側には、標準コマンドの多くの拡張機能があり、そもそも標準で定義されていない多数のコマンド(コンパイラー、管理コマンド、インストール、パッケージング、グラフィック環境)。これは、多くの相違点、非互換性、そして時には聖戦を見つけることができるエリアです。
Gnu / Linux開発モデルは通常、より「オーガニック」で「バザール」に似ていると見なされますが、他のUnixライクなシステムは「設計」され、「大聖堂」に似ています。サブシステムに応じて、違いはそれほど明確ではなく、その背後にある個人や企業に依存します。
Linuxには、次のような多くのツールが付属しています。
ただし、すべてが単一のソースまたはベンダーから提供されるため、ほとんどのUNIXオペレーティングシステムは完全なオペレーティングシステムと見なされます。
彼らが共有するもの:
実際のところ、Linuxは結局のところ、Unixのリバースエンジニアリングを組み合わせたものでした。そのため、カーネル設計はケントンプソンの哲学に従いました。Linuxの方法は、独自の考えを自分に負担させることなく、Unixの哲学を可能な限り厳密に模倣することです。