POSIX (um acrônimo para: Portable Operating System Interface,[1] que pode ser traduzido como Interface Portável entre Sistemas Operativos) é uma família de normas definidas pelo IEEE para a manutenção de compatibilidade entre sistemas operacionais (sistemas operativos em PT-PT), e designada formalmente por IEEE 1003. POSIX define a interface de programação de aplicações (API), juntamente com shells de linha e comando e interfaces utilitárias, para compatibilidade de software com variantes de Unix e outros sistemas operacionais.[2]

Iniciando uma sessão em modo POSIX a partir de uma shell

Tem como objetivo garantir a portabilidade do código-fonte de um programa a partir de um sistema operacional que atenda às normas POSIX para outro sistema POSIX, desta forma as regras atuam como uma interface entre sistemas operacionais distintos.

Nome editar

A designação internacional da norma é ISO/IEC 9945.

A normalização das especificações POSIX surgiu de um projecto, iniciado por volta de 1985, que tinha como objectivo normalizar a API (ou interface de programação de aplicativos) para software desenhado para correr em variantes do sistema operativo (ou sistema operacional, no Brasil) UNIX.

O termo POSIX foi sugerido por Richard Stallman em resposta a um pedido da IEEE de um nome fácil de lembrar. É uma sigla aproximada de Portable Operating System Interface, com o X a representar a herança que a interface de programação de aplicações tem do sistema UNIX.

A norma POSIX especifica as interfaces do utilizador e do software ao sistema operativo em 15 documentos diferentes.

A linha de comando e interface de comandos padrão é a Korn Shell.

Outros programas de nível de usuário, serviços e utilitários incluem, entre centenas de aplicações, awk, echo e ed.

Os serviços de nível de programa necessários incluem serviços de entrada/saída (ficheiro, terminal e internet) básicos.

Atualmente a sua documentação é dividida em 3 partes:

  • APIs POSIX do Núcleo que inclui:
    • Extensões para o POSIX.1,
    • Serviços de tempo real,
    • Interfaces com threads,
    • Extensões de tempo real,
    • Interface segura,
    • Acesso a arquivos via rede e
    • Comunicações entre processos via rede
  • Comandos e utilitários POSIX
    • Com extensões de portabilidade para o usuário,
    • Correções e utilidades de proteção e
    • Controle para utilidades do sistema Batch
  • Teste de adequação POSIX

Um pacote de teste da norma POSIX acompanha a documentação da norma. É designada por POSIX Conformance Test Suite (PCTS).

Como a IEEE tem vindo a cobrar somas avultadas pela documentação da norma POSIX e não permite a publicação online das normas, tem havido uma tendência para adopção da "Single UNIX Specification", da responsabilidade do Open Group, que é aberta, aceita contribuições de todos e encontra-se disponível na Internet.

Apesar de terem sido feitas para sistemas Unix, os padrões POSIX podem ser aplicados a qualquer sistema operacional.Para sistemas Linux, várias extensões e normalizações de facto são providenciadas pela Linux Standard Base.

Versões editar

  • POSIX.1, Serviços de núcleo (incorpora o padrão ANSI C)
    • Criação e controle de processos
    • Signals[3]
    • Exceções de Ponto Flutuante
    • Violações de Segmentação
    • Instruções Ilegais
    • Erros de Barramento
    • Timers
    • Operações com Arquivos e Diretórios
    • Pipes
    • Biblioteca padrão do C
    • I/O Controle e Interface de Portas
  • POSIX.1b, Real-time extensions
    • Scheduling de Prioridade
    • Signals de Tempo-real
    • Clocks e Timers
    • Semáforos
    • Passagem de Mensagens
    • Memória Compartilhada
    • E/S Assícronas e Síncronas
    • Bloqueamento(Locking) de Memória
  • POSIX.1c, Threads extensions
    • Criação, Controle e Limpeza de Threads
    • Scheduling de Threads
    • Sincronização de Threads
    • Manipulação de Signals

Referências

  1. «POSIX.1 FAQ». The Open Group. 5 de outubro de 2011 
  2. «POSIX». Standards. IEEE 
  3. «Linux Signals» 

Ligações externas editar