web-dev-qa-db-ja.com

Unix、Linux、BSD、GNUの違いは何ですか?

Unix、Linux、BSD、GNUの根本的な違いは何ですか? Unixは最も初期のOSであり、カーネル、ファイルシステム構造、ほとんどのコマンド、ユーザーなどがUnixと同じであるため、「Unixのような」という用語は理解できます。それでもなぜ違うのですか?何が彼らを際立たせたのですか?カーネルですか?

33
Kapish M

それは答えるのが難しい質問です。

最初の「Unix Like」または「* nix」は通常、POSIXを意味します。リストしたすべてのシステムはPOSIXシステムです。 POSIXは、実装する標準のセットです。

難しい質問です。

GNUは実際にはOSではありません。それは、フリーソフトウェアを管理する一連のルールまたは哲学であり、同時に、OSを作成しようとしているときに一連のツールを生み出しました。つまり、GNUツールは、基本的には既存のツールのオープンバージョンですが、オープンソフトウェアの原則に準拠するためにやり直されました。GNU/ Linuxは、これらのツールとLinuxカーネルのメッシュであり、完全なOSを形成します、しかし他にも「GNU」があります。たとえば、GNU/Hurd。

UnixとBSDは、さまざまなレベルの「クローズドソース」であるPOSIXの「古い」実装です。 Unixは通常完全にクローズドなソースですが、Linuxと同じくらい多くの種類のUnixがあります。 BSDは通常、一部の人々によって「オープン」と見なされていませんが、実際には、BSDは他のどの存在よりもはるかにオープンです。より多くの「オープン」ライセンスが許可されているため、はるかに少ない制限で商用利用も許可されています。

Linuxが新しい登場です。厳密に言えば、それは「単なるカーネル」ですが、一般的にGNUツールと他の多くのものと組み合わせると、完全なOSと見なされます。

主な統治の違いは理想です。 Unix、Linux、およびBSDには、実装する理想が異なります。それらはすべてPOSIXであり、すべて基本的に交換可能です。同じ問題のいくつかを異なる方法で解決します。したがって、理想と、POSIX標準の実装方法の選択以外は、ほとんど違いがありません。

詳細については、GNU、OSS、Linux、BSD、UNIXの作成に関する簡単な記事を読むことをお勧めします。彼らは個々のアイデアに傾いていますが、読んでいくと違いの良いアイデアが得られます。

このUnix系統図は、Unix、BSD、GNUおよびLinux( Wikimediaから )の履歴を明確に示しています。

Unix genealogy diagram

37
coteyr

LinuxはOSではなく、カーネルです。 Linux自体には「ユーザーランド」環境がありません(アプリ、コマンド、...などはありません)。

完全なOSが必要な場合は、カーネルにユーザーランドを追加する必要があります。歴史的には、Linuxの場合はGNUです。すべての(?)Linuxディストリビューションは「実際のLinux」ディストリビューションではありません。それらはGNU/Linux(GNU + Linux)ディストリビューションです。

BSDは「UNIXのような」完全なOSであり、独自のカーネルと独自のユーザーランドを持っています(LinuxカーネルもGNUもありません)。

GNU/Linuxと* BSDファミリー(FreeBSD、OpenBSD、NetBSD)は「Unixライク」なOSで、Unixのように動作します。

(GNU)/ Linuxと* BSDの比較を次に示します。 http://www.freebsd.org/doc/en/articles/explaining-bsd/comparing-bsd-and-linux.html

17
dirtyvader