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
[editar | editar código-fonte]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 | editar código-fonte]- 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»