Plan9 Inferno

11
Chapter 6 Sistema Operacional Plan9/Inferno Jaedson Bruno de Oliveira Araújo, Jackson Soares, Emerson Max de Medeiros Silva, Fernanda Cardinaly de Araújo Silva Resumo O Plan9/Inferno são sistemas operacionais descendente do Unix. Apesar de não ser um variante Unix, O Plan9 e o Inferno possuem muitas características que exploram assim várias "simplificações" do modelo Unix original. O Plan9/Inferno utilizam recursos como arquivos, namespaces e um protocolo de comunicação que é responsável por se comunicar com processos, aplicações e dados, incluindo tanto a interface de usuário quanto a rede. Abstract The Plan9/Inferno are descended from Unix operating systems. Despite not being a Unix variant, the Plan9 and Inferno have so many features that explore various "simplifications" of the original Unix model. The Plan9/Inferno use resources such as files, namespaces, and a communication protocol that is responsible for communicating with processes, applications and data, including both user interface and the network. 6.1. Os Sistemas Operacionais Plan9 e Inferno. O Plan 9 é um sistema operacional descendente do Unix e desenvolvido pela Bell Laboratories. Apesar de não ser um variante Unix, O Plan 9 possui muitas características que exploram assim 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 Plan9 utiliza um coelho como sendo o seu mascote, e este tem o nome de Glenda (ver figura 1.1). Em sua configuração mais geral, o Plan 9 usa três tipos de componentes: terminais (pequenos computadores usados pelos usuários), servidores de arquivo que

Transcript of Plan9 Inferno

Page 1: Plan9 Inferno

Chapter

6

Sistema Operacional Plan9/Inferno

Jaedson Bruno de Oliveira Araújo, Jackson Soares, Emerson Max de

Medeiros Silva, Fernanda Cardinaly de Araújo Silva

Resumo

O Plan9/Inferno são sistemas operacionais descendente do Unix. Apesar de não ser um

variante Unix, O Plan9 e o Inferno possuem muitas características que exploram assim

várias "simplificações" do modelo Unix original. O Plan9/Inferno utilizam recursos

como arquivos, namespaces e um protocolo de comunicação que é responsável por se

comunicar com processos, aplicações e dados, incluindo tanto a interface de usuário

quanto a rede.

Abstract

The Plan9/Inferno are descended from Unix operating systems. Despite not being a Unix

variant, the Plan9 and Inferno have so many features that explore various "simplifications" of

the original Unix model. The Plan9/Inferno use resources such as files, namespaces, and a

communication protocol that is responsible for communicating with processes, applications

and data, including both user interface and the network.

6.1. Os Sistemas Operacionais Plan9 e Inferno.

O Plan 9 é um sistema operacional descendente do Unix e desenvolvido pela

Bell Laboratories. Apesar de não ser um variante Unix, O Plan 9 possui muitas

características que exploram assim 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 Plan9 utiliza um coelho como sendo o seu

mascote, e este tem o nome de Glenda (ver figura 1.1).

Em sua configuração mais geral, o Plan 9 usa três tipos de componentes:

terminais (pequenos computadores usados pelos usuários), servidores de arquivo que

Page 2: Plan9 Inferno

armazenam dados de maneira permanente, e outros servidores que proveem CPU’s mais

rápidas, autenticação de usuário e gateways para redes.

Figura 1.1. Glenda, mascote do Plan9

O desenvolvimento do Plan 9 ocorreu por volta de meados dos anos 80,

motivado pela forte tendência da computação em migrar dos grandes computadores

centralizados de tempo compartilhado para as redes de pequenas máquinas pessoais,

onde rodavam tipicamente estações de trabalho UNIX. Os usuários estavam cansados de

máquinas burocráticas, sobrecarregadas e de tempo compartilhado, deixando notória

assim a necessidade de trocá-las por sistemas baseados em computadores pessoais ou

estações de trabalho auto-mantidas interligadas em rede, mesmo que isto significasse

uma perda de poder de computação devido a esta conexão via rede. No entanto como os

microcomputadores tornavam-se cada vez mais rápidos e baratos, essa perda poderia ser

recuperada facilmente, e por essa razão este estilo de computação tornou-se bastante

