Ein unixoides, unixähnliches oder unixartiges System ist ein Betriebssystem, das versucht, die Verhaltensweise von Unix zu implementieren. Bis zur Mitte der 1990er Jahre bezog man sich dabei auf die Referenz des von AT&T vertriebenen Unix-System-V-Produkts, mit dem andere Softwarehersteller kompatibel blieben. Nachfolgend bezeichnet es Systeme, die die Single UNIX Specification der Open Group nur teilweise umsetzen, darunter die BSD-artigen-Systeme, oder die volle Konformität nicht nachweisen, darunter Linux.
Die Begriffseinführung ist mit der Geschichte von Unix selbst verbunden. Das ursprüngliche Unix-Betriebssystem, das 1969 an den Bell Labs entwickelt wurde, wurde mitsamt Quellcode veröffentlicht. Die ersten Weiterentwicklungen, anfänglich nur an den Universitäten, waren durch die Benutzung dieses Quellcodes selbst Unix-Varianten und konnten den Begriff „Unix“ noch frei verwenden. Mit dem Beginn der Kommerzialisierung der ursprünglichen Entwicklungslinie ab 1979 wurde der Markenname UNIX stärker überwacht, d. h. nur die Lizenznehmer durften ihre Software als UNIX bezeichnen (zum Beispiel Siemens Sinix, aber nicht Microsoft Xenix). Andere Firmen, die ihre Betriebssysteme nach dem Standard der universitären Unix-Varianten entwickelt hatten, mussten andere Bezeichnungen verwenden. So entstanden in den späten 1970er und frühen 1980er Jahren diverse Wortschöpfungen, die auf die Ähnlichkeit mit Unix hinwiesen, etwa für Systeme wie Idris (1978), μnOS (1982), Coherent (1983) und UniFlex (1985). Die Unterscheidung zwischen den auf AT&T-Quellen basierenden und mit der Marke UNIX verknüpften Systemen wurde teilweise auch über die vom Markennamen abweichende Schreibweise Unix vorgenommen, was aber teils als nicht hinreichend unterscheidbar angesehen wurde.
Zur Wiedererkennung verwendeten spätere Betriebssysteme, die Unix-ähnlich sein wollten, dann verstärkt einen Eigennamen, der auf -x oder -ix endete, darunter AIX, A/UX, HP-UX, IRIX, Ultrix, Xenix sowie Minix und Linux. Darausfolgend bildete sich auch eine Schreibform „Un*x“[1] für den Oberbegriff heraus, der das Verbindende in der Endungsform noch anzeigt, sich von der Wortmarke UNIX (und Unix) aber noch hinreichend unterscheidet. Als sich 1985 eine Arbeitsgruppe bei der IEEE zusammenfand, um einen definierten Mindeststandard für Unix-artige Betriebssysteme zu beschreiben, verwendeten sie dann auch einen Projekttitel „IEEE-IX“ mit ebendieser „-ix“-Endung, und der 1988 veröffentlichte IEEE-Standard 1003 zum „Portable Operating System Interface“ wurde als POSIX abgekürzt (heute „POSIX.1“).
Die Verwendung des Begriffes Unix wandelte sich ab 1993, als die X/Open Gruppe, ein Konsortium von Herstellern Unix-ähnlicher Betriebssysteme, den Markennamen UNIX von Novell kaufte. Die Hersteller hatten eine Spezifikation unter dem Namen X/Open Portability Guide (XPG) erstellt und erlaubten Firmen, ihre Software nach diesen Richtlinien zertifizieren zu lassen. Statt einer Abkunft vom ursprünglichen Unix-Quellcode bezeichnete UNIX nun die erfolgreiche Abnahmeprüfung,[2] und mit dem Zusammenschluss der X/Open Gruppe mit der Open Software Foundation (OSF), einem anderen Herstellerverband Unix-ähnlicher Systeme, steht UNIX seitdem in Verwendung als Testsiegel. Die 1996 geschaffene Open Group entwickelte den Prüfkatalog der „Single UNIX Specification“ (kurz SUS) und bezeichnete die Generationen mit den Markenzeichen UNIX 95 (auf Basis XPG4) und UNIX 98 (für die SUS-Version2 mit 64-Bit-Erweiterung). Nach 1998 wird die SUS gemeinsam mit der POSIX-Spezifikation entwickelt (Austin Group)[3] und mündet in UNIX 03 (SUS Version3, POSIX 2001 edition) – eine Unix-Ähnlichkeit bezieht sich dann auf diese Anforderungskataloge.
Obwohl nun frei zugänglich, verwenden nicht alle Unix-artigen Systeme den Markennamen UNIX. Zum einen vermieden freie Betriebssysteme wie Linux die Zertifizierung aus Kostengründen, obwohl sie alle Anforderungen erfüllten. Zum anderen basiert die Testspezifikation der Unix-Hersteller auf dem System V[4][5], die sich in einigen Punkten von der Entwicklung der Universität Berkeley unterscheidet – die BSD-basierten Betriebssysteme wie NetBSD, FreeBSD oder OpenBSD sind so nicht völlig SUS-konform.[5][6] So sind auch aktuelle Systeme wie Linux oder GNU Hurd nur Unix-ähnlich, aber nicht UNIX-konform.
Es gibt grundsätzlich zwei unterschiedliche Kategorien unixoider Betriebssysteme: „genetische“ Unices, die vom Quellcode des ursprünglichen, von den Bell Laboratories entwickelten, Unix abstammen, und „funktionelle“ Unices, die unabhängig davon entwickelt wurden, aber dessen Funktionsweise nachahmen.
Der Hacker und Programmierer Eric S. Raymond hat zusätzlich eine dritte Kategorie vorgeschlagen, sodass die Einteilung folgendermaßen aussieht:[7]
Die Einordnung eines Systems vor allem in die erste und die letzte Kategorie ist nicht immer eindeutig möglich, da diese Systeme aufgrund ihrer freien Lizenzen und der bei Unix üblichen Trennung zwischen Kernel und Userland (s. u.) durchaus auch kombiniert werden können, wie etwa bei Gentoo/FreeBSD.
Die erste Kategorie ist noch weiter in proprietär genetisches Unix und frei genetisches Unixoid (BSD-Linie) unterteilbar. Proprietäre genetische Unices sind zum Beispiel AIX, IRIX, HP-UX, Solaris, SCO Unix und macOS, wobei bei letzterem das Subsystem Darwin frei ist (APSL, GNU GPL unter anderem), alle höheren Programmierschnittstellen und Frameworks jedoch proprietär sind. Frei genetische Unices bzw. Unixoide sind zum Beispiel FreeBSD, NetBSD, OpenBSD und Darwin.
Die Systemarchitekturen unixoider Systeme besitzen Gemeinsamkeiten. Ihnen werden allgemeine Vorteile eines ausgereiften Designs wie Sicherheit, Stabilität und Effizienz nachgesagt. Viele Namen unixoider Systeme enden auf „-ux“ oder „-ix“ oder bilden rekursive Akronyme.
Unixoide Systeme besitzen eine allgemeine Modularität, die insbesondere in der Trennung von Kernel und Userland bestehen. Wichtige Bestandteile eines unixoiden Systems sind eine Unix-Shell, hier insbesondere die Kornshell, die Bourne-Shell und deren freie Implementierung, die Bourne-again shell (bash), sowie der Grafikserver X11. Unixoide Systeme bieten von Haus aus eine Benutzerverwaltung (siehe auch Root-Konto und Unix-Dateirechte) und versuchen eine Client-Server-Architektur abzubilden. Sie verfolgen dabei die Devise „alles ist eine Datei“, was zu einer standardisierten Verzeichnisstruktur geführt hat (siehe dazu auch Stammverzeichnis, Mounten, Filesystem Hierarchy Standard und Daemon) (siehe dazu auch die Artikel Unix-Philosophie und Unix-Kommandos).
In Zusammenhang mit unixoiden Systemen steht auch die Freie-Software-Bewegung. Richard Stallman gründete 1983 das GNU-Projekt, um den Verlust des zuvor an Universitäten als Quelltext frei verfügbaren Betriebssystems Unix zu ersetzen, indem die Bestandteile des Betriebssystems UNIX vollständig neu entwickelt und unter einer freien Lizenz veröffentlicht wurden.[9]
Anfang der 1980er Jahre stellte man das GNU-System bis auf den Kernel Hurd weitgehend fertig und setzte es auf den verschiedensten Systemen, vom Atari-ST- bis zu Z80-Computern oder auch auf den IBM-PC-Systemen unter MS-DOS ein, um eine Unix-artige Arbeitsumgebung zu schaffen. Unter MS-DOS war der Nutzen, z. B. mit DJGPP stark eingeschränkt, da das MS-DOS-System in keiner Weise Multitasking-fähig war und keine echten Pipes kannte.
Als Linus Torvalds im Januar 1992 seinen Linux-Kernel unter der GNU-GPL verfügbar machte, wurde ein vollständig freies Betriebssystem auch auf IBM-PC-kompatiblen Computern nutzbar. Die heutzutage am häufigsten verwendete GNU-Variante ist deshalb jene, die den Linux-Kernel benutzt und daher meist vereinfachend nur „Linux“ genannt wird. Die Free Software Foundation, Debian und einige andere Organisationen bevorzugen jedoch die Bezeichnung GNU/Linux, um sich von Linux zu distanzieren, da sie von Linux abweichende politische Ziele verfolgen: während Linus Torvalds dem Open-Source-Lager zuzuordnen ist, kämpft insbesondere die Free Software Foundation für das Prinzip der Freien Software. Sie sieht durch die Vereinnahmung von GNU durch Linux die Gefahr, dass dabei ihre politische Botschaft an Bedeutung und Aufmerksamkeit verliert.[10][11] Das Debian-Projekt drückt durch die Bezeichnung als GNU/Linux aus, dass Linux nur einer von vielen möglichen Kerneln für GNU ist. Dies wird besonders dadurch deutlich, dass es mittlerweile Debian auch in einer GNU/kFreeBSD-Variante (mit FreeBSD-Kernel) gibt sowie eine Debian Variante GNU/Hurd (mit GNU Hurd-Kernel) in Arbeit ist.[12]