Ist Linux ein Unix?

190

Es gibt also viele verschiedene Versionen von Unix: HP-UX, AIX, BSD usw. Linux wird eher als Unix-Klon denn als Implementierung von Unix betrachtet. Sind alle "echten" Unices echte Nachkommen des Originals? Wenn nicht, was unterscheidet Linux von Unix?

Shawn J. Goff
quelle

Antworten:

224

Das hängt davon ab, was Sie unter "Unix" und unter "Linux" verstehen.

  • UNIX ist eine eingetragene Marke von The Open Group . Die Marke hat eine bewegte Geschichte hinter sich und es ist nicht ganz klar, dass sie aufgrund der weit verbreiteten Verwendung von „Unix“ in Bezug auf Unix-ähnliche Systeme nicht generisch ist (siehe unten). Gegenwärtig gewährt die Open Group jedem System, das eine Single-UNIX- Zertifizierung besteht, die Verwendung der Marke . Siehe auch Warum gibt es im Internet ein *, wenn Unix erwähnt wird? .

  • Unix ist ein Betriebssystem, das 1969 in Bell Labs geboren wurde . Verschiedene Unternehmen haben Code verkauft, der von diesem ursprünglichen System abgeleitet ist, und verkaufen ihn auch weiterhin, z. B. AIX , HP-UX , Solaris . Siehe auch Evolution von Betriebssystemen von Unix .

  • Es gibt viele Unix-ähnliche Systeme, die Programmierern, Benutzern und Administratoren ähnliche Schnittstellen bieten. Das älteste Produktionssystem ist die Berkeley Software Distribution , die sich schrittweise von Unix-basiert (dh mit Code aus der ursprünglichen Implementierung) zu Unix-ähnlich (dh mit einer ähnlichen Schnittstelle) entwickelt hat. Es gibt viele BSD-basierte oder BSD-abgeleitete Betriebssysteme: FreeBSD , NetBSD , OpenBSD , Mac OS X usw. Weitere Beispiele sind OSF / 1 (jetzt eingestellt, es war ein kommerzielles Unix-ähnliches, nicht-Unix-basiertes System). Minix(ursprünglich ein Spielzeug-Unix-ähnliches Betriebssystem, das als Lehrmittel verwendet wird, jetzt ein in die Produktion eingebettetes Unix-ähnliches System) und vor allem Linux .


  • Genau genommen ist Linux ein Betriebssystemkernel, der wie der Unix-Kernel aufgebaut ist.

  • Linux wird am häufigsten als Name für Unix-ähnliche Betriebssysteme verwendet, die Linux als Kernel verwenden. Da viele der Tools außerhalb des Kernels Teil des GNU-Projekts sind , werden solche Systeme oft als GNU / Linux bezeichnet . Alle wichtigen Linux-Distributionen bestehen aus GNU / Linux und anderer Software.

  • Es gibt Linux-basierte Unix-ähnliche Systeme, die nicht viele GNU-Tools verwenden, insbesondere in der Embedded-Welt, aber ich denke, dass keines davon GNU-Entwicklungstools, insbesondere GCC , überflüssig macht .

  • Es gibt Betriebssysteme mit Linux als Kernel, die jedoch nicht Unix-ähnlich sind. Am bekanntesten ist Android , das keine Unix-ähnliche Benutzererfahrung hat (obwohl Sie eine Unix-ähnliche Befehlszeile installieren können), Administratorerfahrung oder (meistens) Programmiererfahrung („native“ Android-Programme verwenden eine API, die dies ermöglicht) ist völlig anders als Unix).

Gilles
quelle
70
Und vergessen wir nicht, dass GNU für "GNU is Not Unix" steht!
Alex
57
"Gnu ist kein Unix" bedeutet, dass Gnu nicht auf Unix-Originalcode basiert, nicht dass Gnu keine Unix-Spezifikationen implementieren möchte. Zitat von rms: "Free Unix! Ab diesem Erntedankfest werde ich ein vollständiges Unix-kompatibles Softwaresystem namens GNU (für Gnus Not Unix) schreiben und es kostenlos (1) an alle weitergeben, die es verwenden können."
Juli
8
Wenn eine Linux-Distribution als UNIX zertifiziert werden wollte, musste sich nicht viel ändern, und das könnte auch so sein. Aber ich habe noch nie gehört, dass irgendjemand das ganze Geld dafür bezahlt hätte, was zu diesem Zeitpunkt so wenig wert wäre.
Kevin Cantu
6
@ Kevin: Caldera (jetzt bekannt unter einem anderen Namen) hat einmal daran gearbeitet, obwohl sie nicht den ganzen Weg gegangen sind (sie scheinen die Idee aufgegeben und stattdessen auf LSB gedrängt zu haben, bevor sie plötzlich vergaßen, dass sie jemals davon gehört hatten Linux).
Gilles
4
@milkovsky Nein. Wie ich in meiner Antwort erläutere, hat das Wort "Linux" zwei Bedeutungen. "Android ist Linux-basiert" ist wahr mit der Bedeutung 1 (der Kernel). "Linux ist Unix-like" ist wahr mit der Bedeutung 2 (das Betriebssystem).
Gilles
58