popular, situação que ainda vigora nos dias atuais, desta forma, o Plan 9 veio com o

propósito de Construir um novo sistema operacional de tempo compartilhado fora das

estações de trabalho.

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 dialeto em C, o Plan9 possui ainda um ambiente funcional

instalável para x86, mas existem versões do Plan 9 rodado no Intel, MIPS, Alpha,

SPARC, PowerPC, ARM e outras arquiteturas.

Em sua arquitetura de desenvolvimento o Plan9 utiliza:

- Recursos com arquivos: Todos os recursos são representados como arquivos

em um sistema de arquivos hierárquico, onde se 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 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.

Page 3: Plan9 Inferno

- Namespaces: a visualização da rede pela aplicação é um simples e coerente

namespace que aparece como um sistema de arquivos hierárquico, mas representa

recursos separados fisicamente (local ou remotamente), 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 coleccionando vários objetos 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 objeto. Os

usuários pode facilmente criar "clones" de si mesmo, modificar esta cópia, e depois

apagá-la sem afetar nada dos recursos originais.

- Protocolo de comunicação padrão: um protocolo padrão, chamado 9P, é

usado para aceder a todos os recursos, tanto locais quanto remotos. O protocolo 9P e

sua implementação conectam objetos de rede nomeados e apresentam em uma interface

parecida com um sistema de arquivos. O protocolo 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.

O Inferno por sua vez, é uma evolução do Plan9, seu desenvolvimento deu-se

com o mesmo propósito de atuar em sistemas distribuídos, porém com o poder de fazê-

lo em uma variedade ainda maior de ambientes de redes do que era possível no plan9

como por exemplo, os telefones de suporte avançado, dispositivos de mão, caixas de TV

set-top ligado aos sistemas de cabo ou satélite, Internet e computadores de baixo custo.

Os ambientes mais visíveis do mundo atual envolvem TV a cabo, transmissão

direta via satélite, Internet e outras redes. Como o entretenimento, telecomunicações,

indústria e computação convergem e se interconectam, uma variedade de redes públicas

de dados está surgindo. Ao contrário do sistema de telefonia, que começou com

terminais padrão e sinalização, estas redes estão se desenvolvendo em um mundo de

terminais diversos, hardware de rede e protocolos. Só um sistema operacional bem

desenvolvido, pode isolar os vários provedores de conteúdo e serviços do transporte

igualmente variados e plataformas de apresentação. Inferno é um sistema operacional de

rede para esse novo mundo.

O Inferno roda no modo hospedeiro sobre vários sistemas operacionais

diferentes, ou nativamente em um range de arquiteturas de hardware. Em cada

configuração o sistema operacional apresenta as mesmas interfaces padrões para suas

aplicações. Um protocolo chamado Styx é aplicado uniformemente para acessar os

recursos tanto os locais como os remotos.

O diferencial do Inferno esta presente em algumas características próprias do

sistema:

- Maior portabilidade entre processadores: atualmente funciona em Intel, Sparc,

MIPS, ARM, HP-PA, e arquiteturas PowerPC e é facilmente portável para outros;

Page 4: Plan9 Inferno

- Maior portabilidade em ambientes diversos: ele funciona como um sistema

autônomo de funcionamento nos terminais de pequeno porte, e também como um

aplicativo de usuário no Windows NT, Windows 95, Unix (Irix, Solaris, FreeBSD,

Linux, AIX, HP / UX) e Plan 9. Com a mesma interface para todos os ambientes;

- Requisitos mínimos de hardware: ele roda aplicações úteis stand-alone em

máquinas com apenas 1 MB de memória, e não requer hardware de mapeamento de

memória;

- adaptabilidade dinâmica: os pedidos podem, dependendo do hardware ou

outros recursos disponíveis, a carga dos módulos do programa diferente para executar

uma função específica. Por exemplo, um aplicativo de player de vídeo pode usar

qualquer um dos vários módulos do decodificador diferente.

6.2. Histórico

Em 1980 foi criado o Sistema operacional Plan 9 . Ele não é variante Unix, mas é muito

parecido. Explorando 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 foi feita em 1993, 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.

Baseado no Plan 9 surgiu o sistema operacional Inferno em maio de 1996 com a versão

