Inferno es un sistema operativo distribuido que comenzó en Bell Labs y ahora es 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 en la investigación posterior de Bell Labs sobre 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 .
Principios de diseño
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 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:
- Recursos como archivos: todos los recursos están representados como archivos dentro de un sistema de archivos jerárquico.
- Espacios de nombres: la vista que un programa tiene de la red es un único espacio de nombres coherente que aparece como un sistema de archivos jerárquico, pero que puede representar recursos físicamente separados (local o remotamente).
- Protocolo de comunicación estándar: se utiliza un protocolo estándar, llamado Styx , para acceder a todos los recursos, tanto locales como remotos.
Para gestionar 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 a la que llegó el proyecto Oak, que se convirtió en Java , pero de forma independiente. La máquina virtual Dis es una máquina de registros diseñada para adaptarse fielmente a la arquitectura en la que se ejecuta, a diferencia de 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 basura es un híbrido de conteo de referencias y un recolector de coloración en tiempo real que recopila datos cíclicos. [ 11 ]
El núcleo Inferno contiene la máquina virtual, el compilador en tiempo real, el planificador, los dispositivos, las pilas de protocolos, el evaluador del espacio de nombres para el espacio de nombres de archivo de cada proceso y 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: [ 1 ]
- Portabilidad entre procesadores: actualmente funciona en arquitecturas ARM , SGI MIPS , HP PA-RISC , IBM PowerPC , Sun SPARC e Intel x86 , y es fácilmente portable a otras.
- Portabilidad en distintos entornos: funciona como sistema operativo independiente en terminales pequeños y también como aplicación de usuario en Bell Plan 9 , MS Windows NT , Windows 95 y Unix ( SGI Irix , Sun Solaris , FreeBSD , Apple Mac OS X , Linux , IBM AIX , HP-UX , Digital Tru64 ). En todos estos entornos, los programas de Inferno tienen una interfaz idéntica.
- Diseño distribuido: se establece un entorno idéntico tanto en el terminal del usuario como en el servidor, y cada uno puede importar los recursos del otro (por ejemplo, los dispositivos de E/S o las redes conectadas). Gracias a las funciones de comunicación del sistema de ejecución, los programas pueden dividirse fácilmente (e incluso de forma dinámica) entre el cliente y el servidor.
- Requisitos mínimos de hardware: ejecuta aplicaciones útiles de forma independiente en máquinas con tan solo 1 MiB de memoria y no requiere hardware de mapeo de memoria .
- Programas portátiles: Los programas de Inferno están escritos en el lenguaje de tipado seguro Limbo y compilados a código de bytes Dis , que se puede ejecutar sin modificaciones en todas las plataformas Inferno.
- Adaptabilidad dinámica: los programas pueden, según el hardware u otros recursos disponibles, cargar diferentes módulos para realizar una función específica. Por ejemplo, un reproductor de vídeo podría usar varios módulos decodificadores diferentes.
Estas decisiones de diseño tenían como objetivo proporcionar interfaces estándar que liberaran a los proveedores de contenido y servicios de la preocupación por los detalles del diverso hardware, software y redes a través de los cuales se distribuye su contenido.
Características
Inferno se ejecuta como sistema operativo nativo o como aplicación alojada en varios sistemas operativos existentes, incluidos Linux, Windows, Plan 9, FreeBSD, Solaris, Mac OS X e Irix. Las arquitecturas de procesador compatibles incluyen Intel x86, ARM, PowerPC y SPARC. [ 12 ] [ 13 ]
Las aplicaciones se escriben en el lenguaje de programación Limbo, que proporciona tipado estático, recolección de basura y funciones de concurrencia integradas. El código Limbo se compila en bytecode independiente de la arquitectura, ejecutado por la máquina virtual Dis. La máquina virtual Dis puede interpretar el bytecode o compilarlo justo a tiempo en instrucciones nativas, lo que permite que las aplicaciones se ejecuten de forma consistente en diferentes plataformas. [ 12 ] [ 13 ]
Todos los recursos en Inferno, como dispositivos, servicios y conexiones de red, se representan como archivos en un espacio de nombres jerárquico y se accede a ellos mediante operaciones de archivo estándar como open, read, write, y close. Inferno utiliza el protocolo Styx, equivalente al 9P2000 de Plan 9, para interactuar con recursos locales y remotos de manera uniforme. [ 12 ] [ 13 ]
Las características de seguridad incluyen espacios de nombres por proceso, autenticación y cifrado. Las aplicaciones operan dentro de espacios de nombres restringidos, limitando su acceso únicamente a los recursos autorizados. El sistema admite una variedad de protocolos criptográficos, incluidos RSA, Diffie-Hellman y métodos de cifrado simétrico como RC4 y DES. [ 12 ]
Inferno proporciona un entorno de desarrollo completo que incluye un compilador, un depurador gráfico, herramientas de scripting y bibliotecas para redes e interfaces de usuario. Admite la carga dinámica de módulos y puede funcionar con bajos requisitos de recursos, como sistemas con 1 MB de memoria. [ 12 ] [ 13 ]
Historia