In jeder Hinsicht ist eine typische moderne Linux-Distribution (Ubuntu, Debian, Red Hat, Fedora, Slackware usw.) ein Unix, aber streng genommen kann kein System behaupten, Unix zu sein, ohne zertifiziert zu sein Unix-like. Sie sind von Unix inspiriert und setzen seine Kultur fort.

Dies gilt auch für BSD-Systeme.

Mac OS X ist Unix-zertifiziert, daher ist es sowohl im Namen als auch in der Tat Unix. (und es basiert tatsächlich auf BSD).

Da Linux selbst nur ein Kernel ist, kann es verwendet werden, um nicht-unix-ähnliche Systeme (wie Android) zu erstellen.

hasen
quelle
1
Hinweis: Der Mac OS X-Kernel basiert nicht auf einem BSD-Kernel. Der Benutzermodus basiert nach meinem Wissen auf FreeBSD und in Teilen auf NetBSD.
0xC0000022L
2
Der heutige Kernel unterscheidet sich vielleicht ziemlich vom BSD-Kernel, aber ich denke, er basierte ursprünglich (zumindest teilweise) darauf.
Hasen
3
Es sollte beachtet werden, dass FreeBSD ein direkter Nachfahre von ATT Unix ist und einmal ATT Unix-Code enthielt. Es wurde nicht nur von Unix "inspiriert".
Rob
2
@ 0xC0000022L und wir gehen jetzt weiter "Frühe Versionen von Mach hatten monolithische Kernel mit viel BSD-Code im Kernel. Mach 3.0 war die erste Mikrokernel-Implementierung." Für mich ist osxbook.com/book/bonus/ancient/whatismacosx/arch_xnu.html eine ziemlich maßgebliche Quelle.
Poige
2
Und zum Schluss: "Zu den Aspekten, für die BSD verantwortlich ist, gehören: Prozessmodell - Benutzer - IDs, Berechtigungen, grundlegende Sicherheitsrichtlinien POSIX - API, TCP / IP - Stapel von BSD - Stilsystemen, BSD - Sockets, Firewall - VFS und Dateisysteme (siehe Mac OS X - Dateisysteme für Details) System V IPC Crypto Framework verschiedene Synchronisationsmechanismen ". Für mich ist das genug, um zu sagen, dass es auf BSD basiert. Der Wahrheit ins Gesicht schauen.
Poige
23

Linux ist eher "Unix-artig", also könnte man es vereinfacht als Klon bezeichnen, genauso wie BSDs (obwohl BSDs zugegebenermaßen näher an Unix als an Linux liegen könnten).

Die Hauptsache, die Linux den Unix-ähnlichen Titel verleiht, ist die Tatsache, dass es mit der Zeit fast vollständig mit den POSIX- Standards (Portable Operating System Interface [für Unix]) kompatibel ist .

Die andere Schlüsselsache ist die Vererbung von Code usw. , wie auf Wikipedia gezeigt, Linux stammt eigentlich nicht aus Unix-Quellen, sondern ist von Grund auf neu aufgebaut (dies ist jedoch umstritten).

Das Wichtigste, was Unix von Linux unterscheidet, sind die Vorfahren und die Standards, die es erfüllt.

NJ
quelle
1
Es gibt auch die Single-Unix-Spezifikation zu berücksichtigen.
Dennis Williamson
Ich würde definitiv sagen, dass die BSDs näher an Unix sind als an Linux. Aufgrund der liberaleren Lizenz von BSD und der engen Entwicklung mit AT & T UNIX werden viele BSD-Quellcodes und ihre APIs in kommerziellen Unix-Umgebungen verwendet. Das UFS-Dateisystem in Solaris und einigen anderen kommerziellen UNIX-Systemen stammt direkt von BSD. Außerdem wurde die Berkely Sockets-API (nicht unbedingt die Quelle), die von allem, einschließlich Linux, verwendet wird, unter BSD entwickelt.
Pinguin359
3
Nach dem ganzen Chaos zwischen SCO und IBM ist klar geworden, dass der Linux-Kernel überhaupt keinen Unix-Code enthält .
Vonbrand
11

