Was ist der Unterschied zwischen Linux und Unix?

Linux hat seine Wurzeln in Unix, ist aber nicht mit diesem identisch, obwohl es ihm sehr ähnelt. Wir werden die wesentlichen Unterschiede zwischen diesen beiden bekannten Betriebssystemen aufzeigen.

Sind sie wirklich so verschieden?

Linux ist ein kostenloses Betriebssystem, das auf Open-Source-Prinzipien basiert. Unix hingegen ist ein kommerzielles Produkt, das von diversen Anbietern in unterschiedlichen Varianten angeboten wird, die meist auf die jeweilige Hardware zugeschnitten sind. Es ist teuer und sein Quellcode ist nicht öffentlich zugänglich. Aber tun Linux und Unix nicht im Grunde dasselbe, und zwar auf ähnliche Weise? Im Wesentlichen ja.

Die Details sind jedoch etwas komplexer. Es gibt Unterschiede, die über rein technische und architektonische Aspekte hinausgehen. Um die Einflüsse zu verstehen, die Unix und Linux geformt haben, ist es notwendig, ihre jeweilige Entstehungsgeschichte zu betrachten.

Die Anfänge von Unix

Unix hat bereits über 50 Jahre auf dem Buckel. Es wurde in der Digital Equipment Corporation (DEC) in Assemblersprache für einen DEC PDP/7 als inoffizielles Projekt bei den Bell Labs entwickelt, die damals zu AT&T gehörten. Bald wurde es auf einen DEC PDP/11/20 Computer portiert und dann nach und nach auf andere Rechner bei Bell verbreitet. Eine Neufassung in der Programmiersprache C führte zur Version 4 von Unix im Jahr 1973. Das war ein Meilenstein, da es durch die Eigenschaften von C und des Compilers nun relativ einfach war, Unix auf neue Rechnerarchitekturen zu übertragen.

1973 präsentierten Ken Thompson und Dennis Ritchie auf einer Konferenz einen Vortrag über Unix. Daraufhin gingen bei Bell Anfragen nach Unix-Kopien ein. Da der Verkauf von Betriebssystemen nicht in den Aufgabenbereich von AT&T fiel, konnten sie Unix nicht als Produkt anbieten. Dies führte dazu, dass Unix mit einer Lizenz als Quellcode vertrieben wurde. Die geringen Kosten deckten Versand und Verpackung sowie eine „angemessene Lizenzgebühr“. Unix wurde „wie besehen“ geliefert, ohne technischen Support oder Fehlerbehebungen. Aber man bekam den Quellcode – und konnte ihn ändern.

Unix erfuhr eine rasche Akzeptanz in akademischen Einrichtungen. 1975 verbrachte Ken Thompson ein Sabbatical von Bell an der Universität von Kalifornien, Berkeley. Zusammen mit einigen Doktoranden begann er, ihre lokale Unix-Kopie zu erweitern und zu verbessern. Das wachsende Interesse an den Ergänzungen in Berkeley führte zur ersten Veröffentlichung der Berkeley Software Distribution (BSD). Diese war eine Sammlung von Programmen und Systemmodifikationen, die einem bestehenden Unix-System hinzugefügt werden konnten, aber kein eigenständiges Betriebssystem darstellte. Spätere Versionen von BSD waren vollständige Unix-Systeme.

Es gab nun zwei Hauptvarianten von Unix, den AT&T-Stream und den BSD-Stream. Alle anderen Unix-Varianten, wie AIX, HP-UX und Oracle Solaris sind von diesen abgeleitet. 1984 wurden einige der Beschränkungen für AT&T aufgehoben, und das Unternehmen konnte Unix produzieren und verkaufen.

Damit war die Kommerzialisierung von Unix eingeläutet.

Die Entwicklung von Linux

Angesichts der Kommerzialisierung von Unix als einer weiteren Beschneidung der Freiheiten von Computerbenutzern, machte sich Richard Stallman daran, ein Betriebssystem zu schaffen, das auf Freiheit basierte. Das bedeutete die Freiheit, den Quellcode zu verändern, modifizierte Versionen der Software weiterzugeben und die Software auf jede vom Benutzer gewünschte Weise zu nutzen.

