Plan 9 from Bell Labs

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Question book.svg
Esta página ou se(c)ção não cita fontes fiáveis e independentes (desde dezembro de 2013). Por favor, adicione referências e insira-as no texto ou no rodapé, conforme o livro de estilo. Conteúdo sem fontes poderá ser removido.
Plan 9 from Bell Labs
Plan9bunnysmblack .jpg
Captura de tela
Instalação do Plan 9
Produção Bell Labs
Família do SO Sucessor do Unix
Modelo Open source
Estado Corrente
Versão estável Quarta Edição
Núcleo Núcleo Híbrido
Licença dual licença (GNU GPLv2 e LPL
Página oficial plan9.bell-labs.com

O Plan 9 é um sistema operacional descendente do Unix e desenvolvido pela Bell Laboratories. Ele não é variante Unix, mas é muito parecido. O Plan 9 explora várias "simplificações" do modelo Unix original. Isso incrementa a experiência de usar e programar o sistema, notavelmente em ambientes multi-usuários distribuídos. O Plan 9 foi um projeto interno da Bell Labs por muitos anos, mas a distribuição pública feita em 1993, seguida por uma versão encolhe-envolve em 1995. A Bell perdeu o interesse comercial no projeto após a década de 1990 e distribuiu uma terceira versão sobre um licença não-livre (porém com o código fonte disponível) em 2000, e finalmente sobre uma nova licença open source em 2002. Esta é a quarta, e atual, edição do sistema.

Os Direitos para um produto derivado, Inferno, são de propriedade de uma companhia britânica, Vita Nuova. O Inferno compartilha muitas das semelhanças de conceitos de design do Plan 9, mas usa uma nova linguagem de programação de aplicativos, a Limbo, que vem acompanhando de uma máquina virtual, Dis. O Inferno é vendido como um sistema operacional embarcado open source.

Um ambiente funcional instalável existe para x86, mas existem versões do Plan 9 rodado no Intel, MIPS, Alpha, SPARC, PowerPC, ARM e outras arquitecturas. O sistema por si é escrito em um dialeto do ISO/ANSI C; muitas aplicações foram anteriormente escritas em uma linguagem chamada Alef, que tiveram que ser reescritos no mesmo dialecto em C. Ele pode importar programas POSIX e pode emular o Berkeley socket interface. Ele tem um suporte completo ao UTF-8, e um sistema de janelas chamado "Rio".

O nome vem do filme de ficção científica chamado Plan 9 from Outer Space.

Conceitos do design[editar | editar código-fonte]

Os projetistas do Plan 9 estavam interessados em objetivos similares aos do micronúcleo, mas fizeram escolhas bem diferentes em termos de arquitetura e desenvolvimento para atingir estes objetivos. Entre esses objetivos estão:

  • Recursos com arquivos: todos os recursos são representados como arquivos em um sistema de arquivos hierárquico;
  • Namespaces: a visualização da rede pela aplicação é um simples, coerente namespace que aparece como um sistema de arquivos hierárquico, mas representa recursos separados fisicamente (local ou remotamente);
  • Protocolo de comunicação padrão: um protocolo padrão, chamado 9P, é usado para aceder a todos os recursos, tanto locais quanto remotos.

Sistemas de arquivos, arquivos, e nomes[editar | editar código-fonte]

O Plan 9 estende o sistema mediante arquivos por "nomes", isto é, um único caminho para qualquer objeto, não importando se ele é um arquivo, uma tela, usuários, ou computadores. Tudo é feito usando os padrões Unix existentes, mas adicionando o fato que todo objeto pode ser nomeado e endereçado, um conceito similar ao amplamente conhecido sistema URI da internet. Em versões anteriores do Unix, dispositivos como impressoras eram representadas por nomes através do uso de programas conversores em /dev, mas estes endereçam apenas dispositivos conectados directamente por hardware, e não mapeia dispositivos em rede. No Plan 9 as impressoras são virtualizadas e tratadas como arquivos e ambos podem ser acedidos através da rede por qualquer estação de trabalho.

Outra inovação no Plan 9 é a capacidade para os usuários de ter diferentes nomes para os mesmos objectos do "mundo real". De fato qualquer usuário pode criar um ambiente personalizado coleccionando vários objectos em seu "namespace". O Unix tem um conceito similar em que o usuário ganha privilégios ao ser copiado de outro usuário, mas no Plan 9 isto é estendido para qualquer objecto. Os usuários pode facilmente criar "clones" de si mesmo, modificar esta cópia, e depois apagá-la sem afectar nada dos recursos originais.

União de directórios[editar | editar código-fonte]

O Plan 9 também introduziu a idéia de união de directórios. São directórios que combinam recursos entre mídias diferentes ou através de uma rede juntando-se a outros directórios transparente mente. Por exemplo, o directório /bin de outro computador pode ser ligado com o seu próprio /bin, e então este diretório irá compartilhar ambos os binários locais e os binários remotos, e podem ser usados por ambos transparente mente. No Unix, mapear directórios desta forma faz o original ficar oculto enquanto existir o mapeamento. Usando o mesmo método, no Plan 9, fontes e dispositivos externos podem ser ligados ao /dev, fazendo de todos os dispositivos, dispositivos de rede, sem adicionar novos códigos.

/proc[editar | editar código-fonte]

Para ilustrar como estas características funcionam simultaneamente para produzir um poderoso conjunto, consideremos o interessante directório /proc, onde todos os processos que estão sendo executados são listados. Processos são considerados objectos no Plan 9, como tudo o mais, então faz sentido listá-los em um directório, assim como o restante. Esta alteração simples tem muitos efeitos colaterais úteis, permitindo ao usuário usar comandos como o ls para pesquisar e organizar a lista de processos (que estão rodando), o que antes só era possível com o uso de ferramentas especializadas. Mas ainda mais interessante, os usuários podem "unir" processos remotos para seu "namespace", interagindo com eles como se os processos fossem executados localmente, tornando quase que trivial o processamento em rede.

O resultado é um ambiente de computação distribuído construído com máquinas separadas - terminais que ficam nas mesas dos usuários, servidores de arquivos que armazenam os dados permanentemente, e outros que fornecem CPUs rápidas, autenticação de usuários, e gateway de rede, todos utilizado o sistema de directórios/nomes hierárquicos familiar à maioria dos usuários de computador. Um usuário pode "construir" um sistema coleccionando directórios em servidores de arquivos, aplicativos rodando em servidores, impressoras em rede e estas conectadas a isto tudo em seu "namespace" rodando em um terminal.

Rede e computação distribuída[editar | editar código-fonte]

O Plan 9 é baseado no Unix mas foi desenvolvido para demonstrar o conceito de tornar a comunicação a função central dos sistemas computacionais. Todas os recursos do sistema são nomeados e acedidos como se fossem arquivos e múltiplas visões do sistema distribuído podem ser definidas dinamicamente para cada programa rodando em uma máquina em particular. Esta abordagem melhora, generaliza e modulariza o design das aplicações por encorajar servidores que lidam com qualquer informação a parecer para o usuário e para as aplicações simplesmente como uma coleção de arquivos simples.

A chave para suportar a rede transparente mente no Plan 9 é um protocolo de rede de baixo nível conhecido como 9P. O protocolo 9P e sua implementação conectam objetos de rede nomeados e apresentam em uma interface parecida com um sistema de arquivos. 9P é um rápido sistema de arquivos distribuído orientado a bytes (em vez de ser orientado a blocos) que pode "virtualizar" qualquer objeto, não somente aqueles apresentados por um servidor NFS numa máquina remota. O protocolo é usado para referenciar e se comunicar com processos, aplicações e dados, incluindo tanto a interface de usuário quanto a rede. Com o lançamento da 4ª edição, ele foi modificado e renomeado para 9P2000.

Licença[editar | editar código-fonte]

O código fonte completo esta livremente disponível, e a licença Plan 9 é agora considerada Open Source pela OSI e free software pela FSF.

Utilitários padrões Plan 9[editar | editar código-fonte]

  • rc - the Plan 9 shell
  • sam - um editor de texto
  • acme - uma interface de usuário para programadores
  • plumber - interprocess messaging
  • Mk - uma ferramenta para construir software, análoga ao tradicional Unix make
  • namespace
  • rio - o novo sistema de janelas do Plan 9
  • - o velho sistema de janelas do Plan 9
  • Fossil e Venti - the new archival file system and permanent data store

Implementações[editar | editar código-fonte]

  • 9P - o protocolo padrão de arquivos
  • rendezvous - um mecanismo básico de sincronização
  • Brazil - que será a quarta edição do Plan 9

Ligações externas[editar | editar código-fonte]

Bell Labs[editar | editar código-fonte]

Palestras[editar | editar código-fonte]

Outros[editar | editar código-fonte]