Inferno Venture Formed. O sistema foi desenvolvido pelo Computing Sciences

Research Center, do Bell Labs, que é o órgão de pesquisa e desenvolvimento da Lucent

Technologies (a mesma que criou o sistema operacional UNIX); tendo como sede a

cidade de New Jersey (U.S.A). A equipe responsável pelo desenvolvimento do Inferno

era formada por: Sean M. Dorward, Rob Pike (quem nomeou o sistema e seus

componentes, baseando-se na Divina Comédia, de Dante Alighieri), David Leo

Presotto, Dennis M. Ritchie (um dos criadores do UNIX), Howard W. Trickey, e Philip

Winterbottom. Este sistema tem como missão prover os elementos de software

necessários para construir um sistema com serviços operacionais de rede confiáveis.

O Inferno é um sistema operacional e um ambiente de execução, para redes; pequeno,

flexível, seguro e portável, que facilita a criação e distribuição de serviços nos novos e

emergentes ambientes de rede, tais como: CATV (tv a cabo), sistemas de radiodifusão

por satélite, assim como: a Internet, usos para entretenimento: aplicações para "pay-per-

view", e demais recursos das telecomunicações e informática, como telefonia celular,

webfone, aplicações com palm-tops, dentre outras. É um sistema para a era centrada

nas redes.

Page 5: Plan9 Inferno

Nos dias de hoje , os direitos do 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 e se encontra em sua quarta

versão.

6.3. Gerenciamentos de Processos/Threads

6.3.1. Gerenciamento de Processos no Plan 9:

Processos em Memória Compartilhada: O programa é organizado em um

ou mais procs, que são compartilhados na memória de processos do

sistema operacional que pode ser agendado antecipadamente;

O Plan9 Thread Library torna a programação concorrente: Dá suporte a

multitarefa.

A biblioteca implementa procs, segmentos, canais e eclusas: Um canal é

um mecanismo de passagem de mensagem: um processo envia um valor

em um canal e outro recebe. O primeiro processo de enviar ou receber

blocos até que outro processo faz uma chamada correspondente. Eles são

aplicados na memória compartilhada. Processos estão programados de

forma independente (portanto, pode executar simultaneamente em um

multiprocessador) e compartilhar a memória. Cada processo contém um

ou mais segmentos que se comportam como co-rotinas (ou seja, eles são

programados pelo processo).

Métodos de escalonamento: FIFO , Nível de Prioridades.

6.3.2. Gerenciamento de Processos no Inferno:

Existe apenas a definição de Procs: No Plan9 como existia definição e

uso de segmentos e tarefas como maneira de agrupar os Procs, no Inferno

a intenção é trabalhar com apenas uma unidade de informação e dados

com o intuito de deixar o tráfego de informações mais leve.

Procura-se evitar o paralelismo;

Não existe o bloqueio Explicito de processos: a execulsão de um Proc, só

é bloqueada de forma implícita no sistema, basicamente quando aquele

proc não esta respondendo ou contém erros. Cada proc é execultado por

vez.

O sistema de escalonamento é igual ao Plan9;

Page 6: Plan9 Inferno

O programador deve especificar o dono especifico para qualquer peça de

dados: Através deste método de gerenciamento de processos, o sistema

pode assim identificar qual processo possui maior prioridade, e de onde

ele se origina na troca de informações.

6.4. Gerenciamento de memória

6.4.1. Gerenciamento de memória Plan 9

Plan 9 utiliza memória com segmentação pagina, podendo gerenciar de 8MB a 3840MB

de memória, onde pode ser reservado até 256MB para o kernel. Abaixo desse espaço

reservado para o kernel, tem mais 256MB, que são divididos entre a tabela de página

virtual, o kmap e kunmap que realiza o mapeamento temporario por processo e para uso

geral dos processos e do processador, eles

usam respectivamente 4MB, 4MB e 248MB.

O algoritmo de seleção de vitima usado é o LRU, onde é selecionando a página que está

a mais tempo na memória para ser substituída, deste modo o gerenciamento de memória

no Plan9 tem um objetivo bem definido que é selecionar aquela página que foi a última

