Benutzer:Bakunin/Unix
Einleitung
[Bearbeiten | Quelltext bearbeiten]UNIX (ausgeprochen [Multitasking-Betriebssystem für Computer, das für den Mehrbenutzersystem-Betrieb ausgelegt ist. Es existiert seit August 1969[1], allerdings hat sich im Laufe dieser Zeit die Definition, was unter UNIX bzw. ähnlichen Systemen zu verstehen ist, stark gewandelt (siehe unten, Typologie). Es existieren heute eine Vielzahl von Betriebssystemen, die unterschiedliche Grade der Ähnlichkeit beziehungsweise der Übernahme von in UNIX entwickelten Konzepten aufweisen (siehe UNIX-Derivate).
]) ist einNeben seinem Einsatz als Betriebssystem war und ist UNIX und die hinter seiner Entwicklung stehende (und von den Protagonisten durchaus wortreich vertretene[2]) Philosophie auch ein Kondensationspunkt für teilweise erbittert geführte Diskussionen über methodologische und konzeptionelle Fragen der Software-Entwicklung allgemein und des Designs von Betriebssystemen und Netzwerken sowie verwandter Themen im Besonderen.
Typologie
[Bearbeiten | Quelltext bearbeiten]Was genau ein UNIX-System ausmacht und was es von anderen Systemen unterscheidet, wurde zu unterschiedlichen Zeiten unterschiedlich beantwortet und die Frage kann auch nicht gänzlich ohne die Darstellung des historischen Kontexts beantwortet werden. Es werden deshalb hier einige für das Verständnis wichtige Teile der Geschichte referiert, für Details aber auf die entsprechenden Abschnitte beziehungsweise Lemmata verwiesen. (siehe auch Geschichte)
Die Anfänge
[Bearbeiten | Quelltext bearbeiten]Der Name "UNIX" wurde zunächst zunächst in unterschiedlichen Varianten geschrieben: UNIX, Unix, Unics (eine Anspielung auf das damals unter anderem bei Bell Labratories entwickelte Betriebssystem Multics) sowie Unix wurden alle mehr oder wendiger synonym verwendet. Der allererste Name war vermutlich Unics, als Akronym für Uniplexed Information and Computing Service[3]. Wie die spätere Schreibweise mit -x entstand, ist unklar.[4][5]
Software-Patente oder Kopierschutz fanden damals, Ende der Sechziger, keine Beachtung und deshalb wurde das Betriebssystem üblicherweise (auch) im Sourcecode ausgeliefert. Das neue Betriebssystem fand insbesondere an Universitäten schnelle und weitreichende Verbreitung - auch, weil es auf vergleichsweise kostengünstiger Hardware (der PDP-11 von DEC) lief. Ebenso wurde das neue Betriebssystem vom DoD bzw. dessen Forschungsbehörde DARPA aufgegriffen und extensiv eingesetzt.[6]
Zu dieser Zeit war also "UNIX" ein konkret vorliegendes, mehr oder weniger homogenes Betriebssystem mit einheitlichem Sourcecode, auch wenn damals bereits wegen der Verfügbarkeit der Sourcen informell individuelle Anpassungen durch einzelne Anwender durchgeführt wurden, die zwar auch in den Hauptstamm zurückübernommen werden konnten, aber auf eine, wenn auch geringfügige, Diversifizierung hinausliefen.
Trennung der Entwicklungslinien, System V und BSD (ca. 1980 bis ca. 1990)
[Bearbeiten | Quelltext bearbeiten]Insbesondere durch seine Verbreitung an Universitäten erfuhr UNIX im Laufe der Zeit nachhaltige Entwicklungsimpulse. Der damals (Mitte der Siebziger) noch ungeteilte Hauptstamm des Systems durchlief unter Federführung der AT&T verschiedene Versionen, die zunächst in Unix Sixth Edition (auch V6, 1975) und Unix Seventh Edition (auch V7, 1979) mündeten.
Berkeley Software Distribution, BSD
[Bearbeiten | Quelltext bearbeiten]1974 (siehe Hauptartikel Berkeley Software Distribution) wurde an der Universität Berkeley auf der Basis des damals grade nach C portierten Unix Fourth Edition (V4) [7] eine in einigen Punkten gravierend andersartige UNIX-Version entwickelt, die von AT&T zum Selbstkostenpreis der Datenträger an Universitäten abgegeben wurde. Die Lizenz enthielt die Erlaubnis, die Sourcen nicht nur einzusehen, sondern auch zu modifizieren, was schließlich 1983 in der "Educational License"[8] mündete, die diese Erlaubnis zu Zwecken der Lehre aufrechterhielt. In den Neunzigern forderte AT&T dessenungeachtet UNIX-Lizenzzahlungen und deshalb wurde BSD unter Beibehaltung der Funktionalität umgeschrieben, bis keine Zeile des Originalcodes mehr vorhanden war.
Die Entwicklung von BSD wurde 1992 eingestellt und das urprüngliche BSD selbst ist heute lediglich von historischem Interesse. Allerdings wurden eine ganze Reihe von Betriebssystemen davon abgeleitet, die sich alle darauf als Grundlage berufen: FreeBSD, OpenBSD, NetBSD und nicht zuletzt der XNU-Kernel (macOS sind - unter anderen - mehr oder weniger direkte Abkömmlinge der Berkeley Software Distribution.
Noch wichtiger allerdings ist der Einfluß, den BSD auf die Entwicklung des Hauptstamms nahm: Virtual Memory, der Editor vi (entwickelt von Bill Joy, dem ersten Herausgeber der "Berkeley Software Distribution"[9], 1977), die langen Dateinamen (aus dem Fast File System) und vieles mehr nahm dort seinen Anfang.
UNIX System III, UNIX System V (SysV)
[Bearbeiten | Quelltext bearbeiten]Nach der Seventh Edition entwickelte AT&T - zunächst unter Miteinbeziehung der universitären Entwicklungen aus dem BSD-Zweig - erst UNIX/32V, eine direkte Portierung der Seventh Edition auf die neue VAX, danach, als Nachfolger der bisherigen Systeme, die erste kommerzielle Version UNIX System III (1982). 1983 kam dessen Nachfolger UNIX System V (auch System V oder SysV) auf dem Markt. Diese beiden Systeme, insbesondere aber System V, wurden von vielen Herstellern lizenziert[10], die auf deren Basis begannen, eigene Implementierungen zu entwickeln, sodaß System V zum Quasi-Standard für kommerzielle UNIX-Implementierungen wurde.
System V erlebte von 1983 bis 1997 insgesamt 8 Releases, die mit SVRn (System V, Release n) bezeichnet werden, wobei manche Releases noch Sub-Releases erlebten (etwa SVR4, SVR4.2, und SVR4.2MP).
Nachdem System V 1989 (in SVR4) wesentliche BSD-Teile übernommen hatte, glichen sich die Entwicklungslinien wieder an, aber in einigen wesentlichen Punkten waren die Unterschiede nicht nur ausgeprägt, sie wurden mit der Zeit auch regelrecht gepflegt und zu einer Art Glaubensfrage gemacht. Die Unix-Kriege (siehe auch: Geschichte von Unix) wurden ausgefochten.
Zu dieser Zeit konnten drei verschiedene Implementierungen mit einigem Recht für sich in Anspruch nehmen, UNIX zu sein bzw. zu repräsentieren. Diese waren:
POSIX, XPG, IEEE 1003
[Bearbeiten | Quelltext bearbeiten]Um eine weitere Diversifizierung zu verhindern, wurden eine Reihe von Zusammenschlüssen verschiedener großer Hersteller (mit teilweise durchaus wechselnden Konstellationen) ins Leben gerufen: die Open Software Foundation (OSF), die "Archer Group" (später Unix International), und das bereits 1984 gegründete X/Open-Konsortium. Diese arbeiteten alle an (wenn auch durchaus widersprüchlichen) Definitionen beziehungsweise Standards, die festlegen sollten, was unter "UNIX" oder "Unix" zu verstehen sei. Ebenso wurde 1985 das Projekt Portable Operating System Interface (POSIX) ins Leben gerufen. Dies mündete schließlich 1988 in der Veröffentlichung des POSIX-Standards, der auch von der IEEE[11] rezipiert wurde. X/Open veröffentlichte 1984 den X/Open Portability Guide (XPG), der ebenfalls um weitere Kapitel ergänzt wurde.[12]
1993 verkaufte AT&T die Unix System Laboratories an Novell und gab die Markenrechte an der (mittlerweile geschützten) Marke UNIX an X/Open ab, die die Rechte bis 1996 hielt. 1996 schlossen sich OSF und X/Open zur Open Group zusammen, die seitdem die Rechte an der Marke UNIX hält.
Der POSIX-Standard wurde mehrmals überarbeitet und liegt im Moment (2019) in der Version POSIX Base Specifications, Issue 7 vor. Da der Standard auch von anderen Organisationen übernommen wurde, ist er gleichbedeutend mit IEEE 1003.1-2017 der IEEE und mit ISO/IEC 9945 der ISO bzw. der IEC (genauer: des ISO/IEC JTC 1).
Heutige Situation
[Bearbeiten | Quelltext bearbeiten]Der POSIX-Standard ist eine Familie von Standards, definiert aber hauptsächlich das API des Betriebssystems sowie diverse (Kommandozeilen-) Utilities. Auf diese Art wird Kompatibilität auf der Ebene des Sourcecodes hergestellt: Programme, die sich auf die Verwendung von standardkompatiblen Systemcalls beschränken, können auf kompatiblen Systemen ohne Änderungen und mit einem vorhersagbaren Ergebnis kompiliert werden.
Demgegenüber steht der deutlich breitere Anspruch des XPG, insbesondere des XPG4. Aufbauend auf dieser Spezifikation wurde deshalb die Single UNIX Specification (SUS) entwickelt. Damit ein System sich heute "UNIX" (dies ist die offizielle Schreibweise der Open Group) nennen darf, muß ein System die folgenden Anforderungen erfüllen:
- die Bedingungen der POSIX-Zertifikation;
- die (optionalen) Teile der X/Open Systems Interface Option;
- den Zertifizierungsprozeß durchlaufen;
- der Hersteller muß eine Konformitätserklärung unterzeichnen
Dieser Zertifizierungsprozeß wird von der Open Group, die auch die Standards publiziert, kostenpflichtig durchgeführt.
Geschichte
[Bearbeiten | Quelltext bearbeiten]Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Mark Ward: 40 years of Unix. BBC, abgerufen am 28. Februar 2010.
- ↑ fehlt, zb ESR, Pike/Kernighan: Programming in the UNIX Environment, Kernighan/Ritchie: The C Programming Language, ...
- ↑ History and Timeline. Open Group, abgerufen am 24. Februar 2013 (englisch).
- ↑ Peter Neumann’s Home Page. SRI International, abgerufen am 24. Februar 2013.
- ↑ Susanne Nolte: Wortspiel. In: Heise online. 8. August 2009 (iX 8/2009). Abgerufen am 12. Juli 2017.
- ↑ fehlt noch Beleg
- ↑ Marshall Kirk McKusick Twenty Years of Berkeley Unix. ( des vom 15. Dezember 2013 auf WebCite) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis. O’Reilly Online Catalog 1999, ISBN 1-56592-582-3.
- ↑ AT&T-Regents of the U. of California – The 1983 Educational License bei Groklaw
- ↑ Finding Aid to the Berkeley Software Distribution Records. Online Archive of California (PDF; 67 kB).
- ↑ a b c Sys III: DEC (Ultrix), HP (HP-UX), SGI (IRIX), Microsoft, SCO (Xenix System III), Siemens Nixdorf (Sinix) und andere; SysV: SGI (IRIX) , SCO (OpenServer, UnixWare), Sun (Solaris)
- ↑ 1990 zunächst IEEE 1003.1, Library Functions, Kernel Calls,1992 auch IEEE 1003.2, Shells and Utilities
- ↑ XPG1 (1984): grundlegende Schnittstellen
XPG2 (1987): Internationalisierung, Interprozesskommunikation, Programmiersprachen, ISAM
XPG3 (1988): Konvergenz zu POSIX
XPG4 (1992): Utilities