Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Plan 9 from Bell Labs: Uma visão geral
1. Plan 9 from Bell Labs
Uma visão geral
Introdução
O Plan 9 from Bell Labs é um sistema de pesquisa desenvolvido no Bell Labs a partir do final da
década de 1980. Seus projetistas e autores originais eram Ken Thompson, Rob Pike, Dave Presotto
e Phil Winterbottom. A eles se juntaram diversos outros que, como desenvolvedores, continuaram o
trabalho de 1990 até os dias atuais.
O Plan 9 mostrou-se uma maneira nova e frequentemente mais limpa de resolver a maioria dos
problemas encontrados em sistemas. O sistema, no seu todo, deve soar muito semelhante e familiar
aos usuários do Unix, parecendo, contudo, ao mesmo tempo um pouco estranho.
No Plan 9 cada processo possui o seu próprio name space modificável. Um processo pode ser
rearranjado, pode sofrer acréscimos ou remoções no seu name space, sem com isso afetar os name
spaces de processos não relacionados. Incluída nas modificações de name space está a possibilidade
de se “montar” (mount) uma conexão a um servidor de arquivos que se comunique via 9P, um
simplório protocolo baseado em arquivo. A conexão pode ser uma conexão de rede, um pipe ou
qualquer descritor de arquivo aberto para a leitura e escrita tendo na outra ponta um servidor do
protocolo 9P. Name spaces personalizáveis são largamente usados por todo o sistema, na
apresentação de novos recursos (por exemplo, o sistema de janelas), para importar recursos de uma
outra máquina (por exemplo, a pilha de rede) ou para navegar pelo histórico no tempo (por
exemplo, o sistema de arquivos de dump).
O Plan 9 é um núcleo (kernel) de sistema operacional bem como uma coleção de softwares
disponibilizada em conjunto. O grosso do software é majoritariamente novo, escrito
especificamente para o Plan 9, e não software transportado do Unix ou de outros sistemas. O
sistema de janelas, compiladores, servidores de arquivo e serviços de rede foram escritos
especificamente para o Plan 9. Todavia, programas clássicos do Unix como dc(1), ed(1) e mesmo o
troff(1) estão disponibilizados, frequentemente numa forma adaptada. Por exemplo, o troff aceita
documentos Unicode codificados com UTF-8, assim como ocorre em todo o sistema.
O artigo Plan 9 from Bell Labs fornece uma introdução ao sistema mais aprofundada.
Lançamentos
O Plan 9 teve quatro grandes lançamentos ao longo de sua história.
A primeira edição, lançada em 1992, foi disponibilizada apenas para universidades. A primeira
edição tinha a maioria das partes identificáveis no Plan 9, incluindo o kernel, ndb, sam, upas, alef e
o suporte completo ao UTF-8. O acme foi apresentado numa forma anterior como ajuda. Os
servidores de CPU eram estações SPARC da Sun, SGI Power e SGI Magnum, com estações NEXT
e PCs como terminais. As estações Gnot e Hobbit, construídas localmente, eram também utilizadas
como terminais.
2. A segunda edição, lançada em 1995 na forma de livro e CD, adicionava o acme e uns poucos
outros utilitários. Na época do lançamento da segunda edição, a equipe do Plan 9 trabalhava numa
reimplementação do sistema chamada Brazil. Em 1999, na preparação para o lançamento da terceira
edição, o nome Brazil foi abandonado e o sistema voltou a se chamar Plan 9.
A terceira edição antecipada foi lançada em junho de 2000 e disponibilizada livremente na
Internet. Introduzia um novo operador gráfico de cores chamado draw e um novo mecanismo de
comunicação entre processos chamado plumbing. A distribuição introduzia também um simplório
gerenciador de atualizações chamado wrap para instalar atualizações de sistema empacotadas.
Logo após o lançamento da terceira edição, a equipe do Bell Labs começou uma revisão do
protocolo 9P dando-lhe o nome de 9P2000. Comparado ao 9P usado nos lançamentos anteriores, o
9P2000 remove algumas restrições, consideradas inadequadas nesta altura, com relação a
comprimentos de nomes, acrescenta um campo “último modificador” (last modifier) aos metadados
de diretório, permite o encaminhamento de mensagens em lotes, e introduz arquivos de autenticação
como mecanismo para mover os detalhes dos protocolos de autenticação para fora do protocolo 9P
propriamente.
O lançamento da quarta edição, em 2002, introduzia o 9P2000 juntamente com o agente de
segurança associado factotum(4) e o repositório de chaves secstore(8). Introduzia também o
servidor de armazenamento em blocos venti(8). O servidor de arquivos baseado no venti, o fossil(4),
veio a baila no início de 2003.
Adicionalmente a esses programas, a quarta edição introduzia um novo mecanismo para distribuir
as atualizações do sistema. Um servidor de arquivos fossil público, sources.cs.bell-labs.com,
contendo uma árvore de arquivos atuais que são servidos para qualquer sistema Plan 9 conectado a
Internet. Alterações na árvore dessa quarta edição são feitas com frequência, geralmente todos os
dias. Os clientes rodam as ferramentas do replica(1) para manter os seus sistemas sincronizados
com os sources (fontes). Snapshots dos sources, acessados por meio do sistema de arquivos de
dump, fornecem um conveniente histórico dos lançamentos.
Licenciamento
A primeira edição foi disponibilizada apenas para uso nas universidades.
A segunda edição foi disponibilizada para o público geral a um custo de $350 por distribuição, o
que incluía uma licença para usar o software em toda a organização.
Na terceira edição, a Lucent concordou em lançar o Plan 9 de graça pela Internet, sob uma nova
licença, a Licença do Plan 9.
A quarta edição (a atual) foi disponibilizada sob a Licença Pública da Lucent versão 1.02. Adotada
para corrigir lacunas que existiam na Licença do Plan 9, a Licença Pública da Lucent 1.02 é idêntica
a Licença Pública da IBM 1.0, exceto que não requer que o código-fonte seja distribuído com
trabalhos derivados; é não-viral.
Estado atual
O Plan 9 continua mudando diariamente. Essas alterações são distribuídas pelos muitos usuários do
Plan 9 via sources.cs.bell-labs.com como descrito acima. Ainda assim, o Plan 9 tem-se mantido fiel
3. a sua concepção original, e um usuário da primeira versão do sistema, de 1992, não precisaria de
muita ajuda para se adaptar ao sistema atual.
Devagar, as ideias do Plan 9 tem sido adotadas por outros sistemas. O Plan 9 foi o primeiro sistema
com suporte completo a codificação de conjunto de caracteres Unicode UTF-8. O sistema de
arquivos de dump tem sido imitado nos diretórios do Athena's Old Files ou nos diretórios de
snapshots da Network Appliance. A flexível chamada de sistema rfork(2), base de threads leves
(threads = linhas/trilhas/fluxos de execução), foi adotada por vários derivados do BSD, tal como é,
e reencarnada no Linux como clone(2). O simplório protocolo baseado em arquivo 9P tem sido
implementado, desde muito, em versões do FreeBSD e em versões recentes do Linux.
Uma porção de companhias tem tido sucesso na comercialização de produtos baseados no Plan 9. A
mais notável é a Vita Nuova que continua a manter e comercializar o Inferno, um derivado do Plan
9 concebido para set-top boxes e outros dispositivos embarcados.
Uma vez que o Plan 9 possui um modelo de sistema bastante diferente dos demais sistemas
operacionais modernos, é por vezes complicado transportar softwares externos para o Plan 9. Em
particular, não há ainda para o Plan 9 um navegador web cheio de recursos; webfs(4) e html(2)
foram pensados justamente como passos na direção de uma solução.
A página principal contém ligames para documentação adicional e informações de download.
Aproveite!