Padrão POSIX

Padrão POSIX

Posix: uma visão geral

A interface do sistema operacional portátil (POSIX) é um padrão IEEE que ajuda a compatibilidade e portabilidade entre os sistemas operacionais. Teoricamente, o código -fonte compatível com Posix deve ser perfeitamente portátil. No mundo real, a transição de aplicativo geralmente se depara com problemas específicos do sistema. Mas a conformidade do POSIX torna mais simples para os aplicativos portados que podem resultar em economia de tempo. Portanto, os desenvolvedores devem se familiarizar com os fundamentos desse padrão amplamente utilizado.

História de Posix

Os primeiros programadores tiveram que reescrever seus aplicativos do zero para cada novo modelo de computador. Mas o sistema IBM/360 mudou que. Em 1964, introduziu o sistema operacional OS/360. A IBM começou a usar a mesma arquitetura de hardware para permitir que os novos modelos reutilizem o mesmo sistema operacional. A presença de um sistema operacional comum em várias máquinas estabeleceu o primeiro estágio para portabilidade de aplicação.

No final dos anos 1960, a chegada do Unix abriu novas possibilidades. A Bell Labs da AT&T foi responsável pelo desenvolvimento inicial deste novo sistema operacional. Poderia ser encontrado através de máquinas de vários fornecedores. Mas o Unix começou a gastar em vários sabores. Além do sistema V da AT&T, havia Berkeley Software Distribution (BSD), Xenix e mais. Não foi fácil portar por esses sabores. A promessa de portabilidade de aplicação atingiu uma colisão de estrada. Nas próximas décadas, a introdução de novos sistemas operacionais só tornaria mais complexo para aplicações portuárias em hardware, sistemas operacionais e fornecedores.

O Posix Standard foi desenvolvido na década de 1980 para resolver o problema de portabilidade. O padrão foi definido com base no sistema V e BSD Unix. Posix não define o sistema operacional, ele define apenas a interface entre um aplicativo e um sistema operacional. Os programadores têm a liberdade de escrever seu sistema operacional e aplicação de qualquer maneira que quiserem, desde que a interface entre os dois seja homenageada. Como Posix é independente do hardware, sistema operacional ou fornecedor, é mais fácil obter portabilidade de aplicativos.

O primeiro Posix Standard foi lançado em 1988. Formalmente, foi chamado IEEE Standard 1003.1-1988 Interface do sistema operacional portátil para ambientes de computador ”. Em 1990, uma versão internacional do mesmo padrão com pequenas variações foi lançada como ISO/IEC 9945-1: 1990 Tecnologia da informação - Interface do sistema operacional portátil (POSIX) - Parte 1: API (System Application Program Interface).

Inicialmente, Posix foi dividido em vários padrões:

Posix.1: Serviços essenciais
Posix.1b: Extensões em tempo real
Posix.1C: Extensões de threads
Posix.2: Conchas e utilitários

Depois de 1997, o grupo Austin trouxe todo o padrão sob um único guarda -chuva. Desde então, as versões posix.1-2001 (também conhecido como IEEE STD 1003.1-2001), Posix.1-2004 (também conhecido como IEEE STD 1003.1-2004) e POSIX.1-2008 (também conhecido como IEEE STD 1003.1-2008) foram lançados.

Exemplos de alguns sistemas compatíveis com Posix são AIX, HP-UX, Solaris e MacOS (desde 10.5 Leopard). Por outro lado, Android, FreeBSD, Distribuições Linux, OpenBSD, VMware, etc., Siga a maior parte do padrão POSIX, mas eles não são certificados.

Noções básicas de Posix

Posix.1-2008 Standard lida com quatro áreas principais:

  1. Volume de definição de base: Termos, conceitos e interfaces gerais.
  2. Sistemas Interfaces Volume: Definições de funções e sub -rotinas de serviço do sistema. Além disso, inclui portabilidade, manuseio de erros e recuperação de erros.
  3. Volume de conchas e utilitários: Definição de interfaces de qualquer aplicativo para comandar conchas e programas de serviços públicos comuns.
  4. Volume da lógica: Contém informações e histórico sobre recursos adicionados ou descartados e os raciocínio das decisões.

