Top Qs
Linha do tempo
Chat
Contexto

Plan 9 from Bell Labs

sistema operativo Da Wikipédia, a enciclopédia livre

Plan 9 from Bell Labs
Remove ads

O Plan 9 from Bell Labs é um sistema operacional distribuído que se originou no Computing Science Research Center (CSRC) da Bell Labs em meados da década de 1980 e construído nos conceitos primeiramente desenvolvidos no Unix e no final da década de 1980. Dês de 2000, o Plan 9 é livre e opensource. A ultima versão official foi liberada no início de 2015.

Factos rápidos Versão do sistema operativo Sucessor do Unix, Estado de desenvolvimento ...

No Plan 9 a metáfora UNIX everything is a file (tudo é um arquivo) é estendida através de um sistema de arquivos abrangente centrado em redes, e o I/O endereçado por cursor, baseado em terminal no coração de sistemas operacionais UNIX-like é subsistido por um sistema de janelas e uma interface gráfica do usuário sem endereçamento por cursor, apesar disso o rc, o shell do Plan 9, é baseado em texto.

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 Plan 9 from Bell Labs é uma referência ao Filme Z cult de ficção científica chamado Plan 9 from Outer Space de Ed Wood, feito em 1957.[2] Além disso, Glenda, the Plan 9 Bunny, é presumivelmente uma referência ao filme Glen or Glenda. O sistema continua a ser utilizado e desenvolvido por pesquisadores de sistemas operacionais e hobistas.[3][4]

Remove ads

História

Resumir
Perspectiva

O Plan 9 da Bell Labs foi desenvolvido originalmente, a partir de meados da década de 1980, por membros do Centro de Pesquisas em Ciência da Computação da Bell Labs, o mesmo grupo que originalmente desenvolveu Unix e C.[5] A equipe do Plan 9 foi inicialmente liderada por Rob Pike, Ken Thompson, Dave Presotto e Phil Winterbottom, com o apoio de Dennis Ritchie como chefe do departamento de pesquisa de técnicas de computação. Ao longo dos anos, muitos desenvolvedores notáveis ​​têm contribuído para o projeto, incluindo Brian Kernighan, Tom Duff, Douglas McIlroy, Bjarne Stroustrup e Bruce Ellis.[6]

O Plan 9 substituiu o Unix como plataforma principal dos Bell Labs para pesquisa de sistemas operacionais. Ele explorou várias alterações ao modelo original Unix que facilitam o uso e a programação do sistema, principalmente em ambientes multiusuários distribuídos. Depois de vários anos de desenvolvimento e uso interno, a Bell Labs enviou o sistema operacional para as universidades em 1992. Três anos mais tarde, em 1995, o Plan 9 foi disponibilizado em partes comerciais pela AT&T através da editora Harcourt Brace. Com licenças de origem que custam US $ 350, a AT&T segmentou o mercado de sistemas embarcados em vez do mercado de computadores em geral; Ritchie comentou que os desenvolvedores não esperavam fazer "muito deslocamento" dada a forma como outros sistemas operacionais estabelecidos tinham se tornado.[7]

No início de 1996, o projeto do Plan 9 tinha sido "posto em segundo plano" pela AT&T em favor do Inferno, destinado a ser um rival à plataforma Java da Sun Microsystems.[8] No final dos anos 90, o novo proprietário da Bell Labs, Lucent Technologies, abandonou o suporte comercial para o projeto e, em 2000, uma terceira versão foi distribuída sob uma licença de código aberto. Uma quarto lançamento sob uma licença nova de software livre ocorreu em 2002.[9] Uma comunidade de usuários e desenvolvedores, incluindo funcionários atuais e antigos da Bell Labs , produziu lançamentos diários menores em forma de imagem ISO. Bell Labs hospedou o desenvolvimento.[10] A árvore de origem de desenvolvimento é acessível através dos protocolos 9P e HTTP e é usada para atualizar instalações existentes.[11] Além dos componentes oficiais do SO incluído nas ISOs, a Bell Labs também hospeda um repositório de aplicações e ferramentas desenvolvidas externamente.[12]

Mais informação Data, Versão ...
Remove ads

Conceitos do design

Resumir
Perspectiva

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.[14] 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

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

O Plan 9 também introduziu a ideia 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. A arquitetura do diretório union do Plan 9 inspirou as implementações do sistema de arquivos union 4.4BSD e do Linux, embora os desenvolvedores da instalação de montagem union BSD encontraram a fusão não-recursiva de diretórios no Plan 9 "muito restritiva para uso geral".

/proc

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. [15]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.[16] 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.

/net

O Plan 9 não tem chamadas de sistema especializadas ou ioctls para acessar a pilha de rede ou hardware de rede. Em vez disso, o sistema de arquivos /net é usado. As conexões de rede são controladas pela leitura e gravação de mensagens de controle para controlar arquivos. Sub-diretórios como /net/tcp e /net/udp são usados ​​como uma interface para seus respectivos protocolos.[16]

Unicode

Para reduzir a complexidade do gerenciamento de codificações de caracteres, o Plan 9 usa o Unicode em todo o sistema. A implementação inicial do Unicode foi ISO 10646. Ken Thompson inventou o UTF-8, que se tornou a codificação nativa no Plano 9. O sistema inteiro foi convertido para uso geral em 1992.[17] O UTF-8 preserva a compatibilidade com as cadeias terminadas nulas tradicionais, permitindo um processamento de informações mais confiável e o encadeamento string de dados multilíngue com Unix pipes entre vários processos. Usando uma única codificação UTF-8 com caracteres para todas as culturas e regiões elimina a necessidade de alternar entre conjuntos de códigos.[18]

