[go: up one dir, main page]

Single UNIX Specification

standaard voor UNIX-besturingssystemen
UNIX V7 verwijst naar hier. Voor Research Unix versie 7 uit 1979, zie Unix Versie 7.

De Single UNIX Specification (SUS) is een standaard voor besturingssystemen[1][2] waaraan voldaan moet worden om in aanmerking te komen voor het gebruik van het handelsmerk "UNIX". De standaard specificeert programmeerinterfaces voor de C-programmeertaal, een command-line-interface en gebruikersopdrachten. De kernspecificaties van de SUS, bekend als Base Specifications, worden ontwikkeld en onderhouden door de Austin Group, een gezamenlijke werkgroep van IEEE, ISO/IEC JTC 1/SC 22/WG 15 en The Open Group.

Als een besturingssysteem een certificering aanvraagt bij The Open Group en de conformiteitstests doorstaat, wordt het geacht te voldoen aan een UNIX-standaard zoals UNIX 98 of UNIX 03. Er zijn maar weinig BSD- en Linux-gebaseerde besturingssystemen die officieel voldoen aan de Single UNIX Specification, hoewel systeemontwikkelaars over het algemeen streven om POSIX-standaarden na te leven die de kern vormen van de Single UNIX Specification.

De nieuwste SUS bestaat uit twee delen: de basisspecificaties die technisch identiek zijn aan POSIX, en de X/Open Curses-specificatie.[3] Sommige onderdelen van de SUS zijn optioneel.

Geschiedenis

bewerken

Jaren 80: oorsprong

bewerken

De Single UNIX Specification is het resultaat van meerdere pogingen in de jaren 80 om besturingssysteeminterfaces te standaardiseren voor software die ontworpen was voor varianten van het Unix-besturingssysteem. De behoefte aan standaardisatie ontstond omdat bedrijven programma's wilden kunnen ontwikkelen die konden gebruikt worden op de computersystemen van verschillende fabrikanten zonder de programma's te moeten herschrijven. Unix werd gekozen als basis voor een standaard systeeminterface, deels omdat het fabrikantonafhankelijk was.

In 1984 publiceerde de UNIX-gebruikersgroep /usr/group de resultaten van hun standaardisatie-inspanning voor programmeerinterfaces in hun /usr/group-standaard van 1984, die de basis vormde voor wat de POSIX.1-1988-standaard zou worden.[4][5]

In 1985 publiceerde AT&T de System V Interface Definition (SVID), een specificatie van UNIX System V-programmeerinterfaces.[6]

1988: POSIX

bewerken

In 1988 resulteerden de standaardisatie-inspanningen in IEEE 1003 (ook geregistreerd als ISO/IEC 9945), of POSIX.1-1988, wat staat voor Portable Operating System Interface.

Jaren 80 en 90: X/Open Portability Guide

bewerken

De X/Open Portability Guide (XPG) was een voorloper van de SUS, uitgegeven door X/Open, een consortium van bedrijven opgericht in 1984. Diverse standaarden werden in de daaropvolgende jaren gepubliceerd:

  • XPG1: X/Open Portability Guide Issue 1 (1985)[7]
  • XPG2: X/Open Portability Guide Issue 2 (1987)[7]
  • XPG3: X/Open Portability Guide Issue 3 (1989)[8]
  • XPG4: X/Open Portability Guide Issue 4 (1992)[7]

XPG4 Base bevatte de volgende documenten:

Jaren 90: Spec 1170

bewerken

Begin jaren 90 werd een aparte inspanning, bekend als de Common API Specification of Spec 1170, geïnitieerd door verschillende grote leveranciers[9] die de COSE-alliantie vormden in de nasleep van de Unixoorlogen. In 1993 werd Spec 1170 door COSE ingediend bij X/Open voor validatie.[10] In oktober 1993 werd een geplande overdracht van het UNIX-handelsmerk van Novell naar X/Open aangekondigd.[11] Deze werd afgerond in het tweede kwartaal van 1994.[12] Spec 1170 zou uiteindelijk de Single UNIX Specification worden.[9]

1994: Single UNIX Specification

bewerken

In 1994 bracht X/Open de Single UNIX Specification uit.[9] De SUS bestond uit documenten die deel uitmaakten van de X/Open Common Applications Environment (CAE):[9]

  • System Interface Definitions, Issue 4, Version 2[13]
  • System Interfaces and Headers, Issue 4, Version 2[14]
  • Commands and Utilities, Issue 4, Version 2[15]
  • Networking Services, Issue 4[16]

Dit was in wezen een herverpakking van de X/Open Portability Guide (XPG), Issue 4, Version 2.

Bronnen verschillen over de vraag of X/Open Curses, Issue 4, Version 2 deel uitmaakte van deze SUS.[9][17] In oktober 1994 gaf X/Open aan dat ze Spec 1170 zouden aanduiden als '"single-Unix" specification'.[18] De SUS vormde de kern van het UNIX 95-merk.[19]

1997: Single UNIX Specification, versie 2

bewerken

