# Single UNIX Specification

Single UNIX Specification (SUS) est un nom désignant un ensemble de spécifications permettant de certifier un système d'exploitation comme étant un Unix. Il est basé sur la norme POSIX, à laquelle il ajoute quelques éléments.
Le SUS est développé et maintenu par l'Austin Group (en), il est basé sur des travaux plus anciens de l'IEEE et de l'Open Group.

## Historique
### 1980: Contexte et motivation

Le SUS apparut au milieu des années 1980 pour standardiser les interfaces des systèmes d'exploitation. À l'époque, Unix a été choisi car il était indépendant de tout constructeur. Il était écrit pour la plus grande partie en langage C et, ce langage étant très répandu, on pouvait facilement le recompiler pour le faire marcher sur n'importe quel matériel, bien qu'une telle opération exige généralement des modifications importantes pour un système d'exploitation.

### 1988: POSIX

En 1988, ces standards devinrent IEEE 1003 (aussi enregistré sous le nom de ISO/CEI 9945), ou POSIX.

### 1990: Spec 1170

Au début des années 1990, un autre projet, la Common API Specification, ou Spec 1170, fut démarré par plusieurs autres vendeurs de systèmes Unix, qui formèrent l'association Common Open Software Environment, au début des Guerres Unix. Cette spécification devint plus populaire car elle était disponible gratuitement, alors que la spécification POSIX, vendue par l'IEEE, était assez onéreuse.

### 1997: SUS version 2

En 1997, les spécifications de SUS version 2, correspondant au standard UNIX 98, ont été publiées$^,$ ; elles forment la base sur laquelle est construite le standard UNIX 98. Elles consistent en :
* les définitions de base, volume 5
* les interface système et les en-tête, volume 5
* les commandes et utilitaires, volume 5
* les services réseau, volume 5
* X/Open Curses, volume 5, version 2. Curses est une bibliothèque système permettant d'obtenir une interface semi-graphique pour les terminaux texte.

### 2001: POSIX:2001, SUS version 3

À partir de 1998, un groupe de travail, l'Austin Group, commença à développer le standard qui serait connu sous le nom de Single UNIX Specification Version 3 et POSIX:2001, ou encore, officiellement, IEEE Std 1003.1-2001. Ce travail aboutit le 30 janvier 2002.
Ce standard, à la base de la spécification UNIX 03, comprenait :
* les définitions de base, volume 6,
* les interface système et les en-tête, volume 6
* les commandes et utilitaires, volume 6.

### 2004: POSIX:2004

En 2004 paraît une nouvelle édition du standard POSIX:2001, qui inclut deux corrections techniques majeures ; il est appelé POSIX:2004 (ou, officiellement, IEEE Std 1003.1-2004).

### 2008: POSIX:2008

En décembre 2008, le Austin Group publia une nouvelle révision majeure, POSIX:2008 (officiellement, l'IEEE Std 1003.1-2008). C'est la base de la Single UNIX Specification, Version 4. Ce standard reprend les trois parties qui composent le standard POSIX:2001, en faisant passer le numéro de volume de 6 à 7.

### 2024: POSIX:2024

Le 14 juin 2024, le Austin Group publia une nouvelle révision majeure, POSIX:2024 (officiellement, l'IEEE Std 1003.1-2024).

## Composition et étendue de la spécification

La spécification SUS version 3 contient 3700 pages et est divisé en quatre parties :
* Les définitions de base (XBD), qui incluent notamment 84 fichiers d'en-tête en langage C,
* Le shell et les utilitaires (XCU), décrivant le fonctionnement de 164 utilitaires systèmes,
* Les interfaces système (XSH), qui définissent les 1123 appels système UNIX,
* Des explications (XRAT) sur les motivations du standard.

## Noms des systèmes compatibles

Des noms sont utilisés pour désigner les systèmes d'exploitation compatibles avec le SUS :
* UNIX 98 indique un système d'exploitation compatible avec SUS version 2 (donc partiellement compatible avec la norme actuelle)
* UNIX 03 indique un système d'exploitation compatible avec SUS version 3
Les versions plus anciennes (et obsolètes) sont
* UNIX 93, aujourd'hui complètement obsolète
* UNIX 95, toujours valable pour les sous-systèmes logiciels les plus simples.

## Compatibilité
### Systèmes Unix enregistrés

Quatre systèmes sont certifiés UNIX 03, quatre pour UNIX 98 et cinq pour UNIX 95.
* AIX 5L V5.2 est certifié UNIX 98 ; AIX 5L V5.2, V5.3 et AIX 6 V6.1.2 avec le SP1 sont certifiés UNIX 03.
* HP-UX 11i V3 Release B.11.31 est un UNIX 03. Certaines versions précédentes sont des UNIX 95.
* Apple a fait certifier Mac OS X et Mac OS X Server, en version Intel, comme UNIX 03.
* Solaris 10 est officiellement un UNIX 03. Solaris 8 et 9 sont des UNIX 98.
* Tru64 UNIX, un des systèmes UNIX d'HP, est un UNIX 98.
* SCO UnixWare 7.1.3, IBM z/OS V1R2, IRIX 6.5.28 et NEC UX/4800 sont des UNIX 95.

### Autres systèmes basés sur UNIX

GNU/Linux, Minix et les systèmes BSD (des systèmes d'exploitation libres Type Unix) ne sont pas certifiés SUS car le coût de la certification serait trop élevé. Cependant, certains de ces projets, par exemple la plupart des distributions Linux et FreeBSD, visent à obtenir une compatibilité, au moins partielle, avec le SUS.