Das Betriebssystem sollte die Funktionalität von Unix replizieren, ohne Unix-Quellcode zu enthalten. Er nannte das Betriebssystem GNU und gründete 1983 das GNU-Projekt, um das Betriebssystem zu entwickeln. 1985 gründete er die Free Software Foundation, um das GNU-Projekt zu fördern, zu finanzieren und zu unterstützen.

Alle Bereiche des GNU-Betriebssystems machten gute Fortschritte – mit Ausnahme des Kernels. Die Entwickler des GNU-Projekts arbeiteten an einem Mikrokernel namens GNU Hurd, aber die Entwicklung ging nur langsam voran. (Er ist auch heute noch in Entwicklung und nähert sich einer Veröffentlichung.) Ohne einen Kernel gab es kein Betriebssystem.

1987 veröffentlichte Andrew S. Tanebaum ein Betriebssystem namens MINIX (mini-Unix) als Lernmittel für Studenten des Betriebssystemdesigns. MINIX war ein funktionales, Unix-ähnliches Betriebssystem, wies jedoch einige Einschränkungen auf, insbesondere beim Dateisystem. Schließlich musste der Quellcode klein genug sein, um in einem einzigen Hochschulsemester ausreichend behandelt zu werden. Einige Funktionen mussten dafür geopfert werden.

Um die internen Mechanismen des neuen Intel 80386 in seinem neuen PC besser zu verstehen, schrieb ein Informatikstudent namens Linus Torvalds als Lernübung einen einfachen Code für den Aufgabenwechsel. Dieser Code entwickelte sich schließlich zu einem einfachen Proto-Kernel, der zum ersten Linux-Kernel wurde. Torvalds war mit MINIX vertraut. Tatsächlich wurde sein erster Kernel auf MINIX mit dem GCC-Compiler von Richard Stallman entwickelt.

Torvalds beschloss, sein eigenes Betriebssystem zu entwickeln, das die Einschränkungen des für den Unterricht konzipierten MINIX überwand. 1991 veröffentlichte er seine berühmte Ankündigung in der MINIX Usenet-Gruppe und bat um Kommentare und Vorschläge zu seinem Projekt.

Linux ist nicht wirklich ein Unix-Klon. Wenn Linux ein Klon von Unix wäre, wäre es Unix. Ist es aber nicht, es ist Unix-ähnlich. Der Begriff „Klon“ impliziert, dass ein kleiner Teil des Originals zu einer neuen, exakten Nachbildung des Originals kultiviert wird. Linux wurde von Grund auf neu entwickelt, um das Erscheinungsbild von Unix zu erhalten und dieselben Anforderungen zu erfüllen. Es ist weniger ein Klon, sondern eher ein Replikant.

Jedenfalls war Linux ein Kernel, der ein Betriebssystem suchte; GNU war ein Betriebssystem, das einen Kernel suchte. Im Nachhinein scheint das, was als nächstes geschah, unvermeidlich gewesen zu sein. Es hat auch die Welt verändert.

Wer treibt die Entwicklung voran?

Eine Linux-Distribution setzt sich aus vielen verschiedenen Komponenten zusammen, die von unterschiedlichen Orten stammen. Der Linux-Kernel, die GNU-Suite von Kernprogrammen und die User-Land-Anwendungen werden kombiniert, um eine brauchbare Distribution zu schaffen. Und jemand muss das kombinieren, warten und verwalten – genauso wie jemand den Kernel, die Anwendungen und die wichtigsten Hilfsprogramme entwickeln muss. Die Betreuer der Distributionen und die Communitys jeder Distribution tragen genauso dazu bei, eine Linux-Distribution zum Leben zu erwecken, wie die Kernel-Entwickler.

Linux ist das Ergebnis einer dezentralisierten Zusammenarbeit von unbezahlten Freiwilligen, von Organisationen wie Canonical und Red Hat sowie von der Industrie geförderten Personen.

Jedes kommerzielle Unix wird als eine einzige, zusammenhängende Einheit unter Nutzung interner – oder streng kontrollierter ausgelagerter – Entwicklungsressourcen entwickelt. Diese haben oft einen individuellen Kernel und sind speziell auf die Hardwareplattformen jedes Herstellers zugeschnitten.

