Inferno es un sistema operativo distribuido iniciado en Bell Labs y ahora desarrollado y mantenido por Vita Nuova Holdings como software libre bajo la Licencia MIT . [2] [3] Inferno se basó en la experiencia adquirida con Plan 9 de Bell Labs , y la investigación posterior de Bell Labs en sistemas operativos, lenguajes, compiladores sobre la marcha, gráficos, seguridad, redes y portabilidad. El nombre del sistema operativo, muchos de sus programas asociados y el de la empresa actual, se inspiraron en la Divina Comedia de Dante Alighieri . En italiano, Inferno significa " infierno ", del cual hay nueve círculos en la Divina Comedia de Dante .
Inferno fue creado en 1995 por miembros de la división de Investigación en Ciencias de la Computación de Bell Labs para llevar las ideas derivadas de su sistema operativo anterior, Plan 9 de Bell Labs , a una gama más amplia de dispositivos y redes. Inferno es un sistema operativo distribuido basado en tres principios básicos:
Para manejar la diversidad de entornos de red en los que se pretendía utilizar, los diseñadores decidieron que una máquina virtual (VM) era un componente necesario del sistema. Esta es la misma conclusión del proyecto Oak que se convirtió en Java , pero a la que se llegó de forma independiente. La máquina virtual Dis es una máquina de registros destinada a coincidir estrechamente con la arquitectura en la que se ejecuta, en contraste con la máquina de pila de la máquina virtual Java . Una ventaja de este enfoque es la relativa simplicidad de crear un compilador justo a tiempo para nuevas arquitecturas.
La máquina virtual proporciona una gestión de memoria diseñada para ser eficiente en dispositivos con tan solo 1 MiB de memoria y sin hardware de mapeo de memoria. Su recolector de elementos no utilizados es un híbrido entre un conteo de referencias y un recolector de coloración en tiempo real que reúne datos cíclicos. [11]
El núcleo Inferno contiene la máquina virtual, el compilador sobre la marcha, el programador, los dispositivos, las pilas de protocolos y el evaluador de espacios de nombres para el espacio de nombres de archivo de cada proceso, así como la raíz de la jerarquía del sistema de archivos. El núcleo también incluye algunos módulos integrados que proporcionan interfaces del sistema operativo virtual, como llamadas al sistema, gráficos, seguridad y módulos matemáticos.
El artículo de Bell Labs Technical Journal que presenta Inferno enumera varias dimensiones de portabilidad y versatilidad proporcionadas por el sistema operativo: [12]
Estas opciones de diseño se orientaron a proporcionar interfaces estándar que liberaran a los proveedores de contenidos y servicios de la preocupación por los detalles de los diversos hardware, software y redes a través de los cuales se distribuye su contenido.
Los programas Inferno son portables en una amplia combinación de hardware, redes y entornos. Define una máquina virtual , conocida como Dis , que se puede implementar en cualquier máquina real, proporciona Limbo , un lenguaje de tipo seguro que se compila en código de bytes portable y, lo que es más importante, incluye un sistema operativo virtual que proporciona las mismas interfaces, ya sea que Inferno se ejecute de forma nativa en hardware o como un programa de usuario sobre otro sistema operativo.
Se aplica un protocolo de comunicaciones llamado Styx de manera uniforme para acceder a recursos locales y remotos, que los programas utilizan llamando a operaciones de archivo estándar: abrir, leer, escribir y cerrar. A partir de la cuarta edición de Inferno, Styx es idéntico a la versión más reciente de Plan 9 de su protocolo distintivo 9P , 9P2000 .
La mayoría de los comandos de Inferno son muy similares a los comandos de Unix con el mismo nombre. [13]
Inferno es un descendiente de Plan 9 de Bell Labs y comparte muchos conceptos de diseño e incluso código fuente en el núcleo, particularmente en lo que respecta a los dispositivos y el protocolo Styx/9P2000. Inferno comparte con Plan 9 la herencia Unix de Bell Labs y la filosofía Unix . Muchas de las herramientas de línea de comandos en Inferno eran herramientas de Plan 9 que se tradujeron a Limbo.
A mediados de los años 1990, el desarrollo de Plan 9 se dejó de lado en favor de Inferno. [14] La existencia del nuevo sistema fue filtrada por Dennis Ritchie a principios de 1996, después de menos de un año de desarrollo del sistema, y se presentó públicamente más tarde ese año como un competidor de Java. Al mismo tiempo, la empresa matriz de Bell Labs, AT&T, obtuvo la licencia de la tecnología Java de Sun Microsystems . [15]
En marzo-abril de 1997, IEEE Internet Computing incluyó un anuncio del software de redes Inferno. En él se afirmaba que varios dispositivos podían comunicarse a través de "cualquier red", incluidas Internet, las telecomunicaciones y las redes de área local. El anuncio afirmaba que los videojuegos podían comunicarse con los ordenadores (en la foto aparecía una PlayStation) , los teléfonos móviles podían acceder al correo electrónico y el buzón de voz estaba disponible a través de la televisión.
Lucent utilizó Inferno en al menos dos productos internos: el bloque de firewall VPN de Lucent y el conmutador telefónico Pathstar de Lucent. Inicialmente intentaron vender licencias de código fuente de Inferno, pero encontraron pocos compradores. Lucent hizo poco marketing y pasó por alto la importancia de Internet y la relación de Inferno con ella. Durante la misma época, Sun Microsystems estaba promocionando intensamente su propio lenguaje de programación Java , que apuntaba a un mercado similar, con tecnología análoga, que funcionaba en navegadores web y también satisfacía la demanda de lenguajes orientados a objetos populares en ese momento. Lucent obtuvo la licencia de Java de Sun, afirmando que todos los dispositivos Inferno estarían hechos para ejecutar Java. Se escribió un traductor de código byte de Java a código byte de Dis para facilitar eso. Sin embargo, Inferno todavía no encontró clientes.
La unidad de negocios Inferno cerró después de tres años y se vendió a Vita Nuova Holdings. Vita Nuova continuó con el desarrollo y ofreció licencias comerciales para el sistema completo, y descargas y licencias gratuitas (no compatibles con GPL ) para todo el sistema excepto el núcleo y la máquina virtual. Portaron el software a un nuevo hardware y se centraron en aplicaciones distribuidas. Finalmente, Vita Nuova lanzó la cuarta edición bajo licencias de software libre más comunes y en 2021 volvieron a licenciar todas las ediciones principalmente bajo la licencia MIT . [6] [2] [3]
Inferno se ejecuta directamente en hardware nativo y también como una aplicación que proporciona un sistema operativo virtual que se ejecuta en otras plataformas. Los programas se pueden desarrollar y ejecutar en todas las plataformas Inferno sin necesidad de modificarlos ni volver a compilarlos.
Los puertos nativos incluyen estas arquitecturas: x86 , MIPS , ARM , PowerPC , SPARC .
Los puertos de sistema operativo alojados o virtuales incluyen: Microsoft Windows , Linux , FreeBSD , Plan 9 , Mac OS X , Solaris , IRIX , UnixWare .
Inferno también puede alojarse mediante un complemento para Internet Explorer . [16] Vita Nuova dijo que se estaban desarrollando complementos para otros navegadores, pero nunca se lanzaron. [17]
Inferno también ha sido portado a Openmoko , [18] Nintendo DS , [19] SheevaPlug , [20] y Android . [21]
La cuarta edición de Inferno se publicó a principios de 2005 como software libre . En concreto, tenía una licencia dual bajo dos estructuras. [6] Los usuarios podían obtenerlo bajo un conjunto de licencias de software libre o podían obtenerlo bajo una licencia propietaria. En el caso del esquema de licencia de software libre, diferentes partes del sistema estaban cubiertas por diferentes licencias, incluidas la Licencia Pública General de GNU , la Licencia Pública General Reducida de GNU , la Licencia Pública Lucent y la Licencia MIT , excluyendo las fuentes, que tienen sublicencia de Bigelow y Holmes.
En marzo de 2021, todas las ediciones fueron relicenciadas principalmente bajo la Licencia MIT . [2] [3]
MIT
esquema de software libre" y "Licencia para desarrolladores comerciales"
de fuente liberal de Vita Nuova" y "Licencia de desarrollador comercial de Vita Nuova"