Saltar para o conteúdo

Plan 9 from Bell Labs

Origem: Wikipédia, a enciclopédia livre.
Plan 9 from Bell Labs
Versão do sistema operativo Sucessor doUnix
Captura de tela
Plan 9 from Bell Labs
Instalação do Plan 9
Produção Bell Labs
Linguagem C
Modelo Open source
Lançamento 1992 (universidades) /1995 (público em geral)
Versão estável Quarta Edição
Método deatualização replica
Arquitetura(s) x86/Vx32,x86-64,MIPS,DEC Alpha,SPARC,PowerPC,ARM
Núcleo Núcleo Híbrido
Interface rio/rc
Licença Licença dupla (GNU GPLv2andLucent Public License(com poucas pequenas exceções[1]))
Página oficial 9p.io/plan9/
Estado de desenvolvimento
Corrente

OPlan 9é umsistema operacionaldescendente doUnixe desenvolvido pelaBell 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ãoencolhe-envolveem 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 ocódigo fontedisponível) em 2000, e finalmente sobre uma nova licençaopen sourceem 2002. Esta é a quarta, e atual, edição do sistema.

Os direitos para um produto derivado,Inferno,são de propriedade de uma companhiabritânica,Vita Nuova.O Inferno compartilha muitas das semelhanças de conceitos de design do Plan 9, mas usa uma novalinguagem de programaçãode aplicativos, aLimbo,que vem acompanhando de umamáquina virtual,Dis. O Inferno é vendido como umsistema operacional embarcadoopen source.

Um ambiente funcional instalável existe parax86,mas existem versões do Plan 9 rodado noIntel,MIPS,Alpha,SPARC,PowerPC,ARMe outras arquitecturas. O sistema por si é escrito em um dialeto doISO/ANSIC;muitas aplicações foram anteriormente escritas em uma linguagem chamadaAlef,que tiveram que ser reescritos no mesmo dialecto em C. Ele pode importar programasPOSIXe pode emular oBerkeley socket interface.Ele tem um suporte completo aoUTF-8,e umsistema de janelaschamado "Rio".

O nome é uma referência ao filme cult deficção científicachamadoPlan 9 from Outer SpacedeEd Wood,feito em 1959.[2]Além disso, Glenda, the Plan 9 Bunny, é presumivelmente uma referência ao filmeGlen or Glenda.O sistema continua a ser utilizado e desenvolvido por pesquisadores de sistemas operacionais e hobistas.[3][4]

O Plan 9 da Bell Labs foi desenvolvido originalmente, a partir de meados da década de 1980, por membros do Centro de Pesquisas emCiência da Computaçãoda Bell Labs, o mesmo grupo que originalmente desenvolveuUnixeC.[5]A equipe do Plan 9 foi inicialmente liderada porRob Pike,Ken Thompson,Dave Presotto e Phil Winterbottom, com o apoio deDennis Ritchiecomo 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, incluindoBrian Kernighan,Tom Duff,Douglas McIlroy,Bjarne StroustrupeBruce 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 editoraHarcourt Brace.Com licenças de origem que custam US $ 350, a AT&T segmentou o mercado desistemas embarcadosem 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 doInferno,destinado a ser um rival àplataforma JavadaSun 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 decódigo aberto.Uma quarto lançamento sob uma licença nova desoftware livreocorreu 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 deimagem ISO.Bell Labs hospedou o desenvolvimento.[10]A árvore de origem de desenvolvimento é acessível através dos protocolos 9P eHTTPe é 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]

Data Versão Comentário
1992 Plan 9 1st edition Distribuída pela Bell Labs a universidades
1995 Plan 9 2nd edition Distribuída pela Bell Labs para fins não-comerciais[13]
2000 Plan 9 3rd ed. (Brazil) Distribuída pela Lucent Technologies sobre uma licença open source
2002 Plan 9 4th edition Distribuída pela Lucent Technologies sobre uma licença open source

Conceitos do design

[editar|editar código-fonte]

Os projetistas do Plan 9 estavam interessados em objetivos similares aos domicronú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 comoarquivosem umsistema de arquivoshierárquico;
  • Namespaces:a visualização da rede pela aplicação é um simples, coerentenamespaceque 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, chamado9P,é 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 sistemaURIdainternet.Em versões anteriores do Unix, dispositivos comoimpressoraseram 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 ideia deuniã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/binde outro computador pode ser ligado com o seu próprio/bin,e então este diretório irá compartilhar ambos os binários locaiseos 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 union4.4BSDe doLinux,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".

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 olspara 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çãode usuários, egatewayde 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.

