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?
27
Antworten:
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 ):
quelle
man unimplemented
zB (IIRC, könnte es seinman security
) auf einem GNU / Linux-System.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
quelle