Single UNIX Specification
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 | brontekst bewerken]Jaren 80: oorsprong
[bewerken | brontekst 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 | brontekst 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 | brontekst 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:
- System Interface Definitions, Issue 4, ISBN 1-872630-46-4
- System Interfaces and Headers, Issue 4, ISBN 1-872630-47-2
- Commands and Utilities, Issue 4, ISBN 1-872630-48-0
Jaren 90: Spec 1170
[bewerken | brontekst 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 | brontekst 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 | brontekst 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 | brontekst 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 | brontekst 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 | brontekst 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 | brontekst 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 | brontekst 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 | brontekst 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.
Externe link
[bewerken | brontekst bewerken]- (en) Josey, Andrew, Single UNIX® Specification Frequently Asked Questions (FAQ Version 1.12). opengroup.org (8 juni 2020).
Dit artikel of een eerdere versie ervan is een (gedeeltelijke) vertaling van het artikel Single UNIX Specification op de Engelstalige Wikipedia, dat onder de licentie Creative Commons Naamsvermelding/Gelijk delen valt. Zie de bewerkingsgeschiedenis aldaar.
- ↑ (en) Questions & Answers. unix.org.
- ↑ (en) The UNIX Standard. The Open Group (27 augustus 2018).
- ↑ (en) Single UNIX Specification, Version 4, 2018 Edition. The Open Group.
- ↑ (en) Kelty, Christopher M., Conceiving Open Systems (). kelty.org.
- ↑ (en) Standards Conformance Guide (). SunSoft (november 1995).
- ↑ (en) System V Interface Definition (1985).
- ↑ a b c (en) Raymond, Eric S. (2003). The Art of UNIX Programming, pp. 438-440.
- ↑ (en) Stevens, W. Richard, Fenner, Bill, Rudoff, Andrew M. (2004). Unix Network Programming, Volume 1: The Sockets Networking API. Addison-Wesley. ISBN 0-13-141155-1.
- ↑ a b c d e (en) The Single UNIX Specification. unix.org.
- ↑ (en) The UNIX System -- History and Timeline -- UNIX History. unix.org.
- ↑ (en) Fennessy, Quentin, The name "UNIX" is now the property of X/Open (12 oktober 1993).
- ↑ (en) Frequently Asked Questions. unix.org.
- ↑ (en) X/Open CAE Specification System Interface Definitions, Issue 4, Version 2 (). X/Open Company (1994). ISBN 1-85912-036-9.
- ↑ (en) X/Open CAE Specification System Interfaces and Headers, Issue 4, Version 2 (). X/Open Company (1994). ISBN :1-85912-037-7.
- ↑ (en) X/Open CAE Specification Commands and Utilities, Issue 4, Version 2 (). X/Open Company (1994). ISBN 1-85912-034-2.
- ↑ (en) X/Open CAE Specification Networking Services, Issue 4 (). X/Open Company (1994). ISBN 1-85912-049-0.
- ↑ (en) Single UNIX® Specification, Version 1 Document Set (UNIX 95). opengroup.org.
- ↑ (en) Bozman, Jean S. (24 oktober 1994). X/Open test suites advance. Computerworld 28 (43): 49
- ↑ (en) Open Brand - UNIX 95. The Open Group.
- ↑ (en) McCrea, Phil (april 1996). Formation of 'The Open Group'. AUGGN: The Journal of AUUG Inc 17 (2): 17–18
- ↑ (en) Gaudin, Sharon (27 mei 1996). WebCrusader may blaze wider trail for DCE users. Computerworld 30 (22): 64
- ↑ (en) The Single UNIX Specification, Version 2. www.opengroup.org.
- ↑ (en) The Open Group Announces Enhanced Single UNIX Specification. The Open Group (12 maart 1997).
- ↑ (en) What's New in the Single UNIX Specification, Version 2. unix.org.
- ↑ (en) System Interface Definitions Issue 5 (). The Open Group. ISBN 1-85912-186-1.
- ↑ (en) System Interfaces and Headers Issue 5 (). The Open Group (1997).
- ↑ (en) Commands and Utilities Issue 5 (). The Open Group (1997). ISBN 1-85912-191-8.
- ↑ (en) Networking Services (XNS) Issue 5 (). The Open Group (14 mei 1997). ISBN 1-85912-165-9.
- ↑ (en) X/Open Curses, Issue 4, Version 2 (). The Open Group (1996). ISBN 1-85912-171-3.
- ↑ (en) Open Brand - UNIX 98. X/Open Company.
- ↑ (en) The Open Group announces completion of the joint revision to POSIX and the Single UNIX Specification. The Open Group (30 januari 2002).
- ↑ (en) The Single UNIX Specification Version 3 - Overview. unix.org.
- ↑ (en) Open Brand - UNIX 03. The Open Group.
- ↑ (en) The Open Group Base Specifications Issue 6. The Open Group.
- ↑ a b (en) IEEE Std 1003.1, 2004 Edition. unix.org.
- ↑ (en) POSIX.1(5). Oracle Solaris 11.2 Information Library.
- ↑ (en) The GNU C Library manual. The GNU Project, "1.3.4 Feature Test Macros".
- ↑ (en) POSIX Abstractions in Modern Operating Systems: The Old, the New, and the Missing. Eleventh European Conference on Computer Systems (18 april 2016).
- ↑ (en) Single UNIX Specification Version 4. The Open Group.
- ↑ (en) The Open Group Base Specifications Issue 7, 2018 edition. www.opengroup.org.
- ↑ (en) Base Specifications, Issue 7. The Open Group.
- ↑ (en) The Austin Common Standards Revision Group. The Open Group.
- ↑ a b (en) The Single UNIX Specification Version 4 - Introduction. unix.org.
- ↑ (en) UNIX V7 Certification. unix.org.
- ↑ (en) Base Specifications, Issue 7, 2018 Edition. The Open Group.
- ↑ (en) IEEE Standard for Information Technology--Portable Operating System Interface (POSIX(TM)) Base Specifications, Issue 7. IEEE SA - IEEE/Open Group 1003.1-2017.
- ↑ (en) UNIX 03, AIX. The Open Group.
- ↑ (en) UNIX V7, AIX. The Open Group.
- ↑ a b (en) The Open Brand - Register of Certified Products. The Open Group (23 juli 2003). Gearchiveerd op 2 augustus 2003.
- ↑ (en) UNIX 2003 Standard Profile conformance. Hewlett-Packard. Gearchiveerd op 27 juli 2014.
- ↑ (en) OS X for UNIX Users (). apple.com (juli 2011).
- ↑ (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.”
- ↑ (en) Mac OS X Version 10.5 Leopard on Intel-based Macintosh computers certification. The Open Group.
- ↑ (en) Re: was OS X version 10.7 Lion UNIX 03 certified?. www.mail-archive.com. Gearchiveerd op 29 april 2020.
- ↑ (en) Open Brand - Apple, Inc. www.opengroup.org.
- ↑ (en) UNIX 95, UnixWare. The Open Group.
- ↑ (en) UNIX 93, OpenServer. The Open Group.
- ↑ (en) z/OS Version 1 Release 9 Implementation (). IBM (december 2007), 4-5,156-162.
- ↑ (en) Huawei KunLun EulerOS 2.0 Operating System Passes UNIX Certification. Huawei (9 september 2016).
- ↑ a b (en) UNIX 03, EulerOS. The Open Group.
- ↑ (en) Peng Shen, Huawei Conformance Statement: Commands and Utilities V4. The Open Group.
- ↑ (en) The Open Brand - Register of Certified Products - UNIX 93. The Open Group. Gearchiveerd op 5 oktober 2016.
- ↑ (en) The Open Brand Register of Certified Products. The Open Group (29 mei 2014).
- ↑ (en) Xie Ruohong, Inspur Conformance Statement. The Open Group.
- ↑ (en) Xie Ruohong, Inspur Conformance Statement: Commands and Utilities V4. The Open Group.
- ↑ (en) Silicon Graphics Inc - UNIX 95. The Open Group. Gearchiveerd op 2 augustus 2003.
- ↑ (en) Register of Open Branded Products (OS/390). The Open Group (19 juni 2003). Gearchiveerd op 29 juni 2003.
- ↑ (en) UNIX V7 - The Open Brand Register, Oracle Corporation. The Open Group. Gearchiveerd op 14 januari 2020.
- ↑ (en) Open Brand Certificate, UNIX V7, Oracle Solaris 11.4. The Open Group. Gearchiveerd op 14 januari 2020.
- ↑ (en) Solaris 2.5.1. berkeley.edu. Gearchiveerd op 12 september 2005.
- ↑ (en) Compaq Computer Corporation - UNIX 95. The Open Group. Gearchiveerd op 29 juni 2003.
- ↑ (en) Bug #1329914 "No UNIX compatible pax implementation" : Bugs : RPM. Ubuntu bug tracker (13 juni 2014).
- ↑ (en) Josey, Andrew, Conflicts between ISO/IEC 9945 (POSIX) and the Linux Standard Base.. personal.opengroup.org (29 augustus 2005).
- ↑ (en) Certified Products Product Directory. The Linux Foundation. Gearchiveerd op 20 december 2012.
- ↑ (en) Mac OS X Manual Page for compat(5) - Mac OS X 10.3. developer.apple.com (23 oktober 2005). Gearchiveerd op 10 maart 2009.
- ↑ (en) Mac OS X Manual Page for pax(1) - Mac OS X 10.3. developer.apple.com (23 oktober 2005). Gearchiveerd op 10 maart 2009.
- ↑ (en) FreeBSD C99 and POSIX conformance project. FreeBSD Project. Gearchiveerd op 23 december 2013.
- ↑ (en) pax(1). man.minix3.org.