O padrão não cobre interfaces gráficas, interfaces de banco de dados, portabilidade de objeto/código binário, configurações do sistema, considerações de E/S ou disponibilidade de recursos.

Alguns dos princípios orientadores por trás do design do Posix são:

  • POSIX é criado para facilitar a portabilidade do aplicativo. Portanto, não é apenas para sistemas Unix. Os sistemas não unix também podem ser compatíveis com Posix.
  • O padrão não determina o desenvolvimento do aplicativo ou do sistema operacional. Define apenas o contrato entre eles.
  • O código-fonte do aplicativo compatível com POSIX deve ser capaz de atravessar muitos sistemas porque o padrão é definido no nível do código-fonte. No entanto, o padrão não garante qualquer portabilidade de nível de objeto ou código binário. Portanto, o executável binário pode não ser executado, mesmo em máquinas semelhantes com hardware e sistemas operacionais idênticos. Somente a portabilidade do código -fonte é abordada no padrão.
  • Posix está escrito em termos de padrão C. Mas os desenvolvedores podem implementá -lo em qualquer idioma que goste.
  • O padrão lida apenas com aspectos do sistema operacional que interage com aplicativos.
  • O padrão é mantido sucinto em termos de comprimento e amplo em termos de escopo para cobrir uma grande variedade de sistemas.
  • Posix foi projetado para simplificar a portabilidade. Portanto, economizará tempo e dinheiro a longo prazo. No entanto, se seus aplicativos não forem compatíveis com Posix, poderá exigir um tempo significativo de tempo e recursos no início.

Desenvolvimento de aplicativos POSIX

O objetivo do POSIX era melhorar a portabilidade. Quando seu código -fonte segue o padrão, você pode compilar e executar o código em uma máquina diferente facilmente. No entanto, se o POSIX for definido como um requisito geral para uma aplicação, pode causar confusão. O padrão POSIX completo é de mais de 4000 páginas com mais de 1350 interfaces. Não faz sentido implementar tudo. Portanto, cada projeto deve definir os aspectos do POSIX que atenderão aos requisitos específicos.

Existem conceitos errôneos na comunidade de desenvolvimento que o padrão POSIX é antigo e irrelevante. Não é verdade. Posix é um documento vivo que está sendo atualizado regularmente pelo grupo Austin. Qualquer um pode ingressar no grupo e participar da melhoria do padrão. O padrão é usado ativamente nos servidores de hoje, estações de trabalho, roteadores, dispositivos móveis, sistemas incorporados e muito mais. É usado para máquinas Unix e Linux.

No entanto, os desenvolvedores devem estar cientes de que o Posix Standard tem problemas. Você pode relatar qualquer bug que descobrir ao grupo de Austin e ele será analisado para a próxima revisão.

Conclusão
Posix pode parecer assustador no começo. Ainda assim, os desenvolvedores de aplicativos devem se familiarizar com o básico, pois ele aparecerá como um requisito de tempos em tempos. Devido ao grande escopo do padrão, não é possível se tornar um especialista no documento completo. Os desenvolvedores podem alcançar as comunidades UNIX e Linux para aprender mais. As comunidades podem responder suas perguntas e dar uma noção melhor de que parte do padrão será relevante para o seu projeto.

Um estudo mais aprofundado:

  • POSIX documento completo
  • FAQ POSIX
  • O grupo de revisão de padrões comuns de Austin

Referências:

  • FAQ POSIX, Grupo Austin
  • Grupo Austin
  • Documento 7542098/
  • Conceitos de serviços de Posix e Unix System
  • OpenGroup Doc 9699919799
  • O que é posix?, Universidade de Indiana
  • Padrões docs @ open-std.org
  • Bill Gallmeister, guia de programação POSIX
  • Guia dos programadores POSIX, Donald Lewine
  • Stackoverflow o que é Posix
  • História de Uniux, Darwinsys.com
  • Austin Open Group, Posix Paper
  • Posix da Wikipedia