Combinando os conceitos de projeto

Embora interessante por conta própria, os conceitos de design do Plan 9 são mais úteis quando combinados. Por exemplo, para implementar um servidor network address translation (NAT), um diretório de união pode ser criado, sobrepondo a árvore de diretórios do roteador /net com seu próprio /net. Da mesma forma, uma rede privada virtual (VPN) pode ser implementada por sobreposição em um diretório union /net hierarquia de um gateway remoto, usando 9P protegido através da internet pública. Um diretório de union com a hierarquia /net e os filtros podem ser usados ​​para sandbox, um aplicativo não confiável ou para implementar um firewall. Da mesma forma, uma rede de computação distribuída pode ser composta com um diretório union de hierarquias /proc de hosts remotos, o que permite interagir com eles como se fossem locais.

Quando usados ​​em conjunto, esses recursos permitem a montagem de um ambiente de computação distribuída complexa reutilizando o sistema de nomes hierárquico existente.[16]

Remove ads

Recepção

Resumir
Perspectiva

Impacto

O Plan 9 demonstrou que um conceito integral do Unix - que cada interface do sistema poderia ser representada como um conjunto de arquivos - poderia ser implementado com sucesso em um sistema distribuído moderno.[19] Alguns recursos do Plan 9, como a codificação de caracteres UTF-8 do Unicode, foram implementados em outros sistemas operacionais. Sistemas operacionais Unix, como o Linux, implementaram o 9P, o sistema de arquivos do Plan 9, e adotaram os recursos do rfork, mecanismo de criação de processo do Plan 9. Além disso, no Plan 9 from User Space, várias das ferramentas e aplicativos do Plan 9, incluindo os editores sam e acme, foram portados para sistemas Unix e Linux e alcançaram algum nível de popularidade. Vários projetos procuram substituir os programas do sistema operacional GNU que cercam o kernel do Linux com os programas do sistema operacional Plan 9.[20][21] O gestor de janelas 9wm foi inspirado no , o mais antigo sistema de janelas do Plan 9; [22] wmii também é fortemente influenciado pelo Plan 9.[23] Em pesquisas na ciência da computação, o Plan 9 tem sido utilizado como uma plataforma de computação em grade e como um veículo para a investigação em computação ubíqua sem middleware.

Vários projetos trabalham para estender o Plan 9, incluindo 9atom e 9front. Esses forks aumentam o Plan 9 com drivers de hardware e software adicionais, incluindo uma versão melhorada do sistema de e-mail Upas, o compilador go, o suporte a sistemas de controle de versões Mercurial e outros programas.[4][24] O Plan 9 foi portado para o computador single-board Raspberry Pi.[25][26] O projeto Harvey tenta substituir o compilador personalizado do Plan 9 C pelo GCC, para alavancar ferramentas modernas de desenvolvimento como o GitHub e Coverity e acelerar o desenvolvimento.

Derivados e forks

O Inferno é um descendente do Plan 9, e compartilha muitos conceitos de design e até mesmo código fonte no kernel, particularmente em torno de dispositivos e o protocolo Styx/9P2000. Inferno compartilha com o Plan 9 a herança Unix dos Laboratórios Bell e a filosofia Unix. Muitas das ferramentas de linha de comando em Inferno foram ferramentas Plan 9 que foram traduzidas para Limbo.

  • 9atom[27] acrescenta a distribuição do Plan 9 com a adição de um kernel 386 PAE, um amd64 cpu e kernel terminal, nupas, suporte de hardware extra para pc, IL e fs Ken.
  • 9front[28] é um fork do Plan 9. Foi iniciado para remediar uma falta percebida de recursos dedicados no desenvolvimento dentro dos laboratórios de Bell, e acumulou vários reparos e melhorias.
  • 9legacy[29] é uma distribuição alternativa. Ele inclui um conjunto de patches com base na distribuição atual do Plan 9.
  • Akaros[30] é projetado para arquiteturas de multiplos-núcleos e sistemas em grande escala SMP.
  • Harvey OS[31] é um esforço para obter o código do Plan 9 trabalhando com gcc e clang.
  • JehanneOS[32] é um sistema operacional experimental derivado do Plan 9. Seu userland e módulos são derivados principalmente do 9front, seu sistema de construção do Harvey OS, e seu kernel é um fork do Plan9-9k 64-bit Plan9 kernel.

Rede e computação distribuída

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.[34] O protocolo é usado para referenciar e se comunicar com processos, aplicações e dados, incluindo tanto a interface de usuário quanto a rede.[35] Com o lançamento da 4ª edição, ele foi modificado e renomeado para 9P2000.[9]

Remove ads

Licença

A partir do lançamento da Quarta edição em abril de 2002,[9] o código fonte completo do Plan 9 da Bell Labs estava livremente disponível sob Lucent Public License 1.02, que é considerada licença de código aberto pela Open Source Initiative (OSI), software livre pela Free Software Foundation, e passa pela Debian Free Software Guidelines.[34] Em fevereiro de 2014, a Universidade da Califórnia em Berkeley, foi autorizada pelo atual titular do copyright do Plan 9 - Alcatel-Lucent - a liberar todo o software do Plan 9 previamente gerido pela Lucent Public License, versão 1.02, sob a GNU 2.[36]

Remove ads

Utilitários padrões Plan 9

  • 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

  • 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

Referências

Ligações externas

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads