Was ist der Unterschied zwischen Unix, Linux, BSD und GNU? [geschlossen]

27

Was ist der grundlegende Unterschied zwischen Unix, Linux, BSD und GNU? Unix war das früheste Betriebssystem, daher ist der Begriff "Unix like" verständlich, da sie Kernel, Dateisystemstruktur, die meisten Befehle, Benutzer usw. haben, die gleichen wie Unix. Trotzdem, warum unterscheiden sie sich? Was hat sie so einzigartig gemacht? Ist es der Kernel?

Kapish M
quelle
2
Diese Frage wird möglicherweise durch die Antwort auf Wurden alle Unix-Befehle unter Linux neu geschrieben? .
ein Lebenslauf vom

Antworten:

30

Das ist eine schwer zu beantwortende Frage.

Zuerst bedeutet "Unix Like" oder "* nix" normalerweise POSIX. Alle von Ihnen aufgelisteten Systeme sind POSIX-Systeme. POSIX ist eine Reihe von Standards, die implementiert werden müssen.

Nun zu den schwierigeren Fragen.

GNU ist nicht wirklich ein Betriebssystem. Es handelt sich eher um eine Reihe von Regeln oder Philosophien, die freie Software regeln und gleichzeitig eine Reihe von Tools hervorgebracht haben, während versucht wurde, ein Betriebssystem zu erstellen. Daher sind GNU-Werkzeuge im Grunde genommen offene Versionen von Werkzeugen, die bereits existierten, aber überarbeitet wurden, um den Prinzipien offener Software zu entsprechen. GNU / Linux ist ein Netz aus diesen Tools und dem Linux-Kernel, um ein vollständiges Betriebssystem zu bilden, aber es gibt auch andere "GNU". GNU / Hurd zum Beispiel.

Unix und BSD sind "ältere" Implementierungen von POSIX, bei denen es sich um verschiedene Ebenen von "Closed Source" handelt. Unix ist normalerweise eine vollständig geschlossene Quelle, aber es gibt so viele Unix-Varianten wie Linux, wenn nicht mehr. BSD wird von manchen Leuten normalerweise nicht als "offen" angesehen, aber in Wahrheit ist es viel offener als alles andere, was es gab. Die Lizenzierung ist auch für den kommerziellen Gebrauch mit weitaus weniger Einschränkungen zulässig, als es die "offeneren" Lizenzen zulassen.

Linux ist der Neuling. Genau genommen ist es "nur ein Kernel", aber im Allgemeinen wird es in Kombination mit GNU Tools und vielen anderen Dingen als vollständiges Betriebssystem angesehen.

Der Hauptunterschied sind die Ideale. Unix, Linux und BSD haben unterschiedliche Ideale, die sie implementieren. Sie sind alle POSIX und grundsätzlich austauschbar. Sie lösen einige der gleichen Probleme auf unterschiedliche Weise. Abgesehen von den Idealen und der Art und Weise, wie sie POSIX-Standards implementieren, gibt es kaum Unterschiede.

Für weitere Informationen empfehle ich Ihnen, einen kurzen Artikel über die Erstellung von GNU, OSS, Linux, BSD und UNIX zu lesen. Sie neigen zu ihren individuellen Vorstellungen, aber wenn Sie sie durchlesen, bekommen Sie eine gute Vorstellung von den Unterschieden.

Dieses Unix-Genealogie-Diagramm zeigt deutlich die Geschichte von Unix, BSD, GNU und Linux ( aus Wikimedia ):

Unix-Genealogie-Diagramm

coteyr
quelle
hinweis: nicht alles ist POSIX. siehe man unimplementedzB (IIRC, könnte es sein man security) auf einem GNU / Linux-System.
Strugee
Strugee ist richtig. Sie sind nicht vollständig konform, aber sie versuchen es zu sein. Ich bin mir nicht sicher, wie ich das in die Antwort einarbeiten soll. Unix-Like ist auch technisch anders als POSIX, aber wenn Leute Unix-Like sagen, meinen sie normalerweise POSIX.
Coteyr
1
Einige ergänzende Informationen in diesen Fragen und Antworten .
Nein, die Linux-Kernel-Entwickler beabsichtigen niemals, POSIX-kompatibel zu sein. Ich habe vergessen, wo ich das gelesen habe (ich habe in den Hilfeseiten nachgesehen, konnte es aber nicht finden), aber es gibt bestimmte Systemaufrufe, die aus Sicherheitsgründen niemals implementiert werden.
Strugee
Ich glaube, GNU sollte ursprünglich ein Betriebssystem sein.
Faheem Mitha
14

Linux ist kein Betriebssystem, sondern ein Kernel. Linux selbst hat keine 'Userland'-Umgebung (keine Apps, keine Befehle, keine ... etc ...).

Wenn Sie ein vollständiges Betriebssystem haben möchten, müssen Sie Ihrem Kernel ein Userland hinzufügen. Historisch gesehen ist es für Linux GNU. Alle (?) Linux-Distributionen sind keine echten Linux-Distributionen. Es handelt sich um GNU / Linux-Distributionen (GNU + Linux).

BSD ist ein 'Unix-ähnliches' vollständiges Betriebssystem mit einem eigenen Kernel und einem eigenen Benutzerland (kein Linux-Kernel oder GNU).

GNU / Linux und die * BSD-Familie (FreeBSD, OpenBSD und NetBSD) sind 'Unix-ähnliche' Betriebssysteme, sie verhalten sich wie Unix.

Hier ist ein Vergleich zwischen (GNU) / Linux und * BSD: http://www.freebsd.org/doc/en/articles/explaining-bsd/comparing-bsd-and-linux.html

DirtyVader
quelle
Ihr Link funktioniert nicht
Anthon
@Anthon es funktioniert
Prvt_Yadav