Helios es un sistema operativo tipo Unix, ya descontinuado , para computadoras paralelas . Fue desarrollado y publicado por Perihelion Software . Su arquitectura principal es el Inmos Transputer . El microkernel de Helios implementa un espacio de nombres distribuido y un protocolo de mensajería, a través del cual se accede a los servicios. Una biblioteca de compatibilidad POSIX permite el uso de software de aplicación Unix, y el sistema proporciona la mayoría de las utilidades Unix habituales.
El trabajo en Helios comenzó en el otoño de 1986. [ 1 ] Su éxito se vio limitado por el fracaso comercial del Transputer, y los esfuerzos por migrar a otras arquitecturas tuvieron un éxito limitado. Perihelion cesó sus operaciones en 1998. [ 2 ]
El nombre del producto era Helios . En los materiales que producían, Perihelion Software nunca se refería al sistema operativo como HeliOS .
Desarrollo
A principios de la década de 1980, Tim King se unió a MetaComCo procedente de la Universidad de Bath , trayendo consigo algunos derechos sobre el sistema operativo TRIPOS . [ 3 ] MetaComCo obtuvo un contrato de Commodore para trabajar en AmigaOS , cuyo componente AmigaDOS se derivó de TRIPOS. En 1986, King dejó MetaComCo para fundar Perihelion Software y comenzó el desarrollo de un sistema operativo paralelo, inicialmente dirigido a la serie de procesadores INMOS Transputer . Helios extendió el uso de la arquitectura de paso de mensajes ligero de TRIPOS a máquinas paralelas en red.
Helios 1.0 fue el primer lanzamiento comercial en el verano de 1988, seguido de la versión 1.1 en otoño de 1989, 1.1a a principios de 1990, 1.2 en diciembre de 1990, seguida de las actualizaciones 1.2.1 y 1.2.2. La versión 1.3 fue una actualización significativa con numerosas mejoras en utilidades, bibliotecas , servidores y controladores . El último lanzamiento comercial fue 1.3.1. Posteriormente, Tim King y Nick Garnett dieron permiso para publicar el código fuente bajo la Licencia Pública General GNU v3 . [ 4 ] Se planeó que Helios 1.4 Alpha incluyera soporte para OpenLook , OpenMotif , KDE , Gnome y soporte X11R6 para Transputer, Linux , Solaris y Windows . Este lanzamiento no se completó. [ 5 ]
Núcleo y núcleo
Helios fue diseñado para una red de múltiples nodos , conectados mediante múltiples enlaces de comunicación de alto ancho de banda. Los nodos pueden ser nodos de procesamiento dedicados o procesadores con dispositivos de E/S conectados. Los sistemas pequeños podrían consistir en una PC o estación de trabajo anfitriona conectada a un conjunto de varios nodos de procesamiento, mientras que los sistemas más grandes podrían tener cientos de nodos de procesamiento compatibles con nodos dedicados para almacenamiento, gráficos o terminales de usuario .
Una red Helios requiere al menos un nodo de servidor de E/S capaz de proporcionar un servidor de sistema de archivos , un servidor de consola y control de reinicio para los nodos de procesamiento. Al encenderse, el núcleo de Helios se inicia desde el servidor de E/S hacia la red. Cada nodo arranca mediante un pequeño cargador de primera etapa que descarga e inicializa el núcleo propiamente dicho. Una vez en funcionamiento, un nodo se comunica con sus vecinos, iniciándolos uno a uno si es necesario.
El núcleo de Helios está compuesto por el kernel, las bibliotecas, el servicio de carga y el servicio de gestión del procesador.
Núcleo
El núcleo Helios es, en esencia, un micronúcleo que proporciona una abstracción mínima sobre el hardware, con la mayoría de los servicios implementados como procesos de servidor sin privilegios. Proporciona primitivas de asignación de memoria, gestión de procesos, paso de mensajes y sincronización.
Bibliotecas
El núcleo de Helios contiene tres bibliotecas: la del sistema, la del servidor y la de utilidades. La biblioteca de utilidades proporciona rutinas básicas para la programación en C , compartidas con las demás bibliotecas. La biblioteca del sistema proporciona la interfaz básica del kernel, convirtiendo las llamadas a funciones de C en mensajes enviados hacia y desde el kernel. Implementa una abstracción que permite la comunicación entre procesos independientemente de su ubicación en la red. La biblioteca del servidor proporciona funciones de soporte de espacio de nombres para la creación de servidores Helios, como se describe a continuación.
Administrador de cargadores y procesadores
Los componentes restantes del núcleo son los servidores de carga y de gestión del procesador. Una vez cargado el kernel, estos procesos se inician y se integran en la red Helios del nodo recién ejecutado.
Nombres y servidores
Una característica clave de Helios es su sistema de nombres distribuido. Una red Helios implementa un único espacio de nombres unificado, con un nodo raíz virtual, nodos de estructuración de red virtuales opcionales, nodos para cada procesador y espacios de nombres de subprocesadores proporcionados por los servicios. Los nombres son similares a los de Unix , utilizando una barra diagonal para separar los caracteres de los elementos de nomenclatura textual.
El espacio de nombres es administrado por el servidor de red , que se inicia mediante el servidor de E/S una vez que el núcleo arranca en su primer nodo conectado. El servidor de red utiliza un mapa de red proporcionado para asignar nombres de procesadores e inicializar controladores para dispositivos de hardware en nodos específicos de la red. El kernel incluye un resolvedor de nombres y administra una caché local de rutas a nombres resueltos previamente.
Los servidores son procesos Helios que implementan el Protocolo General de Servidor (GSP) , generalmente con el apoyo de la biblioteca de servidor. El protocolo de servidor es conceptualmente similar a la API VFS de Unix , y más aún a 9P de Plan 9. Requiere que los servidores representen sus recursos como archivos, con operaciones estandarizadas de apertura, lectura, escritura y cierre. De forma similar a las herramientas como /proc en Plan 9 y otros sistemas operativos tipo Unix , los recursos como archivos, dispositivos de E/S, usuarios y procesos se representan como archivos virtuales en el espacio de nombres gestionado por su proceso administrador.
Los servidores clave en Helios son el cargador, el administrador del procesador y el servidor de red ya mencionados, junto con el administrador de sesiones, el servidor de ventanas y el servidor de archivos. Otros incluyen los servidores de teclado, ratón, RS-232 y Centronics (integrados en el servidor de E/S del host), el servidor nulo (similar a /dev/null de Unix ) y el servidor de registro (similar a syslog de Unix ).
Programación y utilidades
Desde la perspectiva del usuario, Helios es bastante similar a Unix. Incluye la mayoría de los programas de utilidad habituales, algunos con extensiones para reflejar la disponibilidad de varias máquinas.
Lo que no resulta evidente a primera vista es que Helios extiende el concepto de tuberías Unix a un lenguaje llamado Lenguaje de Distribución de Componentes (CDL). En CDL, una tubería típica de la shell Unix, como `more` , se denomina grupo de tareas y se distribuye de forma transparente mediante el servidor Administrador del Grupo de Tareas entre las CPU disponibles. CDL amplía la sintaxis tradicional de Unix con operadores adicionales para tuberías bidireccionales, operadores de granjas de procesos secuenciales y paralelos, equilibrio de carga y gestión de recursos.
Las aplicaciones de Helios se pueden escribir en C , C++ , FORTRAN y Modula-2 . La biblioteca POSIX facilita la adaptación del software Unix existente y proporciona un entorno familiar para los programadores.
Hardware
Helios fue diseñado principalmente para usarse con sistemas Transputer. Es compatible con productos de varios fabricantes, incluidos los sistemas TRAM de INMOS, Meiko CS , Parsytec MultiCluster y SuperCluster, y Telmat T.Node. La estación de trabajo Atari Transputer fue quizás el dispositivo Helios más conocido, al menos fuera del ámbito académico.
Helios puede ejecutarse en Transputers T4xx y T8xx de 32 bits (pero no en los modelos T2xx de 16 bits ) e incluye controladores de dispositivos para diversos componentes de hardware SCSI, Ethernet y gráficos de Inmos, Transtech y otros.
En sus versiones posteriores, Helios fue portado al DSP TI TMS320C40 y a la arquitectura ARM , [ 6 ] esta última utilizada por el dispositivo tableta Active Book. [ 7 ]
Referencias
- ↑ Perihelion Software Ltd. (mayo de 1991). El sistema operativo paralelo Helios (PDF) . Prentice Hall International. pág. 9. ISBN 0-13-381237-5.
- ↑ King, Tim. "Tim King - CV" . Consultado el 18 de marzo de 2007 .
- ↑ Richards, M.; Aylward, AR; Bond, P.; Evans, RD; Knight, BJ (septiembre de 1979). "TRIPOS: un sistema operativo portátil para minicomputadoras". Software: Practice and Experience . 9 (7): 513– 526. doi : 10.1002/spe.4380090702 . S2CID 2847052 .
- ↑ Muhr, Axel. "Axel Muhr" . GitHub . Consultado el 7 de abril de 2019 .
- ↑ "Helios para Transputer" . Consultado el 25 de mayo de 2022 .
- ↑ "Helios en el brazo" . Usuario de Acorn . Junio de 1994. pág. 16. Consultado el 5 de agosto de 2021 .
- ↑ "Lanzamiento navideño de Active Books" . Acorn User . Agosto de 1990. pág. 7. Consultado el 6 de mayo de 2021 .
Lecturas adicionales
Enlaces externos
- Página principal de Transputer de Ram Meenakshisundaram archivada el 16 de julio de 2012 en Wayback Machine .
- Biblioteca Helios de Transputer.net
- Sistemas operativos distribuidos
- Sistemas operativos basados en microkernel
- Variantes de Unix
- Software de 1988