Die freien und Open-Source-Derivate des BSD-Unix-Streams, wie FreeBSD, OpenBSD und DragonFlyBSD, verwenden eine Mischung aus altem BSD-Code und neuem Code. Sie sind jetzt Community-basierte Projekte und werden ähnlich wie Linux-Distributionen verwaltet.

Standards und Konformität

Im Allgemeinen ist Linux weder mit der Single UNIX Specification (SUS) noch mit POSIX konform. Es ist bestrebt, beide Standards zu erfüllen, ohne ihnen jedoch sklavisch zu folgen. Es gab eine oder zwei – buchstäblich eine oder zwei – Ausnahmen, wie beispielsweise Inspur K-UX, ein chinesisches Linux, das POSIX-konform ist.

Ein echtes Unix, wie die kommerziellen Angebote, ist konform. Einige BSD-Derivate, darunter alle bis auf eine Version von macOS, sind POSIX-konform. Die Namen der Varianten wie AIX, HP-UX und Solaris sind Marken der jeweiligen Organisationen.

Marken und Urheberrechte

Linux ist eine eingetragene Marke von Linus Torvalds. Die Linux Foundation verwaltet die Marke in seinem Auftrag. Der Linux-Kernel und die Kerndienstprogramme werden unter verschiedenen GNU „Copyleft“ General Public Licenses veröffentlicht. Der Quellcode ist frei zugänglich.

Unix ist eine eingetragene Marke der Open Group. Es ist urheberrechtlich geschützt, proprietär und nicht quelloffen.

FreeBSD ist urheberrechtlich geschützt vom FreeBSD-Projekt, und der Quellcode ist verfügbar.

Unterschiede in der Anwendung

Aus der Perspektive des Benutzers gibt es an der Befehlszeile keinen großen, offensichtlichen Unterschied. Aufgrund der POSIX-Standards und der Konformität kann Software, die für Unix geschrieben wurde, mit geringem Aufwand für ein Linux-Betriebssystem kompiliert werden. Shell-Skripte beispielsweise können in vielen Fällen direkt unter Linux verwendet werden, ohne oder mit geringen Änderungen.

Einige der Befehlszeilen-Dienstprogramme haben leicht unterschiedliche Befehlszeilen-Optionen, aber im Wesentlichen steht auf beiden Plattformen das gleiche Arsenal an Werkzeugen zur Verfügung. Tatsächlich hat IBMs AIX eine AIX Toolbox für Linux-Anwendungen. Diese ermöglicht es dem Systemadministrator, Hunderte von GNU-Paketen (wie Bash, GCC usw.) zu installieren.

Die verschiedenen Unix-Varianten verfügen über unterschiedliche grafische Benutzeroberflächen (GUI), ebenso wie Linux. Ein Linux-Benutzer, der mit GNOME oder Mate vertraut ist, muss sich bei der ersten Begegnung mit KDE oder Xfce zwar erst zurechtfinden, wird sich aber bald daran gewöhnen. Ähnliches gilt für die unter Unix verfügbaren GUIs, wie Motif, die Common Desktop Environment und das X Window System. Sie sind alle ähnlich genug, um von jedem bedient werden zu können, der mit den Konzepten einer Fensterumgebung mit Dialogen, Menüs und Symbolen vertraut ist.

Bei der Administration der Systeme werden die Unterschiede deutlicher. Zum Beispiel gibt es unterschiedliche Init-Mechanismen. Derivate von Unix System V und die BSD-Streams haben unterschiedliche Init-Systeme. Die freien BSD-Varianten behielten die BSD-Init-Schemata bei. Standardmäßig verwenden Linux-Distributionen entweder ein von Unix System V abgeleitetes Init-System oder systemd.

Schaltgetriebe vs. Automatik

Wenn man das eine Auto fahren kann, kann man auch das andere fahren – auch wenn es am Anfang vielleicht etwas holprig ist.

Abgesehen vom Preis sind die Unterschiede in Philosophie, Lizenzierung, Entwicklungsmodell, Community-Organisation sowie Art und Stil der Governance größer und bedeutender als die Unterschiede in den Befehlszeilenparametern, beispielsweise zwischen einer Version von grep und einer anderen.

Die größten Unterschiede sind nicht die, die man auf dem Bildschirm sieht.