POSIX
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]
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
editarA 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
- ↑ «POSIX.1 FAQ». The Open Group. 5 de outubro de 2011
- ↑ «POSIX». Standards. IEEE
- ↑ «Linux Signals»