In 1996 fuseerde X/Open met de Open Software Foundation (OSF) om The Open Group te vormen[20][21] en in 1997 bracht de Open Group de Single UNIX Specification, versie 2 uit.[22][23] Deze specificatie bestond uit:[24]

  • System Interface Definitions, Issue 5[25]
  • System Interfaces and Headers, Issue 5[26]
  • Commands and Utilities, Issue 5[27]
  • Networking Services, Issue 5[28]
  • X/Open Curses, Issue 4, Version 2[29]

Versie 2 van de SUS vormde de kern van het UNIX 98-merk.[30]

2001: Single UNIX Specification, versie 3, POSIX.1-2001

bewerken

Vanaf 1998 begon een gezamenlijke werkgroep van IEEE, ISO JTC 1/SC 22/WG 15 en The Open Group, bekend als de Austin Group, met de ontwikkeling van een gecombineerde standaard. Op 30 januari 2002 werd de Single UNIX Specification, versie 3 uitgebracht.[31] Deze specificatie bestond uit:[32]

  • Base Specifications, Issue 6
    • Base Definitions, Issue 6
    • System Interfaces, Issue 6
    • Shell and Utilities, Issue 6
    • Rationale (Informative)
  • X/Open Curses, Issue 4, Version 2

Versie 3 van de SUS vormde de kern van het UNIX 03-merk.[33] De basisspecificaties zijn technisch identiek aan POSIX.1-2001, wat IEEE Std 1003.1-2001 is.

Versie uit 2004

In 2004 werd een nieuwe versie van de POSIX.1-2001-standaard uitgebracht, met daarin twee technische correcties.[34][35] Deze heet IEEE Std 1003.1, 2004 Edition.[35] Sommigen noemen het informeel POSIX.1-2004,[36][37][38] maar dit is geen officiële benaming.

2008: Single UNIX Specification, versie 4, POSIX.1-2008

bewerken

In december 2008 publiceerde de Austin Group de Single UNIX Specification, versie 4 (SUSv4),[39] een nieuwe grote herziening van SUS en POSIX[40][41][42] bestaande uit:[43]

  • Base Specifications, Issue 7
    • Base Definitions, Issue 7
    • System Interfaces, Issue 7
    • Shell and Utilities, Issue 7
    • Rationale, Issue 7, (Informative)
  • X/Open Curses, Issue 7

De basisspecificaties zijn technisch identiek aan POSIX.1-2008, wat IEEE Std 1003.1-2008 is.[43]

Versie uit 2013

De eerste technische correctie (TC1) was vooral gericht op internationalisering en introduceerde ook een role-based toegangsmodel. Versie 4 van de SUS vormt de kern van het UNIX V7-merk[44] (niet te verwarren met V7 UNIX, de versie van Research Unix uit 1979).

Versie uit 2016

De tweede technische correctie (TC2) werd in september 2016 gepubliceerd, wat leidde tot de IEEE Std 1003.1-2008, 2016 Edition en de Single UNIX Specification, Version 4, 2016 Edition.

Versie uit 2018, POSIX.1-2017

In januari 2018 werd een zogenaamde "administrative rollup edition" uitgebracht. Deze bevat de Single UNIX Specification, versie 4 TC1 en TC2 en is technisch identiek aan de versie uit 2016.[45]

De basisspecificaties zijn technisch identiek aan POSIX.1-2017, wat IEEE Std 1003.1-2017 is.[46]

Geregistreerde besturingssystemen

bewerken
OS Leverancier Architectuur UNIX V7 UNIX 03 UNIX 98 UNIX 95 UNIX 93
AIX IBM POWER processors Ja Ja Nee Nee Nee
HP-UX Hewlett-Packard IA-64, PA-RISC Nee Ja Nee Nee Nee
macOS Apple x86-64, Apple silicon Nee Ja Nee Nee Nee
OpenServer Xinuos IA-32 Nee Nee Nee Nee Ja
UnixWare Xinuos IA-32 Nee Nee Nee Ja Nee
z/OS IBM z/Architecture Nee Nee Nee Ja Nee

Huidige geregistreerde UNIX-systemen

bewerken
AIX

AIX versie 7, met 7.1 TL5 (of later) of 7.2 TL2 (of later) is geregistreerd als UNIX 03-compatibel.[47] AIX versie 7, met 7.2 TL5 (of later) is geregistreerd als UNIX V7-compatibel.[48] Oudere versies waren eerder gecertificeerd als UNIX 95- en UNIX 98-compatibel.[49]

HP-UX

HP-UX 11i V3 Release B.11.31 is geregistreerd als UNIX 03-compatibel. Eerdere releases waren geregistreerd als UNIX 95-compatibel.[50]

macOS

Apple macOS (voorheen bekend als Mac OS X en OS X) is geregistreerd als UNIX 03-compatibel.[51] De eerste geregistreerde versie was Mac OS X 10.5 Leopard, gecertificeerd op 26 oktober 2007 (op x86-systemen).[52][53] Alle versies van macOS, van Mac OS X Leopard tot macOS 10.15 Catalina (behalve OS X Lion),[54] zijn geregistreerd op Intel-systemen. Alle versies van macOS 11 Big Sur tot macOS 14 Sonoma zijn geregistreerd op zowel x86-64- als Apple silicon-systemen.[55]