Inferno es descendiente de Plan 9 de Bell Labs y comparte muchos conceptos de diseño e incluso código fuente en el núcleo, especialmente en lo que respecta a 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 de Inferno eran herramientas de Plan 9 que se adaptaron a Limbo.
A mediados de la década de 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, y se presentó públicamente ese mismo año como un competidor de Java. Al mismo tiempo, AT&T , la empresa matriz de Bell Labs , obtuvo la licencia de la tecnología Java de Sun Microsystems . [ 15 ]
En marzo-abril de 1997, la revista IEEE Internet Computing incluyó un anuncio del software de redes Inferno. Afirmaba que diversos dispositivos podían comunicarse a través de "cualquier red", incluyendo Internet, telecomunicaciones y redes de área local (LAN). El anuncio indicaba que los videojuegos podían comunicarse con las computadoras (se mostraba una PlayStation) , que los teléfonos celulares podían acceder al correo electrónico y que el correo de voz estaba disponible a través de la televisión.
Lucent utilizó Inferno en al menos dos productos internos: el firewall VPN Lucent y el conmutador telefónico Lucent Pathstar. Inicialmente intentaron vender licencias del código fuente de Inferno, pero encontraron pocos compradores. Lucent invirtió poco en marketing y no comprendió la importancia de Internet ni la relación de Inferno con ella. Al mismo tiempo, Sun Microsystems promocionaba intensamente su propio lenguaje de programación Java , dirigido 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 aquel entonces. Lucent obtuvo la licencia de Java de Sun, afirmando que todos los dispositivos Inferno serían compatibles con Java. Se desarrolló un traductor de código de bytes de Java a código de bytes Dis para facilitar esta tarea. Sin embargo, Inferno seguía sin encontrar clientes.
La unidad de negocio Inferno cerró después de tres años y fue vendida a Vita Nuova Holdings. Vita Nuova continuó el desarrollo y ofreció licencias comerciales para el sistema completo, así como descargas y licencias gratuitas (no compatibles con GPL ) para todo el sistema excepto el kernel y la máquina virtual. Adaptaron el software a 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 relicenciaron todas las ediciones principalmente bajo la Licencia MIT . [ 6 ] [ 2 ] [ 3 ]
Puertos
Inferno se ejecuta directamente en el 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 recompilarlos.
Los puertos nativos incluyen estas arquitecturas: x86 , MIPS , ARM , PowerPC , SPARC .
Los puertos de sistemas operativos 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 publicaron. [ 17 ]
Inferno también ha sido adaptado a Openmoko , [ 18 ] Nintendo DS , [ 19 ] SheevaPlug , [ 20 ] y Android . [ 21 ] [ 22 ]
Distribución
Inferno 4.ª edición se publicó a principios de 2005 como software libre . En concreto, tenía una doble licencia bajo dos estructuras. [ 6 ] Los usuarios podían obtenerlo bajo un conjunto de licencias de software libre o bajo una licencia propietaria. En el caso del esquema de licencia de software libre, diferentes partes del sistema estaban cubiertas por distintas licencias, incluidas la Licencia Pública General de GNU , la Licencia Pública General Reducida de GNU , la Licencia Pública de Lucent y la Licencia MIT , excluyendo las fuentes, que tienen una sublicencia de Bigelow y Holmes.
En marzo de 2021, todas las ediciones fueron re-licenadas principalmente bajo la Licencia MIT . [ 2 ] [ 3 ]
Véase también
- Sistema basado en lenguaje : sistema operativo que utiliza características del lenguaje para proporcionar seguridad.
- Singularity (sistema operativo) – Sistema operativo experimental de Microsoft Research
Notas
Referencias
- 1 2 Dorward, Sean; Pike, Rob; Presotto, David Leo; Ritchie, Dennis M.; Trickey, Howard; Winterbottom, Phil (1997). "El sistema operativo Inferno" . Documentación de Inferno . Vita Nuova . Recuperado el 2 de mayo de 2014 .
- 1 2 3 4 "Términos de licencia de Inferno" . Archivado del original el 27/04/2021 . Consultado el 17/06/2021 .
La mayor parte de Inferno 4.ª edición se proporciona bajo la licencia `MIT`.
- 1 2 3 4 "GitHub - inferno-os/inferno-os" . Consultado el 5 de octubre de 2025 .
- ↑ "Términos de la licencia Inferno" . Archivado del original el 11 de agosto de 2005.
El "Esquema de Software Libre" y la "Licencia de Desarrollador Comercial".
- ↑ "Licencia de desarrollador comercial de Vita Nuova - 9 de noviembre de 2005" . Archivado del original el 2 de mayo de 2006.
- 1 2 3 "Términos de la licencia Inferno" . Archivado del original el 26/10/2003.
"Licencia de código abierto Vita Nuova" y "Licencia de desarrollador comercial Vita Nuova".
- ↑ "Licencia de código abierto Vita Nuova - 29 de mayo de 2003" . Archivado del original el 5 de abril de 2005.
- ↑ "Licencia de código abierto Vita Nuova - 14 de mayo de 2003" . Archivado del original el 23 de febrero de 2004.
- ↑ "Licencia de desarrollador comercial de Vita Nuova - 22 de abril de 2003" . Archivado del original el 25 de junio de 2004.
- ↑ "Licencia de suscripción a Vita Nuova Inferno" . Archivado del original el 8 de diciembre de 2000.
- ↑ Huelsbergen, Lorenz; Winterbottom, Phil (1998). Recolección de basura de marcado y barrido muy concurrente sin sincronización de grano fino (PDF) . Simposio internacional de 1998 sobre gestión de memoria.
- 1 2 3 4 5 Dorward, Steven; Fioravanti, Alan; Nehab, Marcelo; Pike, Rob; Trickey, Howard; Winterbottom, Phil (1997). "El sistema operativo Inferno". Revista técnica de Bell Labs . 2 (1): 5– 18.
- 1 2 3 4 "Infierno" . Consultado el 3 de agosto de 2025 .
- ↑ Pontin, Jason (19 de febrero de 1996). "AT&T revela planes para un competidor de Java" . InfoWorld . pág. 3.
- ↑ Hayes, Frank (19 de febrero de 1996). "Inferno de Bell Labs pretende rivalizar con Java" . Computerworld . pág. 6.
- ↑ "Código de soporte para permitir que Inferno funcione como un complemento en varios navegadores" .
- ↑ "Inferno - Plug-in" . Vita Nuova . Archivado del original el 8 de mayo de 2021.
- ↑ "inferno-openmoko - inferno para openmoko neo freerunner - Google Project Hosting" . Consultado el 4 de junio de 2012 .
- ^ Lukkien, Mechiel (22 de enero de 2024), mjl-/inferno-ds , consultado el 25 de enero de 2024
- ↑ "inferno-kirkwood - Inferno para Marvell Kirkwood/Sheevaplug - Google Project Hosting" . Consultado el 4 de junio de 2012 .
- ↑ "Inferno OS funcionando en teléfonos Android" . Slashdot. 17 de septiembre de 2011. Consultado el 5 de octubre de 2025 .
- ↑ John Floren (16 de septiembre de 2011). "Anuncio de Inferno para teléfonos Android" . Consultado el 5 de octubre de 2025 .
Lecturas adicionales
- Stanley-Marbell, Phillip (2003). Inferno Programming with Limbo . Chichester: John Wiley & Sons. ISBN 0-470-84352-7.Describe la tercera edición del sistema operativo Inferno, aunque se centra más en el lenguaje Limbo y sus interfaces con el sistema Inferno que en el sistema Inferno en sí. Por ejemplo, ofrece poca información sobre la versátil consola de comandos de Inferno , lo cual es comprensible dado que se trata de un libro de texto sobre lenguajes de programación.
- Stuart, Brian (2008). Principios de sistemas operativos: diseño y aplicaciones . Course Technology. ISBN 978-1-4188-3769-3.Utiliza Inferno como ejemplo de diseño de sistemas operativos.
- Atkins, Martin; Forsyth, Charles; Pike, Rob ; Trickey, Howard. El libro de programación de Inferno: Una introducción a la programación para el sistema distribuido Inferno .Su objetivo era proporcionar un punto de vista centrado en el sistema operativo, pero nunca se completó.
Enlaces externos
- Documentación para la última versión de Inferno.
- Descarga la cuarta edición de Inferno , incluyendo el código fuente.
- Lista de correo y otros recursos .
- Ninetimes : Noticias y artículos sobre Inferno, Plan 9 y tecnologías relacionadas.
- Cuaderno de un programador de Inferno : un diario creado por un desarrollador de Inferno.
- Inferno OS a Raspberry Pi Labs: Portando Inferno OS a Raspberry Pi
- Inferno (sistema operativo)
- Software de 1996
- Sistemas operativos ARM
- Sistemas operativos distribuidos
- Sistemas operativos integrados
- Sistemas operativos en tiempo real
- Sistemas operativos X86
- Sistemas operativos PowerPC
- Sistemas operativos MIPS