Die gewählte Antwort erklärt es ziemlich ausführlich, aber Sie müssten sich eine ganze Dokumentation ansehen, um alle Details zwischen der anfänglichen Entwicklung von UNIX und der Entwicklung von Linux zu erfahren.

Zunächst muss man bedenken, dass Linux der Kernel ist, der von Linux und anderen Programmierern erstellt wurde. Er entschied sich, es mit der GPL zu veröffentlichen, die zu dieser Zeit eine Lizenz der FSF (RMS und anderer Leute) war, die auch ihren eigenen Kernel und GNU entwickelten.

Was wir normalerweise Linux nennen, ist zunächst der Kernel sowie alle anderen Tools, die ursprünglich aus dem GNU-Projekt stammen. Diese beiden Projekte unterscheiden sich historisch, da zu dieser Zeit der Kernel der FSF-Leute aufgegeben wurde, um den Linux-Kernel zu bevorzugen, der viel besser war.

Ich erinnere mich, dass es einen Dokumentarfilm gibt, den Sie sich unbedingt ansehen sollten. Ich finde ihn wichtig für Ihre Programmierkultur.

Eine andere Sache, die Sie berücksichtigen müssen, wenn Sie über "* nix" nachdenken, ist alles, was POSIX und andere architekturstandardisierte Dinge betrifft. Es ist Gegenstand von OS Design / Research, definiert aber genau, wie die beteiligten Betriebssysteme funktionieren, und ist entscheidend, wenn ein Kernel gut mit seinen Tools funktioniert.

jokoon
quelle
Eigentlich heißt POSIX jetzt SUS (Single Unix Specification), was schon erwähnt wurde.
0xC0000022L
1
@STATUS POSIX war die Basis für SUSv2. Die Austin Group wurde später als gemeinsame Arbeitsgruppe zwischen der IEEE, die POSIX gründete, und The Open Group, die das UNIX-Warenzeichen und die UNIX-Spezifikation besitzt, gegründet. Sie veröffentlichten POSIX: 2001, auch bekannt als SUSv3. Soweit ich das beurteilen kann, sind sie eins. POSIX wird noch mit POSIX: 2004 und POSIX: 2008 entwickelt, die den Kern von SUSv4 bilden. Ich glaube nicht, dass POSIX noch tot ist. en.wikipedia.org/wiki/Single_UNIX_Specification
Pinguin359
Ich verstehe, dass SUS POSIX mit einigen Ergänzungen ist.
Vonbrand
Link zu diesem Dokumentarfilm?
Edward Torvalds
edward torvalds Entschuldigung, ich kann mich nicht an den Titel erinnern. Es war hauptsächlich mit RMS ausgestattet und sah aus wie ein altes Dokument.
jokoon
6

Es gibt bereits viele großartige Antworten, aber ich dachte, dass die Ansichten des großartigen Dennis Ritchie (Mitentwickler von Unix) eine interessante Ergänzung zu den anderen eher technischen Antworten darstellen würden.

Es scheint, dass Dennis Ritchie Linux als legitimes Unix-Derivat ansah. In einem Interview von 1999 für LinuxFocus.org wurde er gefragt:

Wie beurteilen Sie die Dynamik von Linux und die Entscheidung vieler Unternehmen, Software dafür zu entwickeln?

Seine Antwort auf die Frage war

Ich finde das Linux-Phänomen sehr erfreulich, weil es so stark auf der Basis von Unix basiert. Linux scheint eines der gesündesten direkten Unix-Derivate zu sein, obwohl es auch die verschiedenen BSD-Systeme sowie die offiziellen Angebote der Hersteller von Workstations und Mainframes gibt. Ich kann natürlich nicht anders, als zu beobachten, dass die von "Free Source" abgeleitete Welt unter genau der gleichen Art von Fragmentierung und Streit leidet, die in der Geschäftswelt aufgetreten ist und immer noch auftritt.

Anthony Geoghegan
quelle
1

Historisch gesehen hat Linus Torvalds einen verbesserten Klon von Minix OS erstellt. Die Entwicklung von Linux konzentriert sich nicht auf eine bestimmte Plattform und Kundenbasis, und Linux-Entwickler verfügen über eine Vielzahl von Erfahrungen und Perspektiven. Betriebssysteme wie HP-UX, AIX, Solaris und andere sind hauptsächlich für Anbieter geeignet.

