Diferença entre as especificações POSIX, Single UNIX e Open Group Base Specifications?

Respostas:

9

Uma "diferença" importante é o grupo de opções XSI (XOPEN), que especifica várias interfaces Unix tradicionais que dificilmente serão aplicáveis ​​a um novo sistema operacional que não é "um Unix". Frequentemente, as pessoas usam o "SUS" para se referir ao padrão completo, incluindo a opção XSI, e o "POSIX" para se referir ao padrão básico e possivelmente aos grupos de opções não centrados no Unix.

Versões sucessivas do SUS parecem depreciar gradualmente partes da opção XSI que não eram realmente úteis para escrever aplicativos portáteis e que apenas refletiam implementações herdadas e moviam algumas das partes mais úteis para o padrão base.

R ..
fonte
Você está enganado, o XSI é (se alguma vez) tornado obrigatório nas versões mais recentes do padrão. Observe também que, de acordo com o autor do conjunto de testes de validação POSIX, a conformidade com o XSI é obrigatória, a menos que você queira validar apenas uma plataforma UNIX incorporada.
schily
11
@schily: Citação?
R ..
A documentação atual paraunistd.h leituras: "O cabeçalho <unistd.h> deve definir a constante simbólica a seguir apenas se a implementação suportar a opção XSI; consulte Conformidade com XSI. Se definido, seu valor deve ser adequado para uso em #if diretivas de pré-processamento. _XOPEN_VERSION "
R ..
25

Hoje, POSIX e SUS são basicamente a mesma coisa; O SUS abrange um pouco mais .

Citando aqui :

A partir de 1998, um grupo de trabalho conjunto conhecido como Austin Group começou a desenvolver o padrão combinado que seria conhecido como Single UNIX Specification Version 3 e POSIX: 2001 (formalmente: IEEE Std 1003.1-2001). Foi lançado em 30 de janeiro de 2002

e

Em dezembro de 2008, o Austin Group publicou uma nova grande revisão, conhecida como POSIX: 2008 (formalmente: IEEE Std 1003.1-2008). Esse é o núcleo da Especificação Única UNIX, Versão 4

Daniel Beck
fonte
O POSIX.1-2008 não é a versão 4, mas a EDIÇÃO 7 do padrão.
schily
@schily Eu escolhi mal onde terminar a segunda citação? Para mim, tanto a fonte quanto a citação parecem relacionar claramente 'versão 4' ao SUS, não ao POSIX.
Daniel Beck
O termo "edição 7" se aplica ao Opengroup. Veja: pubs.opengroup.org/onlinepubs/9699919799 Posso estar confuso. Então eu acho que UNIX95 é SUSv1, UNIX98 é SUSv2, POSIX.1-2001 é SUSv3 e POSIX.1-2008 é SUSv4
Schily
@schily direito, consulte a página da Wikipedia, onde a fonte da citação passa a questão menção 7.
Daniel Beck
11

Olhando para o topo das Especificações Básicas do Grupo Aberto , você verá o identificador padrão IEEE Std 1003.1-2008. O IEEE Std 1003.1 é o que é conhecido como POSIX.1, com 2008 sendo apenas a última encarnação. Olhando para o POSIX na Wikipedia, você verá que o padrão contém três partes, incluindo:

  • Base Definitions, Edição 7
  • System Interfaces and Headers, Edição 7
  • Commands and Utilities, Edição 7

Basicamente, POSIX é apenas o nome do padrão desenvolvido pelo IEEE com a versão inicial feita em 1988. POSIX não é oficialmente o UNIX ™ simplesmente porque o IEEE não possui a marca registrada, mas é o ambiente do sistema operacional e a interface encontrados no UNIX ™ sistemas. Posteriormente, o Open Group que controla a marca registrada UNIX ™ se envolveu na criação de um padrão baseado no POSIX chamado Single UNIX Specification versão 2 ou SUSv2. Agora, essas duas especificações são desenvolvidas em conjunto como The Austin Group. A versão mais recente é o SUSv4. Entao, para resumir:

POSIX: 2008 = IEEE Padrão. 1003.1-2008 = SUSv4 = O problema de especificação de grupo aberto 7.

Além disso, leia minha resposta para O que exatamente é o POSIX?

penguin359
fonte
11
É também ISO / IEC 9945-2009
fpmurphy
Ah, sim, como é adorável ter tantos padrões. Ainda estou lutando para descobrir as diferenças entre a ISO / IEC 10646 e o ​​Unicode que, embora representem conjuntos de caracteres idênticos mantidos estritamente sincronizados entre si, ainda existem dois padrões separados e diferentes. Não sei por que eles simplesmente não se dão bem e os declaram completamente sinônimos.
Penguin359
11
No caso específico do POSIX vs SUS, o motivo está relacionado ao licenciamento e marca registrada. O POSIX é genérico, pode ser implementado em qualquer sistema operacional. O SUS é o padrão para definir o UNIX. Mesmo se forem idênticos, o POSIX é necessário para qualquer coisa * nix. Ou * nix compatível. O SUS deve ser cumprido para tentar ser chamado de UNIX. Se o SUS não existisse, pelo menos a marca registrada UNIX poderia ser enfraquecida. Não estou justificando nenhuma ação corporativa, apenas especulando sobre sua posição.
JM Becker
A versão IEEE do padrão hoje é 100% idêntica à versão SUS, exceto nas primeiras páginas e o fato de que a versão IEEE geralmente aparece aprox. 6 meses depois.
Schily