POSIX - POSIX

Interface de sistema operacional portátil (IEEE 1003)
Status Publicados
Ano começou 1988 ; 33 anos atrás ( 1988 )
Última versão IEEE Std 1003.1-2017
2017 ; 4 anos atras ( 2017 )
Organização Austin Group ( IEEE Computer Society , The Open Group , ISO / IEC JTC 1 )
Padrões relacionados ISO / IEC 9945
Domínio Interfaces de programação de aplicativos
Abreviação POSIX
Local na rede Internet obter .posixcertified .ieee .org

A Portable Operating System Interface ( POSIX ) é uma família de padrões especificados pela IEEE Computer Society para manter a compatibilidade entre os sistemas operacionais . POSIX define as interfaces de programação de aplicativo (API) de nível de sistema e de usuário , junto com shells de linha de comando e interfaces de utilitários, para compatibilidade de software (portabilidade) com variantes de Unix e outros sistemas operacionais. POSIX também é uma marca comercial do IEEE. POSIX deve ser usado por desenvolvedores de aplicativos e sistemas.

Nome

Originalmente, o nome "POSIX" referia-se a IEEE Std 1003.1-1988, lançado em 1988. A família de padrões POSIX é formalmente designada como IEEE 1003 e o número do padrão ISO / IEC é ISO / IEC 9945.

Os padrões surgiram de um projeto que começou por volta de 1985. Richard Stallman sugeriu o nome POSIX (pronunciado como pahz-icks, não como poh-seis ) para o IEEE em vez do antigo IEEE-IX . O comitê o achou mais facilmente pronunciável e memorável, e assim o adotou.

Visão geral

O Unix foi selecionado como base para uma interface de sistema padrão, em parte porque era "neutro em relação ao fabricante". No entanto, várias versões principais do Unix existiam - portanto, havia a necessidade de desenvolver um sistema de denominador comum. As especificações POSIX para sistemas operacionais semelhantes ao Unix consistiam originalmente em um único documento para a interface de programação central , mas eventualmente cresceram para 19 documentos separados (POSIX.1, POSIX.2, etc). A linha de comando do usuário padronizada e a interface de script foram baseadas no shell UNIX System V. Muitos programas, serviços e utilitários no nível do usuário (incluindo awk , echo , ed ) também foram padronizados, junto com os serviços necessários no nível do programa (incluindo E / S básica : arquivo , terminal e rede ). POSIX também define uma API de biblioteca de threading padrão que é suportada pela maioria dos sistemas operacionais modernos. Em 2008, a maioria das partes do POSIX foram combinadas em um único padrão (IEEE Std 1003.1-2008 , também conhecido como POSIX.1-2008).

A partir de 2014, a documentação POSIX está dividida em duas partes:

  • POSIX.1, edição de 2013: Definições básicas POSIX, interfaces de sistema e comandos e utilitários (que incluem POSIX.1, extensões para POSIX.1, serviços em tempo real, interface de threads, extensões em tempo real, interface de segurança, acesso a arquivos de rede e comunicações processo a processo de rede, extensões de portabilidade do usuário, correções e extensões, utilitários de proteção e controle e utilitários de sistema em lote. Este é POSIX 1003.1-2008 com correção técnica 1.)
  • Teste de conformidade POSIX: Um conjunto de testes para POSIX acompanha o padrão: VSX-PCTS ou o Conjunto de testes de conformidade VSX POSIX .

O desenvolvimento do padrão POSIX ocorre no Austin Group (um grupo de trabalho conjunto entre o IEEE, The Open Group e o ISO / IEC JTC 1 ).

Versões

Peças antes de 1997

Antes de 1997, POSIX compreendia vários padrões:

Versões após 1997

Depois de 1997, o Austin Group desenvolveu as revisões POSIX. As especificações são conhecidas pelo nome Single UNIX Specification , antes de se tornarem um padrão POSIX quando formalmente aprovadas pela ISO.

POSIX.1-2001 (com dois TCs)

POSIX.1-2001 (ou IEEE Std 1003.1-2001) equivale à Single UNIX Specification versão 3.

Este padrão consistia em:

  • as definições básicas, edição 6,
  • as interfaces e cabeçalhos do sistema, edição 6,
  • os comandos e utilitários, edição 6.

IEEE Std 1003.1-2004 envolveu uma pequena atualização de POSIX.1-2001. Ele incorporou duas pequenas atualizações ou erratas denominadas Correções Técnicas (TCs). Seu conteúdo está disponível na web.

POSIX.1-2008 (com dois TCs)

Especificações básicas , edição 7 (ou IEEE Std 1003.1-2008 , edição 2016) é semelhante à versão atual de 2017 (em 22 de julho de 2018).

Este padrão consiste em:

  • as definições básicas, edição 7,
  • as interfaces e cabeçalhos do sistema, edição 7,
  • os comandos e utilitários, edição 7,
  • o volume da justificativa.

POSIX.1-2017

