Privacy Policy Cookie Policy Terms and Conditions Plan 9 - Wikipédia

Plan 9

Origem: Wikipédia, a enciclopédia livre.

 Plan 9 pela Bell Labs

Desenvolvedor: Bell Labs
Família do SO: Sucessor do Unix
Modelo do desenvolvimento: Open source
Última versão: Quarta Edição
Data da última versão: atualizações diárias
Kernel: Monolítico com espaço de usuário sistema de arquivos
Interface: {{{ui}}}
Interface: {{{iu}}}
Licença: LPL
Estado do desenvolvimento: Corrente
Website: plan9.bell-labs.com

O Plan 9 é um sistema operacional descendente do Unix e desenvolvido pela Bell Laboratories. Ele não é uma 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 shrink-wrapped OU encolhe-envolve em 1995. O Bell perdeu o interesse comercial no projeto apos a década de 90, e distribuiu um 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 arquiteturas. O sistema por si é escrito em um dialeto do ISO/ANSI C; muitas applicações foram anteriormente escritas em uma linguagem chamada Alef, que tiveram que ser reescritos no mesmo dialeto 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 scifi chamado Plan 9 from Outer Space.

Índice

[editar] Conceitos do design

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

  • Recursos como 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 acessar todos os recursos, tanto locais quanto remotos

[editar] Sistemas de arquivos, arquivos, e nomes

O Plan 9 extende 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 diretamente 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 acessados 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 objetos do "mundo real". De fato qualquer usuário pode criar um ambiente personalizado colecionando vários objetos em seu "namespace". O Unix tem um conceito similar em que o usuário ganha privilégios ao serem copiados de outro usuário, mas no Plan 9 isto é estendido para qualquer objeto. Os usuários pode facilmente criar "clones" de si mesmo, modificar esta cópia, e depois deleta-la sem afetar nada dos recursos originais.

[editar] União de diretórios

O Plan 9 também introduziu a idéia de união de diretórios. São diretórios que combinam recursos entre mídias diferentes ou através de uma rede juntando-se a outros diretórios transparentemente. Por exemplo, o diretó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 transparentemente. No Unix, mapear diretó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.

[editar] /proc

Para ilustrar como estas características funcionam simultaneamente para produzir um poderoso conjunto, consideremos o interessante diretório /proc, onde todos os processos que estão sendo executados são listados. Processos são considerados objetos no Plan 9, como tudo o mais, então faz sentido listá-los em um diretó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 diretórios/nomes hierárquicos familiar à maioria dos usuários de computador. Um usuário pode "construir" um sistema colecionando diretó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.

[editar] 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 acessados 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 transparentemente 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, incluíndo tanto a interface de usuário quanto a rede. Com o lançamento da 4ª edição, ele foi modificado e renomeado para 9P2000.

[editar] Licença

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

[editar] Veja Também

[editar] 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
  • 8½ - o velho sistema de janelas do Plan 9
  • Fossil and Venti - the new archival file system and permanent data store

[editar] Implementation artifacts

  • 9P - a filesystem protocol
  • rendezvous - um mecanismo básico de sincronização
  • Brazil - what became the Fourth Edition of Plan 9

[editar] Ligações externas

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu