Infierno (sistema operativo)
Inferno es un sistema operativo distribuido iniciado en Bell Labs y ahora desarrollado y mantenido por Vita Nuova Holdings como software gratuito bajo la licencia MIT. Inferno se basó en la experiencia adquirida con Plan 9 de Bell Labs y en la investigación adicional 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 actual empresa, 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 Bell Labs' División de Investigación en Ciencias de la Computación 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 jerárquico de archivos
- Namespaces: la visión de un programa de la red es un espacio de nombres único y coherente que aparece como un sistema jerárquico de archivos pero puede representar recursos separados físicamente (local o remotamente)
- Protocolo de comunicación estándar: un protocolo estándar, llamado Styx, se utiliza para acceder a todos los recursos, tanto locales como remotos
Para manejar la diversidad de entornos de red en los que estaba previsto su uso, 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 llegó de forma independiente. La máquina virtual Dis es una máquina de registro 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 administración de memoria diseñada para ser eficiente en dispositivos con tan solo 1 MiB de memoria y sin hardware de asignación de memoria. Su recolector de basura es un híbrido de recuento de referencias y un recolector de coloración en tiempo real que recopila datos cíclicos.
El kernel de Inferno contiene la máquina virtual, el compilador sobre la marcha, el programador, los dispositivos, las pilas de protocolos y el evaluador de espacio de nombres para cada proceso. espacio de nombres de archivos y la raíz de la jerarquía del sistema de archivos. El kernel 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 del Bell Labs Technical Journal que presenta Inferno enumera varias dimensiones de portabilidad y versatilidad proporcionadas por el sistema operativo:
- Portabilidad a través de procesadores: actualmente se ejecuta en ARM, SGI MIPS, HP PA-RISC, IBM PowerPC, Sun SPARC, e Intel x86 arquitecturas y es fácilmente portátil a otros.
- Portabilidad a través de entornos: funciona como un sistema operativo independiente en pequeñas terminales, y también como una aplicación de usuario bajo 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 Inferno ven una interfaz idéntica.
- Diseño distribuido: el entorno idéntico se establece en el terminal del usuario y en el servidor, y cada uno puede importar los recursos (por ejemplo, los dispositivos I/O adjuntos o redes) del otro. Ayudado por las instalaciones de comunicaciones del sistema de tiempo de ejecución, los programas pueden dividirse fácilmente (y incluso dinámicamente) entre cliente y servidor.
- Requisitos mínimos de hardware: ejecuta aplicaciones útiles independientes en máquinas con tan poco como 1 MiB de memoria, y no requiere hardware de memoria.
- Programas portátiles: Los programas de Inferno están escritos en el lenguaje de tipo seguro Limbo y compilados en Dis bytecode, que se puede ejecutar sin modificaciones en todas las plataformas de Inferno.
- Adaptabilidad dinámica: los programas pueden, dependiendo del hardware u otros recursos disponibles, cargar diferentes módulos de programas para realizar una función específica. Por ejemplo, un reproductor de vídeo podría utilizar cualquiera de varios módulos de decodificador diferentes.
Estas opciones de diseño estaban dirigidas a proporcionar interfaces estándar que liberaran a los proveedores de contenido y servicios de la preocupación por los detalles de diversos hardware, software y redes a través de las cuales se entrega su contenido.
Características
Los programas Inferno son portátiles a través de 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 portátil y, lo que es más importante, incluye un sistema operativo virtual que proporciona el mismo interfaces si Inferno se ejecuta de forma nativa en hardware o se ejecuta como un programa de usuario sobre otro sistema operativo.
Un protocolo de comunicaciones llamado Styx se aplica de manera uniforme para acceder a recursos locales y remotos, que los programas utilizan llamando a operaciones estándar de archivos, abrir, leer, escribir y cerrar. A partir de la cuarta edición de Inferno, Styx es idéntico a la versión más nueva de Plan 9 de su protocolo 9P característico, 9P2000.
La mayoría de los comandos de Inferno son muy similares a los comandos de Unix con el mismo nombre.
Historia
Inferno es un descendiente de Plan 9 de Bell Labs y comparte muchos conceptos de diseño e incluso código fuente en el kernel, particularmente en torno 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 comando en Inferno eran herramientas del Plan 9 que se tradujeron al Limbo.
A mediados de la década de 1990, el desarrollo del Plan 9 se dejó de lado en favor de Inferno. 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 presentado públicamente ese mismo año como un competidor de Java. Al mismo tiempo, Bell Labs' La empresa matriz AT&T obtuvo la licencia de tecnología Java de Sun Microsystems.
En marzo-abril de 1997, IEEE Internet Computing incluyó un anuncio del software de red Inferno. Afirmó que varios dispositivos podrían comunicarse a través de "cualquier red" incluyendo Internet, telecomunicaciones y LAN. El anuncio decía que los videojuegos podían comunicarse con las computadoras, (se mostraba una PlayStation), los teléfonos celulares podían acceder al correo electrónico y el correo de voz estaba disponible a través de la televisión.
Lucent utilizó Inferno en al menos dos productos internos: el Lucent VPN Firewall Brick y el conmutador telefónico Lucent Pathstar. 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 él. Al mismo tiempo, Sun Microsystems comercializaba 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 diseñados para ejecutar Java. Se escribió un traductor de código de bytes de Java a código de bytes Dis para facilitarlo. Sin embargo, Inferno todavía no encontró clientes.
La unidad de negocio Inferno cerró después de tres años y se vendió a Vita Nuova Holdings. Vita Nuova continuó 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 kernel y la VM. Portaron el software a nuevo hardware y se centraron en aplicaciones distribuidas. Finalmente, Vita Nuova lanzó la cuarta edición con licencias de software libre más comunes y, en 2021, volvieron a otorgar licencias para todas las ediciones principalmente bajo la licencia MIT.
Fecha | Liberación | Comentario |
---|---|---|
1996 | Inferno Beta | Publicado por Bell Labs |
Mayo de 1997 | Inferno Release 1.0 | Invierno 1997 Bell Labs Technical Journal Article |
Julio de 1999 | Inferno 2a edición | Publicado por la Unidad de Negocios Inferno de Lucent |
Junio de 2001 | Inferno 3a edición | Publicado por Vita Nuova |
2004 | Inferno 4a edición | Open Source release; cambios en muchas interfaces (incompatibles con ediciones anteriores); incluye soporte para 9P2000. |
Puertos
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 de Inferno sin modificarlos ni recompilarlos.
Los puertos nativos incluyen estas arquitecturas: x86, MIPS, ARM, PowerPC, SPARC.
Los puertos de SO alojados o virtuales incluyen: Microsoft Windows, Linux, FreeBSD, Plan 9, Mac OS X, Solaris, IRIX, UnixWare.
Inferno también puede alojarse mediante un complemento de Internet Explorer. Vita Nuova dijo que se estaban desarrollando complementos para otros navegadores, pero nunca se lanzaron.
Inferno también se ha adaptado a Openmoko, Nintendo DS, SheevaPlug y Android.
Distribución
La cuarta edición de Inferno se lanzó a principios de 2005 como software gratuito. Específicamente, tenía doble licencia bajo dos estructuras. Los usuarios pueden obtenerlo bajo un conjunto de licencias de software libre o bajo una licencia propietaria. En el caso del esquema de licencias de software libre, diferentes partes del sistema estaban cubiertas por diferentes licencias, incluida la Licencia Pública General GNU, la Licencia Pública General Reducida GNU, la Licencia Pública Lucent y la Licencia MIT, excluidas las fuentes, que tienen sublicencia de Bigelow y Holmes.
En marzo de 2021, se volvieron a otorgar licencias a todas las ediciones, principalmente bajo la licencia MIT.
Contenido relacionado
Pruebas de caja negra
Milton Obote
Geoffrey de Havilland