a ser referenciada e assim ocorrerá menos pages-faults.

Algo interessante também no gerenciamento de memória do Plan9 é que das 18 mil linhas de

código que compõem o Plano 9, cerca de 5000 linhas são exclusivamente para executar o

gerenciamento de memória, gerenciamento de processo, interface de hardware e sistema. O

resto é para os 17 diferentes sistemas de arquivos de execução de dispositivos, redes, controle

de processos, etc. Desde que a maioria dos sistemas de arquivos sejam completamente

independentes,

a complexidade do código do kernel é ainda menor. Na verdade, o kernel é responsável pelo

gerenciamento de memória do Plan9 e mesmo com todos os sistemas de arquivo incluído

ainda é inferior a metade do tamanho de sua micro-kernel.

6.4.2. Gerenciamento de memória Inferno

No inferno a memória é divida em várias regiões separadas para a execução de threads,

o segmento de código armazena um fluxo decodificado de instruções de máquina

virtual, que será traduzido pela maquina virtual para a arquitetura do computador.

Um thread executando um modulo tem acesso a duas regiões da memória de dados:

Um apontador de módulo que define uma região global de armazenamento para

um módulo específico;

Um apontador de quadro que define o registro atual de ativação do frame para a

Page 7: Plan9 Inferno

thread.

O endereçamento da memoria é em bytes e tipos de dados maiores que um byte é

armazenado em endereços contíguos. E somente uma instancia do “Dis” (Máquina

Virtual utilizada pelo Inferno) controla a pilha por vez.

O inferno possui também um sistema de coleta de lixo na máquina virtual e que é usado

dois algoritmos: um de contagem de referencias, que busca por variáveis que não estão

sendo mais referenciadas e as marcam para ser limpa e a de estrutura de dados cíclicas,

que verifica quando ocorre uma referência cíclica e a marca para limpeza.

Internamente, o kernel usa esse mecanismo de alocação de bloco através de chamadas

que operam como o malloc() e free(). Programas de usuário escrito em Limbo não aloca

diretamente memória como processos do UNIX fazem usando o brk(), chamada de

sistema, ou o malloc() chamada de biblioteca. Por conseguinte, O Inferno não provê

nenhuma forma de alocação para chamda de sistemas de processos usuário. Há, no

entanto, uma série de construções que fazem Limbo implicitamente alocar memória.

6.5. Sistemas de Arquivos

Podemos entender um recurso como sendo uma conveniência necessária para se realizar

um trabalho.

Todos os recursos do Inferno, local e remoto, são representados como um conjunto de

arquivos dinâmicos dentro de um sistema de arquivos hierárquico. Esses arquivos são

usados para representar, entre outras coisas, dispositivos de armazenamento, conexões

de redes, serviços de rede e até mesmo os processos.”Processos podem ser entendidos

inicialmente como um programa em execução.”(BERENGER MACHADO, Francis;

MAIA, Luiz. Arquitetura de Sistemas Operacionais. 3º Edição. Rio de Janeiro: PTC,

2004.65p.).

O Inferno eleva ao máximo o conceito de recursos como arquivos. Um aplicativo pode

acessar cada recurso através de operações de manipulações de recursos, como open,

close, read e write.

As vantagens do uso de recursos como arquivos são:

Os sistemas de arquivos têm interfaces simples e bem compreendidas. Através

de operações simples é possível acessar os recursos e funcionalidades, como

abrir, ler e escrever;

A dependência dos sistemas de arquivos reduz a quantidade de código de

interface e mantém o sistema Inferno pequeno, confiável e altamente portátil

Convenções de nomenclatura para os arquivos são bem conhecidos, uniforme e

de fácil compreensão;

Page 8: Plan9 Inferno

Em relação à segurança, os direitos de acesso e permissões para os arquivos são

bem simples, mas pode ser usado para garantir a vários níveis de segurança.

É possível associar a um dado recurso a mais de um arquivo. Quando isso é feito cria-se

um diretório, colocando os arquivos relacionados ao recurso dentro desse diretório.

Tipicamente, cada diretório poderia ter dois arquivos, um para o controle de estados do

recurso e outro para operações de entrada e saída relacionadas ao recurso. Exemplo, o

