Single UNIX Specification

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Single Unix Specification)
Wechseln zu: Navigation, Suche

Die Single UNIX Specification (SUS, deutsch ‚alleinige UNIX-Spezifikation‘) ist der Oberbegriff für eine Familie von Standards für Computer-Betriebssysteme, die durch deren Erfüllung den Markennamen UNIX® tragen dürfen. Die SUS wird von The Austin Common Standards Revision Group entwickelt und auf aktuellem Stand gehalten, basierend auf früheren Arbeiten des IEEE und der Open Group.

Geschichte[Bearbeiten | Quelltext bearbeiten]

Die Standardisierung von UNIX ist an die Geschichte von Unix selbst gebunden. 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. In den späten 1970er und frühen 1980er Jahren entstanden jedoch eigenständige Systeme, die sich nur an dem Vorbild orientiert hatten. Es kam zu einer Aufsplittung im Markt mit inkompatiblen Änderungen oder Erweiterungen, sodass Applikationen nicht mehr auf allen Unix-Systemen liefen / kompilierfähig waren.

1985 bildete sich eine Arbeitsgruppe beim IEEE, um einen definierten Mindeststandard für Unix-artige Betriebssysteme zu beschreiben. Der Wunsch nach Standardisierung entstand, weil Computer-nutzende Unternehmen Programme entwickeln wollten, die auf den Computersystemen verschiedener Hersteller lauffähig waren. UNIX wurde zum Teil als die Basis eines standardisierten Systeminterfaces ausgesucht, da es herstellerunabhängig war. Der 1988 veröffentlichte IEEE-Standard 1003 zum „Portable Operating System Interface“ for UNIX wurde hernach mit der Abkürzung POSIX (heute „POSIX.1“) bekannt. Dieser Name wurde von Richard Stallman geprägt, um eine Bezeichnung für die Standards zu schaffen, die man sich auch merken konnte.

Die X/Open Gruppe, ein Konsortium von Herstellern Unix-ähnlicher Betriebssysteme, hatte parallel eine Testspezifikation entwickelt, um die Kompatibilität für ihre Mitglieder sicherzustellen. 1984 gab sie den ersten X/Open Portability Guide (XPG) heraus. Die dritte Version, der XPG3, hatte 1988 dann das Ziel, eine Konvergenz mit den POSIX-Betriebssystem-Spezifikationen herbeizuführen. Das letzte Update ist 1992 die XPG4. 1993 kaufte diese X/Open Gruppe den Markennamen UNIX von Novell ab, sodass die Möglichkeit entstand, die Standards mit diesem Namen selbst zu bezeichnen.

In den folgenden Jahren ging man daran, einen herstellerübergreifenden UNIX-Standard zu entwickeln. Darunter fällt auch der Zusammenschluss der X/Open Gruppe mit der Open Software Foundation (OSF), einem anderen Herstellerverband Unix-ähnlicher Systeme, zur Open Group 1996. Die vorher konkurrierenden Ansätze erklären auch den Projekttitel der "Single UNIX Specification", abgekürzt SUS. Die erste SUS, auch unter dem Markenzeichen UNIX 95 herausgegeben, basiert dabei noch im Wesentlichen auf der XPG4 Spezifikation. Mit der Version2 der SUS, bei der die 64-Bit-Erweiterung heraussticht, wurde dann ohne XPG-Referenz 1998 unter dem Markenzeichen UNIX 98 herausgegeben.

Die Arbeitsgruppen der Hersteller und die Arbeitsgruppen beim IEEE, die sich schon vorher personell überschnitten, wurden 1998 organisatorisch zusammengelegt. Die SUS hatte sich in der Zwischenzeit als wesentliche Standard-Referenz entwickelt, auch weil diese Spezifikation frei erhältlich war, im Gegensatz zu den Dokumenten des IEEE. Die Austin Group[1] entwickelt seitdem sowohl die SUS als auch die POSIX-Spezifikation weiter, was schließlich in die Herausgabe der UNIX 03 alias SUS Version3 alias POSIX 2001 edition mündet. Die POSIX 2004 edition enthält dazu zwei Technische Verbesserungen (Technical Corrigendum 1 und Technical Corrigendum 2).

Die Weiterentwicklung in der Austin Group führt zu den Open Group Base Specifications, Issue 7, aus denen die (identische) Single UNIX Specification, Version 4 und POSIX.1 2008 edition entstehen. Mit dem Technical Corrigendum 1 werden diese fortgeschrieben, veröffentlicht als POSIX.1 2013 edition. Der zugehörige IEEE Std 1003.1 wird auch international als ISO/IEC 9945:2009 und darauffolgend ISO/IEC 9945:2009/Cor 1:2013(E) anerkannt. Ein neues Markenzeichen wurde für diese Revision nicht eingeführt (siehe auch Abschnitt Linux und die SUS). Die SUS Version 4 beeinflusst die Weiterentwicklung unixartiger Betriebssystem auch weiterhin stark, da sie auf unix.org frei einsehbar ist. Als andere Quelle zur Einhaltung von Kompatibilität hat sich die Linux Standard Base entwickelt.

Kennzeichen für konforme Systeme[Bearbeiten | Quelltext bearbeiten]

Es gibt zwei offizielle Kennzeichen für SUS-konforme Systeme:

  • UNIX 98 – Kennzeichen für Systeme, die die Version 2 der SUS erfüllen (teilweise Kompatibilität)
  • UNIX 03 – Kennzeichen für Systeme, die die Version 3 der SUS erfüllen (vollständige Kompatibilität)

Ältere UNIX-Standards (abgelaufen):

  • UNIX 93 (vollständig abgelaufen)
  • UNIX 95 (Kompatibilität noch akzeptabel für einfachere Software-Subsysteme)

