# Single UNIX Specification

Single UNIX Specification, SUS, ou Especificação Única do Unix, em português, é um conjunto de padrões que definem o sistema operacional Unix. A SUS é desenvolvida e mantida pelo Austin Group a partir do trabalho desenvolvido anteriormente pelas organizações IEEE e The Open Group.

## História

A SUS surgiu em meados da década de 80 a partir de um projeto para padronizar as interfaces dos softwares desenvolvidos para diferentes versões do sistema operacional Unix. A padronização surgiu da necessidade das corporações de desenvolver programas de computador que pudessem ser utilizados em sistemas computacionais de diferentes fornecedores sem que precisassem ser reescritos. Neste momento foi criado o padrão "IEEE 1003" (também registrado como ISO/IEC 9945), ou POSIX, um acrônimo de Portable Operating System Interface for Unix (Interface de sistema operacional portável para Unix).
No final da década de 80, em paralelo com o desenvolvimento do POSIX, o consórcio X/Open desenvolvia os "guias de portabilidade" ou XPGs (X/Open Portability Guides). A partir de 1990 este trabalho incorporou e estendeu os padrões POSIX.
No início da década de 90, em um esforço independente, uma aliança de nome COSE foi criada por vários dos principais fornecedores do Unix da época. A aliança criou a especificação Common API Specification (ou Spec 1170), a partir das especificações XPG, com o objetivo de padronizar diferentes versões do Unix e terminar com as chamadas guerras do Unix. Esta especificação se tornou popular por ser livre, enquanto o IEEE cobrava um valor razoável pela especificação POSIX, e ficou conhecida como Single UNIX Specification. Em 1998 um grupo de trabalho conhecido como Austin Group iniciou o desenvolvimento de um padrão que, após o seu lançamento pelo The Open Group em 2001, ficou conhecido como Single UNIX Specification Version 3. Esta especificação unificou as diferentes visões da API do Unix.

## A especificação

As interfaces do sistema operacional para usuário e software são definidas em quatro seções principais:
* Definições básicas — Uma lista de definições e convenções utilizadas nas especificações e um conjunto de arquivos de cabeçalho da linguagem C que devem ser disponibilizadas pelos sistemas compatíveis;
* Shell e programas utilitários — Uma lista de programas utilitários e uma descrição da shell do sistema, o sh;
* Interfaces de sistema — Uma lista de chamadas de sistemas na linguagem C que devem ser disponibilizadas;
* Rationale — Uma explanação das motivações do padrão.
Dentre os programas utilitários encontram-se: o awk, echo, ed e muitos outros. Também são definidos serviços em nível de aplicação para suporte de: entrada/saída, arquivo, terminal e rede de computadores. O padrão também contém um conjunto de ferramentas de teste chamada de PCTS (Posix Certification Test Suite).
É importante notar que a especificação não obriga que um sistema possua código fonte derivado do Unix da AT&T. Por exemplo, o sistema OS/390 da IBM, sucedido pelo z/OS, é qualificado como um sistema Unix apesar de não possuir tal código.

## Rótulos para sistemas compatíveis

Existem dois rótulos oficiais para sistemas em conformidade com a especificação:
* UNIX 98 — Para sistemas em conformidade com a versão 2 da SUS;
* UNIX 03 — Para sistemas em conformidade com a versão 3 da SUS.
Os padrões UNIX93 e UNIX95 são padrões antigos.

## Compatibilidade
### Solaris

O sistema operacional Solaris versão 10 é compatível com a especificação UNIX 03 em sistemas de 32 bit e 64 bit em x86 e em sistemas SPARC. As versões 8 e 9 do Solaris são compatíveis com a especificação UNIX 98 nas mesmas plataformas, com exceção dos sistemas de 64 bit na plataforma x86.

### AIX

O AIX 5L V5.2 com algumas atualizações, e o AIX 5L V5.3, são compatíveis com a especificação UNIX 03. A versão AIX 5L V5.2 é compatível com a UNIX 98.

### HP/UX

O sistema HP-UX versão "11i V3 Release B.11.31" é compatível com a especificação UNIX 03. As versões anteriores são compatíveis com a UNIX 95.

### Tru64 UNIX

O Tru64 UNIX V5.1A, assim como os posteriores, é compatível com a especificação UNIX 98.

### SCO

O UnixWare 7.1.3 é compatível com a especificação UNIX 95 e o SCO OpenServer 5 com a especificação UNIX 93.

### Outros sistemas proprietários

Outros sistemas operacionais registrados como compatíveis com as especificações UNIX 95 ou UNIX 93:
* IBM z/OS
* NCR UNIX SVR4
* NEC UX/4800

### Linux

O GNU/Linux foi desenvolvido para ser o mais próximo possível da especificação POSIX mas, até agora, apenas uma distribuição obteve a certificação, o Linux-FT.

### BSD

Nenhum dos sistemas BSD disponíveis livremente foi registrado como compatível com a SUS. O FreeBSD desenvolve um projeto chamado "C99 and POSIX Conformance Project" cujo objetivo é dar total compatibilidade com a POSIX.
O Darwin, o sistema BSD que é a base do Mac OS X, é compatível com a SUS versão 3.