In der Linux-Community gibt es keine strengen Standards für Tools oder Umgebungen. Dieser Mangel an Standardisierung führt zu erheblichen Inkonsistenzen innerhalb von Linux. Für einige Entwickler ist die Fähigkeit, die besten Leistungen anderer Betriebssysteme zu nutzen, ein Plus, aber es ist nicht immer praktisch, UNIX-Elemente unter Linux zu kopieren, wenn beispielsweise die Gerätenamen in Linux von AIX übernommen werden können, während die Tools für Die Arbeit mit dem Dateisystem konzentriert sich auf HP-UX. Solche Inkompatibilitäten treten auch bei verschiedenen Linux-Distributionen auf.

Quarind
quelle
0

Unix, ursprünglich UNICS (UNiplexed Information and Computing Service).

Unix (als UNIX gekennzeichnet) ist eine Familie von Multitasking-Mehrbenutzer-Betriebssystemen, die vom ursprünglichen AT & T-Unix abgeleitet sind. Die Entwicklung begann 1969 und wurde im Oktober 1973 außerhalb von Bell abs angekündigt.

Verschiedene akademische und kommerzielle Unix-Varianten von Anbietern wie der University of California, Berkeley (BSD), Microsoft (Xenix), IBM (AIX) und Sun Microsystems (Solaris).

  • BSD ( B erkeley S oftware D istribution) Mitteilungen vorgesehen , um eine Basis für mehrere Open - Source - Entwicklungsprojekte, die im Gange sind, zB FreeBSD, OpenBSD, NetBSD, Darwin und TrueOS.
  • Xenix ist eine abgekündigte Version des von Microsoft lizenzierten Unix-Betriebssystems für verschiedene Mikrocomputer-Plattformen.
  • AIX ( A dvanced I nteractive e X ecutive) entwickelt und für einige seiner Computerplattformen von IBM verkauft.

Linux ist eine Familie von kostenlosen und Open-Source-Software-Betriebssystemen, die auf dem Linux-Kernel aufbauen. Die entscheidende Komponente von Linux ist der Linux-Kernel, ein Betriebssystemkernel, der am 17. September 1991 von Linus Torvalds erstmals veröffentlicht wurde.

Linux ist in einer Form verpackt, die als Linux-Distribution (oder kurz als Distribution) sowohl für den Desktop- als auch für den Servereinsatz bekannt ist. Einige der beliebtesten und am weitesten verbreiteten Linux-Distributionen sind Arch Linux, CentOS, Debian, Fedora, Gentoo Linux, Linux Mint, Mageia, openSUSE und Ubuntu sowie kommerzielle Distributionen wie Red Hat Enterprise Linux

Die Benutzeroberfläche, die auch als Shell bezeichnet wird, ist entweder eine Befehlszeilenschnittstelle (CLI), eine grafische Benutzeroberfläche (GUI) oder über Steuerelemente, die an die zugeordnete Hardware angeschlossen sind. Dies ist bei eingebetteten Systemen üblich. Bei Desktopsystemen ist der Standardmodus normalerweise eine grafische Benutzeroberfläche, obwohl die CLI normalerweise über Terminalemulatorfenster oder auf einer separaten virtuellen Konsole verfügbar ist.

  • CLI-Shells sind textbasierte Benutzeroberflächen, die sowohl für die Eingabe als auch für die Ausgabe Text verwenden. Die dominante Shell unter Linux ist die Bourne-Again-Shell (Bash), die ursprünglich für das GNU-Projekt entwickelt wurde.
  • GUI-Shells sind K Desktop Environment (KDE), GNOME, MATE, Cinnamon, Unity, LXDE, Pantheon und Xfce. Es gibt jedoch eine Vielzahl zusätzlicher Benutzeroberflächen. Die meisten gängigen Benutzeroberflächen basieren auf dem X Window System, das oft einfach als "X" bezeichnet wird.

GNU ist ein Betriebssystem und eine umfangreiche Sammlung von Computersoftware. GNU besteht zu 100% aus freier Software, die größtenteils unter der GPL des GNU-Projekts lizenziert ist. GNU ist eine rekursive Abkürzung für "GNU's Not Unix!", Die gewählt wurde, weil das Design von GNU Unix-ähnlich ist, sich aber von Unix dadurch unterscheidet, dass es freie Software ist und keinen Unix-Code enthält. Die Entwicklung des GNU-Betriebssystems wurde 1983 von Richard Stallman initiiert, als er am Massachusetts Institute of Technology (MIT) im Artificial Intelligence Laboratory arbeitete.

