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
Jaren 80: oorsprong
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 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
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:
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
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]
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]
Versie 2 van de SUS vormde de kern van het UNIX 98-merk.[30]
2001: Single UNIX Specification, versie 3, POSIX.1-2001
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
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]
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]
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
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
SGIIRIX 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 PRePPowerPC-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:
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.
↑(en) Mac OS X Leopard - Technology - UNIX. apple.com. Gearchiveerd op 23 augustus 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.”