diretório /dev/tcp representa o recurso relacionado ao protocolo tcp/ip. Nesse diretório

podemos encontrar dois arquivos, data e ctl, data é utilizado para operações entrada e

saída e ctl é utilizado para o controle de estado do recurso.

Localização dos principais recursos do sistema operacional inferno:

/dev/tcp, /dev/udp: Interface de rede

/prog: informações sobre processos.

/dev/user, /dev/time: Informações gerais.

6.5.1. Espaco de Nomes (Namespaces)

O espaço de nomes serve para manter a representação uniforme dos recursos, formando

uma representação hierárquica semelhante ao do sistema Unix.

Cada conjunto de recursos é representado como uma hierarquia de arquivos e é

acessível através de operações de acesso de arquivos padrão. Os vários recursos e

serviços que estão sendo usados por um processo são combinados em uma única

hierarquia enraizada de nomes de arquivos, chamado de namespace, ou espaço de

nomes. Os recursos acessíveis dentro de um espaço individual podem ser localizados

em um único cliente ou em vários servidores em toda a rede.

Uma das principais vantagens deste sistema namespace (espaço de nomes) é que um

aplicativo pode usar recursos de modo totalmente transparente. Depois que os arquivos

dinâmicos presentes pelo recurso são montados dentro do espaço visível da aplicação,

pode acessá-los sem saber se o recurso é local ou remoto.

Por exemplo, o depurador gráfico dinâmico lê os arquivos no diretório /prog para

acessar informações sobre os processos do sistema atual. No entanto, se o usuário

desejasse parar um processo em uma máquina remota, tudo que seria necessário é

importar o diretório /prog dessa máquina.

A localização do espaço de nomes é transparente, não importando se é local ou remoto.

Isso quer dizer que as aplicações enxergar o espaço de nomes da mesma maneira. Isso é

feito com o uso de um protocolo chamado styx.

6.6. Entrada e Saída

Os dispositivos de entrada e saída tanto no sistema operacional Inferno quanto no Plan9

são totalmente descendentes do Unix, mas, não é uma variante. Desta forma, os drivers

Page 9: Plan9 Inferno

de dispositivos é representado como um sistema de arquivos residente no Kernel e todos

os dispositivos de entrada e saída são classificados como sendo de bloco (disco, etc.) ou

de caractere (impressora, modem, etc.) e são associados a arquivos mantidos no

diretório /dev (diretório que é herdado do sistema Unix). O acesso aos dispositivos de

E/S como terminais discos, impressoras e a própria rede, é feito através de arquivos

especiais, Cada dispositivo está associado a um ou mais arquivos especiais, localizados

no diretório/dev.

Os sistemas operacionais Plan9 e Inferno tratam os dispositivos como arquivos de

sistemas, e com isso possui muitas vantagens, entre elas podemos destacar:

Evita problemas de ordem de byte

Garante uma representação uniforme de dispositivos no mesmo computador ou

até mesmo dispositivos que são acessados remotamente.

Outra característica herdada do Unix e que está presente no Plan9 e no Inferno é que os

dispositivos de hardware são identificados por seu tipo (bloco ou caracteres) e um

número de dispositivo onde é de fundamental importância, pois existe uma tabela de

escolha para dispositivos do tipo bloco e uma tabela de escolha para dispositivos do tipo

caractere, que necessita deste número do dispositivo para decidir qual dispositivo deve

ser usado.

Existem dois tipos de número de dispositivo: O número de dispositivo principal e o

número do dispositivo secundário.

O número do dispositivo principal é utilizado como um índice na tabela de

escolha para localizar o drive de dispositivo correto.

O número do dispositivo secundário é encaminhado para o driver de

dispositivo e utilizado para selecionar a(as) subunidade(s) correta(s). ( Por

exemplo selecionar a partição correta de um sistema de arquivo mesmo que

o disco esteja dividido em várias partições)

Existe um tipo de dispositivo denominado pseudo-dispositivo (pseudo-devices) que não

obedece a nenhum periférico físico. Ele é apenas uma abstração empregada para

adicionar funcionalidades ao SO, explorando a interface padronizada já existente para o

tratamento de dispositivos. É assim, por exemplo, que o sistema UNIX permite o acesso