Betriebssysteme[Bearbeiten | Quelltext bearbeiten]

Nachfolgend eine Liste der Betriebssysteme, deren Hersteller die Zertifizierung gegen die jeweilige Spezifikation bezahlt haben.

UNIX 93[Bearbeiten | Quelltext bearbeiten]

UNIX 95[Bearbeiten | Quelltext bearbeiten]

UNIX 98[Bearbeiten | Quelltext bearbeiten]

UNIX 03[Bearbeiten | Quelltext bearbeiten]

  • AIX 5L V5.2 mit einigen Updates, AIX 5L V5.3
  • HP-UX 11i V3 Release B.11.31
  • Mac OS X Leopard bis OS X El Capitan, auf Intel-Systemen[3][4][5]
  • Solaris 10 auf 32- und 64-bit x86- und SPARC-Systemen
  • IBM z/OS 1.9*

* IBM kündigte am 28. September 2007 an, dass z/OS 1.9 die UNIX 03-Spezifikation „besser erfüllen“ werde. Welcher Grad der Kompatibilität damit gemeint war, ist unklar. [6]

Linux und die SUS[Bearbeiten | Quelltext bearbeiten]

Vor dem Erscheinen der SUSv3 im Dezember 2001 wurden von Linux-Distributoren häufig die hohen Kosten als Grund für eine fehlende Zertifizierung angeführt. Daher wurde von der Open Group eine Zertifizierung zu einem symbolischen Preis zugesichert. Das Zertifizierungsverfahren, bei dem OpenGroup-Mitglieder aktiv mithalfen, machte zu Beginn gute Fortschritte, wurde jedoch 2005 wegen unüberbrückbarer Differenzen zwischen der Linux Standard Base und der Open Group abgebrochen. Linux ist deshalb bis auf weiteres nicht vollständig SUSv3-konform.[7]

Versionierung[Bearbeiten | Quelltext bearbeiten]

Schon das erste Unix wurde in der Programmiersprache C entwickelt. Alle unixartigen Betriebssysteme zeigen ihre Kompatibilität mit den Unix-Standards durch #define Konstanten, und soweit andere Betriebssysteme eine Zusatzbibliothek anbieten, finden sich diese Konstanten auch dort.

Im Rahmen der POSIX-Spezifikation richten sich die Versionen nach dem Datum der Revision. Das Betriebssystem meldet seine Kompatibilität durch _POSIX_VERSION, während ein Programm die erwartete API durch Definition von _POSIX_C_SOURCE[note 1] meldet.

  • _POSIX_VERSION 198808L für POSIX.1-1988
  • _POSIX_VERSION 199009L für POSIX.1-1990
  • _POSIX_VERSION 199506L für POSIX.1-1996
  • _POSIX_VERSION 200112L für POSIX.1-2001
  • _POSIX_VERSION 200809L für POSIX.1-2008

Anstatt der POSIX-Macros können auch die XPG/XOPEN-Macros verwendet werden, deren Wert die Basis-Generation angibt. Die Generationen XPG3 und früher sind in Programmquellen ungebräuchlich. Das Betriebssystem meldet seine Kompatibilität durch _XOPEN_VERSION, während ein Programm die erwartete API durch Definition von _XOPEN_SOURCE[note 2] meldet.

  • _XOPEN_VERSION 400 - X/Open Portability Guide release 4 (XPG4)
  • _XOPEN_VERSION 420 - X/Open Portability Guide for UNIX95
  • _XOPEN_VERSION 500 - X/Open 5, äquivalent POSIX 1995
  • _XOPEN_VERSION 520 - X/Open Portability Guide for UNIX98
  • _XOPEN_VERSION 600 - X/Open 6, äquivalent POSIX 2004
  • _XOPEN_VERSION 700 - X/Open 7, äquivalent POSIX 2008

Für die SUS-Version selbst gibt es keine eigenständigen Macros, sondern die Single Unix Specification verzeichnet die dargestellten Werte.[8] Da traditionell (vor der Austin Group) die POSIX-Spezifikation weniger umfangreich war als die XSI-Spezifikation (X/Open System Interface), ignorieren einige Unix-Systeme den POSIX_SOURCE-Wert, wenn ein XOPEN_SOURCE-Wert angegeben ist.[9].

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. http://www.unix.org/unix/version3/overview.html
  2. Solaris 2.5.1
  3. Mac OS X Leopard - Technology - UNIX. In: Leopard Technology Overview. Apple Inc.. Abgerufen am 11. Juni 2007: „Leopard is now an Open Brand UNIX 03 Registered Product, conforming to the SUSv3 and POSIX 1003.1 specifications for the C API, Shell Utilities, and Threads.“
  4. The Open Group: Mac OS X Version 10.5 Leopard on Intel-based Macintosh computers certification. Abgerufen am 12. Juni 2007.
  5. http://www.opengroup.org/openbrand/register/apple.htm
  6. Preview: IBM z/OS V1.9 advanced infrastructure solutions for your business needs (PDF; 112 kB) IBM. S. pp. 4, 15. 6. Februar 2007. Abgerufen am 11. Juni 2007.
  7. Letzter Bericht über notwendige Änderungen an Linux zur SUSv3 Kompatibilität durch Andrew Josey
  8. unistd - standardisierte Konstanten und Typen für Unix (SUSv4). The Open Group. Version Test Macros. Abgerufen am 16. Januar 2016.
  9. http://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html

Hinweise:

  1. es geht auch _POSIX_SOURCE, jedoch wird das ignoriert, wenn _POSIX_C_SOURCE verwendet wird
  2. unterhalb 500 verwendete man auch _XOPEN_SOURCE_EXTENDED um alle optionalen Komponenten zu aktivieren

Weblinks[Bearbeiten | Quelltext bearbeiten]