Zu den Basiskomponenten zählen die GNU Compiler Collection (GCC), die GNU C-Bibliothek (glibc) und die GNU Core Utilities (coreutils), aber auch der GNU Debugger (GDB), die GNU Binary Utilities (binutils), die GNU Bash-Shell und GNOME Desktop-Umgebung.

Premraj
quelle
-7

Linux ist ein Unix-ähnliches Betriebssystem, das von Linus Torvalds und Tausenden anderen entwickelt wurde.
BSD ist ein UNIX-Betriebssystem, das aus rechtlichen Gründen als Unix-Like bezeichnet werden muss.
OS X ist ein grafisches UNIX-Betriebssystem, das von Apple Inc. entwickelt wurde.

Linux ist das bekannteste Beispiel für ein "echtes" Unix-Betriebssystem. Es läuft auf allem und unterstützt weit mehr Hardware als BSD oder OS X. Ein interessantes Zitat, das ich beim Vergleich von BSD und Linux gefunden habe:

Linux ist das, was Sie bekommen, wenn sich ein Haufen PC-Hacker hinsetzt und versucht, ein Unix-System für den PC zu schreiben. BSD erhalten Sie, wenn sich eine Reihe von UNIX-Hackern hinsetzt und versucht, ein Unix-System auf den PC zu portieren.

BSD ähnelt eher einem Unix-Betriebssystem als Linux. Bemerkenswert ist auch, dass Apple BSD- und Linux-Komponenten einsetzt. Apple verwendet APT von Debian und Ubuntu auf den Plattformen iOS und OS X. Und es basiert auf BSD. (Der Kernel ist jedoch Darwin, was ein eigener Kernel ist. Beastie the platypus ist das Darwin-Maskottchen, da er eine Mischung aus Beastie von BSD und einem Platypus ist.)

Wenn Sie ein "echtes" Unix-Betriebssystem wollen (eines, das auf allen Geräten läuft und viele Hardware unterstützt), probieren Sie Linux aus.
Wenn Sie Hardwareunterstützung und Kopfschmerzen vom unteren Ende wünschen (ich weiß, ich werde eine Menge Hass bekommen, aber es ist mir egal), verwenden Sie BSD.
Wenn Sie mehr als 1000 US-Dollar ausgeben möchten, verwenden Sie OS X und iOS. (Wieder werde ich wahrscheinlich eine Menge Hass bekommen.)

Ich bin ein langjähriger Linux-Benutzer, der es von Anfang der 90er bis Anfang der 2000er Jahre ein- und ausschaltete und es dann für eine Weile nicht mehr verwendete, es aber Mitte 2012 wieder als mein permanentes Betriebssystem verwendete, sodass ich es jedem empfehlen kann, der es möchte etwas anderes als Windoze versuchen.

Craig Wessel
quelle
4
Da sich Linux in letzter Zeit mit Wayland / systemd / etc ändert, entfernt es sich immer mehr von einem Unix-ähnlichen System und wird zu einer eigenen Einheit. Es macht sich weniger kompatibel mit echten Unix- und Unix-ähnlichen Systemen, bis diese realen Systeme eine "egal" -Einstellung gegenüber Linux entwickelt haben. Ihre "Empfehlungen" sind weit von der Basis entfernt und lassen mich Ihnen zustimmen, dass Sie seit 15 Jahren nichts von alledem angerührt haben.
Rob
11
Linux ist kein Betriebssystem, sondern ein Kernel.
Martin Schröder
3
Apple verwendet kein APT von Debian. Es enthält ein völlig anderes Tool namens APT (Java Annotation Processing Tool). Und die Jailbreak-Community nutzt APT als Paket-Manager, um iOS-Software gegen Apples Willen zu installieren.
abarnert
4
Tatsächlich ist fast jede Aussage in dieser Antwort falsch. "Läuft auf vielen Systemen == Unix" ist lächerlich. Apple hat noch nie ein System mit iOS im Wert von über 1000 US-Dollar auf den Markt gebracht. BSD ist eine Familie von Unix- und Unix-ähnlichen Systemen, kein einzelnes Betriebssystem. Linux ist ein Kernel, der mit einem Unix-ähnlichen Userland (wie GNU), einem abgespeckten Unix-ähnlichen Userland (wie eLinux oder Android) oder allem anderen kombiniert werden kann. Und so weiter.
abarnert