IEEE Std 1003.1-2017 (Revisão de IEEE Std 1003.1-2008) - Padrão IEEE para Tecnologia da Informação - Interface de Sistema Operacional Portátil (POSIX (R)) Especificações de base, Edição 7 está disponível no The Open Group ou IEEE e é, a partir de 22 de julho de 2018, o padrão atual. É tecnicamente idêntico ao POSIX.1-2008 com as Correções Técnicas 1 e 2 aplicadas. Uma cópia online gratuita ainda pode estar disponível.

Controvérsias

Blocos de 512 vs 1024 bytes

O POSIX exige tamanhos de bloco padrão de 512 bytes para os utilitários df e du , refletindo o tamanho típico dos blocos nos discos. Quando Richard Stallman e a equipe GNU estavam implementando POSIX para o sistema operacional GNU , eles se opuseram a isso alegando que a maioria das pessoas pensa em termos de blocos de 1024 bytes (ou 1 KiB ). A variável de ambiente POSIX_ME_HARDER foi introduzida para permitir ao usuário forçar o comportamento compatível com os padrões. O nome da variável foi posteriormente alterado para POSIXLY_CORRECT . Essa variável agora também é usada para uma série de outras peculiaridades de comportamento.

Sistemas operacionais orientados para POSIX

Dependendo do grau de conformidade com os padrões, pode-se classificar os sistemas operacionais como totalmente ou parcialmente compatíveis com POSIX. Os produtos certificados podem ser encontrados no site do IEEE.

POSIX-certificado

Algumas versões dos sistemas operacionais a seguir foram certificadas em conformidade com um ou mais dos vários padrões POSIX. Isso significa que eles passaram nos testes de conformidade automatizados.

Principalmente compatível com POSIX

O seguinte, embora não seja oficialmente certificado como compatível com POSIX, está em conformidade em grande parte:

POSIX para Microsoft Windows

  • O Cygwin fornece um ambiente de desenvolvimento e tempo de execução amplamente compatível com POSIX para o Microsoft Windows .
  • MinGW , um fork do Cygwin, fornece um ambiente de desenvolvimento menos compatível com POSIX e suporta aplicativos programados em C compatíveis via Msvcrt , a antiga biblioteca de tempo de execução Visual C da Microsoft.
  • Subsistema Microsoft POSIX , um subsistema Windows opcional incluído em sistemas operacionais baseados em Windows NT até o Windows 2000. POSIX-1 como estava na revisão de 1990, sem threads ou soquetes.
  • Interix , originalmente OpenNT da Softway Systems, Inc., é uma atualização e substituição para o subsistema Microsoft POSIX que foi adquirido pela Microsoft em 1999. Foi inicialmente comercializado como um produto complementar autônomo e posteriormente incluído como um componente no Windows Services for UNIX (SFU) e finalmente incorporou-o como um componente no Windows Server 2003 R2 e versões posteriores do sistema operacional Windows sob o nome de "Subsistema para aplicativos baseados em UNIX" (SUA); mais tarde tornou-se obsoleto em 2012 (Windows 8) e caiu em 2013 (2012 R2, 8.1). Ele permite compatibilidade total com POSIX para determinados produtos Microsoft Windows .
  • Windows Subsystem for Linux , também conhecido como WSL, é uma camada de compatibilidade para executar executáveis ​​binários do Linux nativamente no Windows 10 usando uma imagem do Linux como Ubuntu, Debian ou OpenSUSE, entre outros, atuando como uma atualização e substituição para Windows Services for UNIX. Foi lançado em beta em abril de 2016. A primeira distribuição disponível foi o Ubuntu.
  • O UWIN da AT&T Research implementa uma camada POSIX sobre as APIs do Win32.
  • O MKS Toolkit , originalmente criado para MS-DOS, é um pacote de software produzido e mantido pela MKS Inc. que fornece um ambiente semelhante ao Unix para scripts, conectividade e portabilidade de software Unix e Linux para sistemas Microsoft Windows de 32 e 64 bits . Um subconjunto dele foi incluído na primeira versão do Windows Services for UNIX (SFU) em 1998.
  • A biblioteca de tempo de execução do Windows C e a API do Windows Sockets implementam funções da API POSIX comumente usadas para acesso a arquivo, hora, ambiente e soquete, embora o suporte permaneça em grande parte incompleto e não totalmente interoperável com implementações compatíveis com POSIX.

POSIX para OS / 2

Quase todos os ambientes compatíveis com POSIX para OS / 2 :

  • emx + gcc - amplamente compatível com POSIX

POSIX para DOS

Ambientes parcialmente compatíveis com POSIX para DOS incluem:

  • emx + gcc - amplamente compatível com POSIX
  • DJGPP - parcialmente compatível com POSIX
  • Núcleo multitarefa DR-DOS via EMM386 / MULTI - uma extensão de API de front-end de threads POSIX está disponível

Compatível via camada de compatibilidade

Os itens a seguir não são oficialmente certificados como compatíveis com POSIX, mas estão em grande parte em conformidade com os padrões ao implementar o suporte POSIX por meio de algum tipo de recurso de compatibilidade (geralmente bibliotecas de tradução ou uma camada sobre o kernel). Sem esses recursos, eles geralmente não são compatíveis.

Veja também

Referências

links externos