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

editar

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).[1]

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.[1]

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[2], 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.[1]

A especificação

editar

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

editar

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

editar

Solaris

editar

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.

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.

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

editar

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

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

editar

Outros sistemas operacionais registrados como compatíveis com as especificações UNIX 95 ou UNIX 93:

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.[3][4][5]

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.[6]

O Darwin, o sistema BSD que é a base do Mac OS X, é compatível com a SUS versão 3.[7]

Ver também

editar

Referências

  1. a b c Eric Steven Raymond (2003). The Art of Unix Programming. Estados Unidos da América: Addison-Wesley. ISBN 0131429019 
  2. Peter Seebach. «Standards and specs: Not by UNIX alone» (em inglês). Consultado em 30 de maio de 2007 
  3. Heiko Eissfeldt, Linux Journal. «Certifying Linux» (em inglês). Consultado em 3 de abril de 2007. Certifying Linux to POSIX 1.1. 
  4. Debian. «Chapter 3 - Compatibility issues». The Debian GNU/Linux FAQ (em inglês). Consultado em 3 de abril de 2007. How source code compatible is Debian with other Unix systems? 
  5. Ian Nandrha, Lasermoon Ltd. «A Historic Development for Linux» (em inglês). Consultado em 3 de abril de 2007. A certificação da distribuição Linux-FT 
  6. FreeBSD. «FreeBSD C99 and POSIX® Conformance Project» (em inglês). Consultado em 1 de fevereiro de 2009. Arquivado do original em 23 de dezembro de 2013. The FreeBSD C99 & POSIX® Conformance Project aims to implement all requirements of the ISO 9899:1999 (C99) and IEEE 1003.1-2001 (POSIX) standards. 
  7. Apple Inc. «UNIX 03 Conformance Release Notes». Release Notes (em inglês). Consultado em 1 de fevereiro de 2009. Apple has made a significant effort in Mac OS X v.10.5 to support the Single UNIX Specification Version 3 (SUSv3). 

Ligações externas

editar