O Plan 9 não tem chamadas de sistema especializadas ouioctlspara 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/tcpe/net/udpsão usados ​​como uma interface para seus respectivos protocolos.[16]

Para reduzir a complexidade do gerenciamento decodificações de caracteres,o Plan 9 usa oUnicodeem todo o sistema. A implementação inicial do Unicode foiISO 10646.Ken Thompsoninventou o UTF-8, que se tornou a codificaçãonativano Plano 9. O sistema inteiro foi convertido para uso geral em 1992.[17]O UTF-8 preserva a compatibilidade com as cadeias terminadasnulas tradicionais,permitindo um processamento de informações mais confiável e o encadeamento string de dados multilíngue comUnix pipesentre 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

[editar|editar código-fonte]

Embora interessante por conta própria, os conceitos de design do Plan 9 são mais úteis quando combinados. Por exemplo, para implementar um servidornetwork address translation(NAT), um diretório de união pode ser criado, sobrepondo a árvore de diretórios doroteador/netcom seu próprio/net.Da mesma forma, umarede privada virtual(VPN) pode ser implementada por sobreposição em um diretório union/nethierarquia de umgatewayremoto, usando 9P protegido através da internet pública. Um diretório de union com a hierarquia /net e os filtros podem ser usados ​​parasandbox,um aplicativo não confiável ou para implementar umfirewall.Da mesma forma, uma rede de computação distribuída pode ser composta com um diretório union de hierarquias/procde 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]

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 dorfork,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 operacionalGNUque cercam o kernel do Linux com os programas do sistema operacional Plan 9.[20][21]Ogestor de janelas9wm foi inspirado no,o mais antigo sistema de janelas do Plan 9;[22]wmiitambém é fortemente influenciado pelo Plan 9.[23] Em pesquisas na ciência da computação, o Plan 9 tem sido utilizado como uma plataforma decomputação em gradee como um veículo para a investigação emcomputação ubíquasemmiddleware.

Vários projetos trabalham para estender o Plan 9, incluindo 9atom e 9front. Essesforksaumentam o Plan 9 com drivers de hardware e software adicionais, incluindo uma versão melhorada do sistema dee-mailUpas, o compiladorgo,o suporte a sistemas de controle de versõesMercuriale outros programas.[4][24]O Plan 9 foiportadopara o computador single-boardRaspberry Pi.[25][26]O projeto Harvey tenta substituir ocompiladorpersonalizado do Plan 9 C peloGCC,para alavancar ferramentas modernas de desenvolvimento como oGitHube Coverity e acelerar o desenvolvimento.

Derivados e forks

[editar|editar código-fonte]

