POSIX - POSIX
Status | Publicados |
---|---|
Ano começou | 1988 |
Última versão | IEEE Std 1003.1-2017 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 |
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:
-
POSIX.1 : Core Services (incorpora o Padrão ANSI C ) (IEEE Std 1003.1-1988)
- Processar Criação e Controlo
- Sinais
- Operações de arquivo e diretório
- Tubos
- Biblioteca C (Padrão C)
- Interface e controle da porta de E / S
- Gatilhos de processo
-
POSIX.1b : extensões em tempo real (IEEE Std 1003.1b-1993, posteriormente aparecendo como librt - a biblioteca de extensões em tempo real))
- Agendamento prioritário
- Sinais em tempo real
- Relógios e cronômetros
- Semáforos
- Passagem de mensagens
- Memoria compartilhada
- E / S assíncrona e síncrona
- Interface de travamento de memória
-
POSIX.1c : extensões de threads (IEEE Std 1003.1c-1995)
- Criação, controle e limpeza de thread
- Agendamento de discussão
- Sincronização de thread
- Manuseio de Sinal
-
POSIX.2 : Shell e utilitários (IEEE Std 1003.2-1992)
- Intérprete de Comando
- Programas úteis
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:
- Android (disponível através do Android NDK)
- BeOS (e posteriormente Haiku )
- Contiki
- Darwin (núcleo do macOS e iOS )
- DragonFly BSD
- FreeBSD
- Illumos
- Linux (a maioria das distribuições - consulte Linux Standard Base )
- LynxOS
- MINIX (agora MINIX3 )
- MPE / iX
- NetBSD
- Núcleo RTOS
- NuttX
- OpenBSD
- OpenSolaris
- PikeOS RTOS para sistemas embarcados com partições PSE51 e PSE52 opcionais; veja partição (mainframe)
- Redox
- RTEMS - Suporte a POSIX API projetado para IEEE Std. 1003.13-2003 PSE52
- SkyOS
- Sílaba
- VSTa
- VMware ESXi
- VxWorks ( VxWorks é frequentemente usado como um shell em torno de Kernels não POSIX - ou seja, TiMOS / SROS )
- Xenix
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.
- eCos - POSIX faz parte da distribuição padrão e é usado por muitos aplicativos. A seção 'links externos' abaixo tem mais informações.
- AmigaOS (por meio da biblioteca ixemul)
- MorphOS (por meio da biblioteca ixemul integrada)
- OpenVMS (por meio do pacote POSIX opcional)
- Plano 9 da Bell Labs APE - Ambiente ANSI / POSIX
- RIOT (através do módulo POSIX opcional)
- Symbian OS com PIPS (PIPS é POSIX no Symbian)
-
Kernel do Windows NT ao usar o Microsoft SFU 3.5 ou SUA
- Windows 2000 Server ou Professional com Service Pack 3 ou posterior . Para ser compatível com POSIX, é necessário ativar recursos opcionais do Windows NT e Windows 2000 Server.
- Windows XP Professional com Service Pack 1 ou posterior
- Windows Server 2003
- Windows Server 2008 e versões Ultimate e Enterprise do Windows Vista
- Windows Server 2008 R2 e versões Ultimate e Enterprise do Windows 7
- embora preterido, ainda está disponível para Windows Server 2012 e versão Enterprise do Windows 8
- UNIX System Services que é executado em z / OS (certificado como compatível)
Veja também
- Sinal POSIX
- POSIX Threads
- Projeto TRON - padrões alternativos de sistema operacional para POSIX
- Acesso comum do usuário - padrão de interface do usuário
- Interix - um subsistema de ambiente POSIX e Unix com todos os recursos para sistemas operacionais baseados em Windows NT da Microsoft
- Biblioteca C POSIX
- Sistema operacional em tempo real
- Conjunto de caracteres portátil , conjunto de 103 caracteres que deve ser compatível com qualquer local de conjunto de caracteres compatível com POSIX
Referências
links externos
- "POSIX Certification home" . O Grupo Aberto / IEEE.