à memória principal como se fosse um disco (ramdisk), ou ainda o emprego do

dispositivo nulo (/dev/null) para descartar dados.

6.7. Curiosidades sobre o Plan9 e o Inferno

O Plan9 e o Inferno tem em comum muitas coisas, inclusive eles são descendentes do

mesmo sistema operacional o Unix, e este por sua vez quem o produziu foi a Bell

Page 10: Plan9 Inferno

Laboratories, e esta empresa é a responsável por inúmeras façanhas entre elas podemos

destacar:

1969: Sistema operativo Unix é criado por Dennis Ritchie e Ken Thompson

1983: A linguagem de programação C++ desenvolvida por Bjarne Stroustrup

1998: Primeira combinação de voz e dados sobre uma rede IP

2000: Mapa de alta resolução do cosmos

A origem do nome Plan9 deve-se a um filme de ficção cientifica filmado em 1956 em

algumas semanas, e a fama deste filme se deu 2 anos após a sua estréia por ser

considerado o pior filme de todos os tempos.

O sistema operacional Inferno possui um protocolo de comunicação chamado “Styx”

sendo ele o único protocolo que o sistema operacional possui e responsável por

representar e acessar os recursos, a palavra Styx é originaria da mitologia Grega onde é

um rio que forma a fronteira entre a terra e o submundo.

Outra curiosidade interessante é sobre o nome da linguagem de programação que é

utilizada para a criação dos programas para o SO Inferno, o nome da linguagem de

programação é Limbo. Limbo significa, segundo a teologia da Igreja Católica Apostólica

Romana, um lugar fora dos limites do Céu, onde se vive a plena felicidade natural, mas

privado da visão beatífica de Deus e por isso, privado também da felicidade suprema e

eterna.

Tanto o nome do sistema operacional Inferno é quanto a Vita Nuova são inspiradas pelo

trabalho literário de Dante Alighieri (1º de junho de 1265 — Ravenna, 13 ou 14 de

setembro de 1321), foi um escritor, poeta e político italiano e até hoje é considerado

como il sommo poeta ("o sumo poeta"), o maior poeta italiano, particularmente a Divina

Comédia.

Referências

1. Sistema Operacional Inferno<http://bsbjoao.net/wpcontent/uploads/2011/04/SISTEMA_

OPERACIONAL_INFERNO.doc> Acessado em 06 de Junho de 2011.

2. NISHIHARA, M. Ricardo.; WAKU, Evandro.; SOUZA de, Pedro.; Análise e Descrição do Sistema Plan9 <ftp://ftp.dca.fee.unicamp.br/pub/docs/marco/disci plinas/ia367_98_2/monografias/plan9.pdf.gz> Acessado em 08 de Junho de 2011.

3. SANTOS, dos A. B. Daniel.; <http://www.ic.unicamp.br/~islene/2s2007-

mo806/slides/Plan9.pdf> Acessado em 08 de Junho de 2011.

4. WIKIPEDIA, 9P. Disponivel em: <http://pt.wikipedia.org/wiki/9P> Acessado em 07 de Junho

de 2011.

5. WIKIPEDIA, Plan9 Sistema Operacional. Disponivel em:

<http://pt.wikipedia.org/wiki/Plan_9> Acessado em 05 de Junho de 2011.

6. WIKIPEDIA, Vita Nuova. Disponivel em: <http://pt.wikipedia.org/wiki/Vita_Nuova>

Acessado em 03 de Junho de 2011.

Page 11: Plan9 Inferno

7. Principles of operating systems and applications - Google Livros

8. Inferno Official website. Disponivel em: <http://www.vitanuova.com/inferno/index.html>

Acessado em 07 de Junho de 2011.

9. <http://www.sabereletronica.com.br/secoes/leitura/274> Acessado em 03 de Junho de

2011.

10. Plan 9 from Bell Labs’s Official website. Disponível em: <http://plan9.bell-

labs.com/sources/plan9/sys/src/9/> Acessado em 08 de Junho de 2011.

11. Time Line of Bell Labs. Disponivel em: <http://www.alcatel-lucent.com/wps/portal/BellLabs/History/Timeline> Acessado em 08 de Junho 2011.