web-dev-qa-db-ja.com

UnixとLinuxのデザインなどの基本的な違いはありますか?

私はこの文章を読み続けます:

LinuxはUnixライクなシステムですが、Unixではありません。

この2つの違いは何なのかわかりません。 LinuxはUnixから多くのアイディアを得ており、2つのライセンスは異なります。それとは別に、私はどちらの専門家でもないので、デザインやその他の重要な側面に基本的な違いがあるかどうかを知りたいです。

24
Gnijuohz

「Unixライク」システムは、 Single UNIX Specification に完全に準拠している場合があります。これは、Unixシステムとして適格な規格の総称ですが、同時にUnixは登録商標です。/ 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:APARを使用した、8-2004以降の日付のAIX 5L for POWER V5.2:VAC 6.0.0.8以降のpSeries CHRPシステム)IY59610、IY60869、IY61405
  • IBM Corporation:POWER™プロセッサーを搭載したCHRPシステムアーキテクチャーを使用するシステムでの7-2006以降の日付のAIX 5L for POWER V5.3
  • 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以降
  • オラクル社:64ビットX86ベースシステム上のSolaris 10オペレーティングシステムとX86以降のパッチ118844-06
  • Oracle Corporation:Solaris 10オペレーティングシステム以降、32ビットおよび64ビットSPARCベースのシステム
  • Oracle Corporation:Solaris 10オペレーティングシステム以降、32ビットX86ベースのシステム

オープンソースのUnixライクなシステム(主にLinuxとFreeBSD)のベンダーは通常、The Open Groupに登録しません。これは、認証のコストを回避するためか、そうすることにあまり価値がないためです。理論的には、Unixライクなシステムが技術的にはUnixである可能性は十分にありますが、不足しているのは認定だけです。