Xinuos

UnixWare 7.1.3 en later is geregistreerd als UNIX 95-compatibel.[56] OpenServer 5 en 6 zijn geregistreerd als UNIX 93-compatibel.[57]

z/OS

IBM z/OS 1.2 en hoger is geregistreerd als UNIX 95-compatibel. z/OS 1.9, uitgebracht op 28 september 2007, en daaropvolgende releases "passen beter bij" UNIX 03.[58]

Voormalige geregistreerde UNIX-systemen

bewerken
EulerOS

EulerOS 2.0 voor de x86-64-architectuur was geregistreerd als UNIX 03-compatibel.[59][60] Volgens de conformiteitsverklaring is het systeem een Linuxdistributie uit de Red Hat Enterprise Linux-familie.[61] De UNIX 03-certificering verliep in september 2022 en is niet verlengd.[60]

FTX

Stratus Technologies DNCP Series-servers met FTX Release 3 waren geregistreerd als UNIX 93-compatibel.[62]

Inspur K-UX

Inspur K-UX 2.0 en 3.0 voor de x86-64-architectuur waren gecertificeerd als UNIX 03-compatibel.[63][64] Volgens de conformiteitsverklaring is het systeem een Linuxdistributie uit de Red Hat Enterprise Linux-familie.[65]

IRIX

SGI IRIX 6.5 was geregistreerd als UNIX 95-compatibel.[66]

OS/390

IBM OS/390 was geregistreerd als UNIX 95-compatibel vanaf de V2R4-release.[67]

Reliant UNIX

De laatste Reliant UNIX-versies waren geregistreerd als UNIX 95-compatibel.

Solaris

Solaris 11.4 werd geregistreerd als UNIX V7-compatibel in 2018.[68] De certifiering verliep in april 2019 en werd niet vernieuwd.[69] Solaris 11 en Solaris 10 waren geregistreerd als UNIX 03-compatibel op 32 bits en 64 bits Intel- en SPARC-systemen. Solaris 8 en 9 waren geregistreerd als UNIX 98-compatibel op 32 bits Intel- en SPARC-systemen (64 bits Intel-systemen werden niet ondersteund). Solaris 2.4 en 2.6, zowel op Intel als SPARC, waren respectievelijk gecertificeerd voor UNIX 93- en UNIX 95.[49]

Solaris 2.5.1 werd in 1996 ook geregistreerd als UNIX 95-compatibel op het PReP PowerPC-platform, maar het product werd geschrapt na slechts een paar dozijn verkochte exemplaren.[70]

Tru64 UNIX

Tru64 UNIX V5.1A en later waren geregistreerd als UNIX 98-compatibel.[71]

Andere

Andere besturingssystemen die geregistreerd waren als UNIX 95- of UNIX 93-compatibel:

Niet-geregistreerde UNIX-achtige systemen

bewerken

Ontwikkelaars en leveranciers van Unix-achtige besturingssystemen zoals Linux, FreeBSD en MINIX certificeren hun distributies doorgaans niet en installeren standaard geen volledige POSIX-hulpprogramma's.

Voor Linux is het pax-commando meestal niet geïnstalleerd en bovendien ontbreekt in de meeste pax-pakketten ondersteuning voor het pax-bestandsformaat, dat vereist is door POSIX.[72] Soms kan de SUS-compatibiliteit verbeterd worden door extra pakketten te installeren, maar slechts weinig Linux-systemen kunnen worden geconfigureerd om volledig conform te zijn. De Linux Standard Base (LSB) werd in 2001 in het leven geroepen als een poging om de interne structuren van Linux-gebaseerde systemen te standaardiseren voor een grotere compatibiliteit. De LSB is gebaseerd op de POSIX-specificaties, de Single UNIX-specificatie en andere open standaarden, en breidt deze ook uit op verschillende gebieden. Er bestaan echter enkele conflicten tussen de LSB- en de POSIX-standaarden.[73] Weinig Linux-distributies ondergaan daadwerkelijk certificering als LSB-compatibel.[74]

Darwin, de open source subset van macOS, kan worden ingesteld om te voldoen aan UNIX 03.[75] Darwin gebruikt een van 4.4BSD afgeleid pax-commando[76] dat geen multibyte-ondersteuning heeft voor bestandsnamen.

FreeBSD had eerder een "C99 and POSIX Conformance Project" dat gericht was op naleving van een subset van de Single UNIX Specification, en documentatie die de verschillen aangaf.[77] Het pax-commando van FreeBSD, afgeleid van 4.4BSD, ondersteunt het pax-bestandsformaat niet volledig.

OpenBSD man-pagina's geven soms afwijkingen van POSIX en dus SUS aan in hun STANDARDS-secties.

Het MINIX pax-commando ondersteunt het pax-bestandsformaat niet[78] en voldoet daardoor niet aan POSIX.1-2001.

bewerken