OInfernoé 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 afilosofia 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 386PAE,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 doPlan9-9k 64-bit Plan9 kernel.

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 como9P.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 abytes(em vez de ser orientado a blocos) que pode "virtualizar" qualquer objeto, não somente aqueles apresentados por um servidorNFSnuma 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]

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 sobLucent Public License1.02, que é considerada licença decódigo abertopelaOpen Source Initiative(OSI),software livrepelaFree Software Foundation,e passa pelaDebian Free Software Guidelines.[34] Em fevereiro de 2014, aUniversidade da Califórnia em Berkeley,foi autorizada pelo atualtitular do copyrightdo Plan 9 -Alcatel-Lucent- a liberar todo o software do Plan 9 previamente gerido pela Lucent Public License, versão 1.02, sob aGNU2.[36]

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
  • FossileVenti- 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
  1. http://akaros.cs.berkeley.edu/files/Plan9License
  2. Raymond, Eric S.(17 de setembro de 2003).«Plan 9: The Way the Future Was».The_Art_of_Unix_Programming.[S.l.]:Addison-Wesley.ISBN0-13-142901-9.Consultado em 7 de maio de 2007
  3. Robertson, James (16 de julho de 2011).«Plan 9 Forked, Continues as 9front».OSNews.Consultado em 31 de dezembro de 2011
  4. ab«9atom».Consultado em 11 de novembro de 2011
  5. «From the inventors of UNIX system comes Plan 9 from Bell Labs»(Nota de imprensa). Lucent Technologies. 18 de julho de 1995[ligação inativa]
  6. McIlroy, Doug (março de 1995).«Preface».Bell Labs2nd ed. Lucent Technologies.Consultado em 26 de fevereiro de 2016
  7. Lee, Yvonne L. (24 de Julho de 1995).«AT&T Bell Labs ships Plan 9 OS for embedded systems».InfoWorld
  8. Pontin, Jason (19 de Fevereiro de 1996).«AT&T reveals plans for Java competitor».InfoWorld.p. 3
  9. abcLoli-Queru, Eugenia (29 de abril de 2002).«Bell Labs Releases New Version of Plan 9».OSNews.Consultado em 31 de dezembro de 2011
  10. «How to contribute».Bell Labs.Lucent Technologies.Consultado em 30 de novembro de 2011
  11. «Staying up to date».Bell Labs.Lucent Technologies.Consultado em 27 de abril de 2006.Arquivado dooriginalem 24 de junho de 2007
  12. «Plan 9 — Additional Software».2009.Consultado em 6 de março de 2016
  13. «Announcement of the first release to general public».9 fans. 16 de julho de 1995.Consultado em 21 de dezembro de 2016.Arquivado dooriginalem 6 de julho de 2008
  14. Hancock, Brian (2003). «Reinventing Unix: an introduction to the Plan 9 operating system». MCB UP.Library Hi Tech.21(4): 471–76.doi:10.1108/07378830310509772
  15. Ballesteros, Francisco J. (28 de setembro de 2007).«Introduction to OS abstractions using Plan 9 from Bell Labs»(pdf).Universidad Rey Juan Carlos.Cópia arquivada(PDF)em 22 de setembro de 2010
  16. abcPike, R.;Presotto, D.; Dorward, S.; Flandrena, B.;Thompson, K.;Trickey, H.; Winterbottom, P.«Plan 9 from Bell Labs».Bell Labs.Lucent Technologies.Consultado em 26 de fevereiro de 2016
  17. Pike, Rob(30 de abril de 2003).«UTF-8 History».Consultado em 27 de abril de 2006
  18. Lunde, Ken (janeiro de 1999).CJKV information processing.[S.l.]:O'Reilly Media.p. 466.ISBN978-1-56592-224-2.Consultado em 23 de dezembro de 2011
  19. Hudson, Andrew (19 de julho de 2006).«Investigating the Plan 9 Operating System».OSNews.Consultado em 31 de dezembro de 2011
  20. «Glendix: Bringing the beauty of Plan 9 to Linux».Consultado em 1 de dezembro de 2011
  21. «Plan 9 From Gentoo: Plan 9 Meets Gentoo».Gentoo Linux.Consultado em 1 de dezembro de 2011.Arquivado dooriginalem 26 de abril de 2012
  22. «The 9wm Window Manager».9wm.Consultado em 2 de janeiro de 2012.9wm is an X window manager which attempts to emulate the Plan 9 window manager 8-1/2 as far as possible within the constraints imposed by X.
  23. «window manager improved 2».suckless.org.Consultado em 2 de janeiro de 2012.Arquivado dooriginalem 31 de dezembro de 2011.[wmii] has a 9p filesystem interface and supports classic and tiling (acme-like) window management.
  24. «plan9front – the front fell off».Consultado em 1 de dezembro de 2011
  25. Hayward, David (9 de maio de 2013).«Raspberry Pi operating systems: 5 reviewed and rated».TechRadar.Consultado em 20 de abril de 2014.Arquivado dooriginalem 7 de Junho de 2013
  26. «How to install Plan 9 on a Raspberry Pi».eLinux.Consultado em 16 de novembro de 2014
  27. «9atom»
  28. «9FRONT.ORG THE PLAN FELL OFF»
  29. «9legacy»
  30. http://akaros.cs.berkeley.edu
  31. «Harvey OS»
  32. «JehanneOS»
  33. «NIX»
  34. abPereira, Uriel M. (2006).The Unix Spirit set Free: Plan 9 from Bell Labs(AVI).FOSDEM.Consultado em 2 de dezembro de 2011.Resumo divulgativo(PDF)
  35. Minnich, Ron (2005).«Why Plan 9 is not dead yet And What we can learn from it»(PDF).Laboratório Nacional de Los Alamos.Consultado em 26 de fevereiro de 2016.Arquivado dooriginal(PDF)em 25 de fevereiro de 2016
  36. Sharwood, Simon (14 de fevereiro de 2014).«Plan 9 moves out from Lucent licence space».The Register.Consultado em 20 de abril de 2014

Ligações externas

[editar|editar código-fonte]