一方、Linux Foundationは、Linuxの標準化を目指して、 Linux Standard BaseISO標準 を作成しました。 [〜#〜] posix [〜#〜] への準拠は、SUSとLSBの両方の中心であり、 UnixとLinuxの間のリンク。

UnixとUnixのようなシステムは異なるよりも似ている傾向があり、理論的には、登録されているかどうかにかかわらず、すべての一般的なUnixフレーバーはPOSIX準拠(完全またはほとんど)であるため、コアプログラミングインターフェイス、シェル、およびユーティリティ(および他の多くのもの)。 IEEEとThe Open Groupは、最新バージョン POSIX.1-2008 の無料コピーを維持しています。POSIX.1-2008/(+)/には、POSIXコンプライアンスの実際の意味に関する詳細情報が記載されています。

Linuxは、法的および技術的な理由は別として、 [〜#〜] gnu [〜#〜] (Unixに似たオペレーティングシステム)との関連から「非Unix」のマントラを継承しましたリチャードストールマンによって開始されました。 GNUは "GNU's not Unix"を表します。ストールマンの意図は、フリーであるUnix互換システムを構築することであり、そのためにはUnixコードが含まれていてはいけません。 。

初期のLinux開発者は、GNUツールをLinuxに移植し始め、その結果のシステムはGNU/Linux として早くも1992 と呼ばれていました。 長期にわたる論争 LinuxをLinuxと呼ぶか、GNU/Linuxと呼ぶか(GNUのいくつかの部分が組み込まれているため)、しかしそれはあなたの質問とは無関係であり、関連するのは「Unixではない」ということですGNUとの関連付けを参照するだけで、コンテキストに応じてそのデザインとはほとんど関係がない場合があります。

Wikipediaの "History of Linux"記事 は、Linuxの起源とUnixとの関係( Minix およびGNUを介して)について詳細に説明しています、さらに詳しく知りたい場合は、記事のリファレンスを読むのに少し時間がかかるはずです。

30
yannis

UNIXはオペレーティングシステムのファミリであり、現在のUNIXは、The Open Groupが所有するブランドの1つです。オペレーティングシステムがUNIXのブランドである場合、これは適合性テストを受ける必要があり、Linuxの場合、これは、そこにあるすべてのディストリビューション(Ubuntu、Debian、Fedora、Red Hatなど)がリリースごとにこの適合性テストを受ける必要があることを意味します。 。したがって、これがLinuxがUNIXのようなシステムではなくUNIXのようなシステムである主な理由の1つです。

私が言及したこのテストは、OSが現在バージョン4 SUSv4(シングルUnix仕様バージョン4)であるシングルUnix仕様に準拠していることを確認するためのものです。この仕様は、システムがUNIXという名前で修飾されるために、アプリケーションが利用できる必要があるAPIのセットを定義します。

4
Raphael

既存の回答では、探している違いのいくつかがすでに言及されています。 Linuxカーネルの専門家でなくても、GNU/LinuxとさまざまなUnicesの間の設計/実装の違いの多くは Linuxカーネル設計パターン シリーズでカバーされていることも付け加えておきます。

3
sakisk

「UNIX」は複雑な問題です。標準への準拠に関して、Solarisと Mac OS X はどちらも「公式に」UNIXですが、両者の大きな違いを見つける前に多くの時間を費やす必要はありません。さまざまな種類のUNIXまたはUNIXに似たオペレーティングシステムのリリースと、それらがどのように相互に影響を及ぼし、分岐したかを説明する 素晴らしい図 があります。

UNIXのような見た目、歩き、いじくる大規模なスキームでは、Linuxシステム[*]は、従来のリリースの1つです。人々がUnicesまたは* nixを参照することは非常に一般的であり、おそらくLinuxを含む「UNIXのようなもの」を意味します。ただし、UNIXは登録商標であり、商用利用には制限があります。これらの制限に準拠するLinuxディストリビューションはありません。

[*]この質問はある程度のセマンティックなヘアスプリットを招くので、Linux自体がオペレーティングシステムを構築できるカーネルにすぎないことを指摘するのは、この場合のトピックだと思います。 Linuxの上にUNIXライクなシステムを構築することは一般的であり、それはそのために設計されたものであり、そのシステムは通常GNUプロジェクトコンポーネントから構築されます。上記の「Linux」の回答では「Linuxカーネルを組み込んだオペレーティングシステム」の省略形として読むことができます。

2
user4051

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を提供し、ファイルの変更を通知します。MacOSXは FSEvents を提供し、FreeBSDは kqueue

したがって、それらは同じファミリーと見なすことができます-WindowsシステムをGNUに移植されたツールと同じツールを備えたLinuxシステムと比較してください。表面的には同じように見えますが、UnixまたはFreeBSDよく見ると、FreeBSD、Unix、Linux間でのアプリの移植は、Windowsなどの代替OSへの移植と比べて比較的簡単です。

2
gbjbaanb

Linuxには次のような多くのツールが付属しています。

  • GUIシステム
  • GNUユーティリティ(cp、mv、ls、date、bashなど)
  • インストールおよび管理ツール
  • GNU C/C++コンパイラ
  • 編集者(vi)
  • およびさまざまなアプリケーション(OpenOffice、Firefoxなど)。

ただし、ほとんどのUNIXオペレーティングシステムは、すべてが単一のソースまたはベンダーからのものであるため、完全なオペレーティングシステムと見なされます。

彼らが共有するいくつかのこと:

  • GUI、ファイル、およびWindowsマネージャー(KDE、Gnome)
  • シェル(ksh、csh、bash)
  • OpenOffice.orgなどのさまざまなオフィスアプリケーション
  • 開発ツール(Perl、php、python、GNU C/C++コンパイラ)
  • POSIXインターフェース
1
Billjk

Unixはもはや単一のオペレーティングシステムではありません。以前はBell Labs/AT&Tによる実装でしたが、現在は標準になっています。

技術的には、Linuxは単なるカーネルです。このカーネルは、Unix以外のOSで見つけることができ、最も人気のあるのは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ライクなシステムはより「設計された」「大聖堂のような」ものです。サブシステムによっては、その違いはそれほど明確ではなく、その背後にある個人や企業に依存します。

1
jlliagre