# Inferno (sistema operacional)

O Inferno é um sistema operacional para criação e suporte a serviços distribuídos. O nome do sistema operacional e dos programas associados, bem como o da companhia Vita Nuova que o produziu, são inspirados pelo trabalho literário de Dante Alighieri, particularmente a Divina Comédia.
O Inferno roda no modo hospedeiro sobre vários sistemas operacionais diferentes, ou nativamente em uma variedade 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. A partir da quarta edição do Inferno, Styx é idêntico à mais nova versão do hallmark 9P protocol, 9P2000 do Plan 9.
As aplicações são escritas na linguagem de programação chamada Limbo, em que a representação binária é idêntica em todas as plataformas; e é executada usando a técnica de compilação just-in-time em uma máquina virtual.

## Princípios do design

O Inferno é um sistema operacional distribuído baseado em três princípios básicos:
* Recursos como arquivos: todos os recursos são representados como arquivos em um sistema de arquivos hierárquico.
* Namespaces: a visão da aplicação da rede é única, um namespace coerente que aparece como um sistema de arquivos hierárquico mas pode representar recursos separados (locais ou remotos) fisicamente.
* Protocolo padrão de comunicação: um protocolo padrão, chamado Styx (9P2000), é usado para acessar todos os recursos, tanto locais quanto remotos.

## Ancestralidade do Plan 9

O Inferno e o Plan 9 compartilham um ancestral comum, um sistema operacional de aproximadamente 1996. A existência do novo sistema "vazou" de Dennis Ritchie no começo de 1996, pouco menos de um ano depois do desenvolvimento do sistema; e mais tarde naquele ano foi apresentado publicamente como um competidor ao Java. Ao mesmo tempo, a AT&T (empresa pai da Bell Labs) licenciou "secretamente" tecnologia Java da Sun Microsystems. Eles compartilham os mesmos princípios de design, embora haja diferenças:
* O userland do Plan 9 roda código nativo, na maior parte em linguagem C com uma pequena quantidade de código em linguagem assembly, enquanto o userland do Inferno roda através de um interpretador de bytecode ou compilador just-in-time chamado Dis, na maior parte escrito em Limbo.
* O núcleo do Plan 9 é um núcleo híbrido, enquanto o núcleo do Inferno é um núcleo antigo do Plan 9 com os excessos desnecessários removidos e incluindo uma máquina virtual.
* O núcleo Plan 9 chaveia entre o modo usuário (userland) e o modo supervisor (núcleo), enquanto o Inferno nunca deixa o modo supervisor (núcleo), mas fornece proteção através do uso de uma máquina virtual.
Inferno é um tanto similar à Java Virtual Machine.

## Portas

O Inferno roda diretamente em hardware nativo e também como uma aplicação, provendo um sistema operacional virtual que roda em outras plataformas. Aplicações podem ser desenvolvidas e rodadas em todas as plataformas Inferno sem modificações ou recompilação.
Portes nativos incluem: x86, MIPS, XScale, ARM, PowerPC, SPARC.
Portas Hosted ou Virtual OS incluem: Microsoft Windows, Linux, FreeBSD, Plan 9, Mac OS X, Solaris, IRIX, UnixWare.
O Inferno pode também ser hospedado por um plugin para o Internet Explorer. De acordo com a Vita Nuova, plugins para outros navegadores estão a caminho.

## Licença

A quarta edição do Inferno 4th foi distribuída no princípio de 2005 como Software Livre sob uma mistura de licenças Open Source (GNU GPL, GNU LGPL, Lucent Public ou MIT License, dependendo do componente). Vita Nuova também oferece uma licença comercial convencional não copyleft para aqueles que não desejam licenciar suas modificações sobre o esquema padrão Free Software.

## Livros

O livro texto Inferno Programming with Limbo ISBN 0470843527 (Chichester: John Wiley & Sons, 2003), por Phillip Stanley-Marbell, descreve a 3ª edição do sistema operacional Inferno, embora seja focado na linguagem Limbo e sua interface com o sistema Inferno do que no próprio sistema operacional. O livro dispõe de pouca informação, por exemplo, sobre a versatilidade do command shell do sistema, que é compreensível, por ser um livro de referência para a linguagem de programação. Outro livro "The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System", por Martin Atkins, Charles Forsyth, Rob Pike e Howard Trickey, teve a intenção de prover um ponto de vista centrado no sistema operacional, mas infelizmente nunca foi completado/lançado por seus autores.