TRIX es un sistema operativo de investigación orientado a redes desarrollado a finales de la década de 1970 en el Laboratorio de Ciencias de la Computación (LCS) del MIT por el profesor Steve Ward y su grupo de investigación. Se ejecutaba en la NuMachine y tenía la funcionalidad de llamada a procedimiento remoto integrada en su núcleo , pero por lo demás era similar a la versión 7 de Unix .
Diseño e implementación
Al arrancar, NuMachine cargaba el mismo programa en cada CPU del sistema, pasando a cada instancia el ID numérico de la CPU en la que se ejecutaba. TRIX se basaba en este diseño para que la primera CPU configurara las estructuras de datos globales y luego estableciera un indicador para señalar que la inicialización había finalizado. [ 1 ] Después de eso, cada instancia del kernel podía acceder a los datos globales. [ 1 ] El sistema también admitía datos privados para cada CPU. [ 1 ] El acceso al sistema de archivos lo proporcionaba un programa en el espacio de usuario . [ 1 ] [ 2 ]
El núcleo admitía hilos sin nombre que se ejecutaban en dominios. [ 1 ] Un dominio era el equivalente a un proceso Unix sin un puntero de pila [ 2 ] (cada hilo en un dominio tenía un puntero de pila [ 2 ] ). Un hilo podía cambiar de dominio, [ 1 ] y el planificador del sistema migraba los hilos entre las CPU para mantener ocupados a todos los procesadores. [ 1 ] Los hilos tenían acceso a un único tipo de primitiva de exclusión mutua y a una de siete prioridades. [ 1 ] El planificador fue diseñado para evitar la inversión de prioridad . [ 1 ] Los programas del espacio de usuario podían crear hilos a través de una spawnllamada al sistema . [ 1 ]
Un recolector de basura identificaría y liberaría periódicamente los dominios no utilizados. [ 1 ]
El modelo de memoria compartida utilizado para coordinar el trabajo entre las distintas CPU provocaba contención en el bus de memoria y era conocido por ser una fuente de ineficiencia. [ 1 ] [ 2 ] Los diseñadores eran conscientes de los diseños que habrían aliviado la contención. [ 2 ] De hecho, el diseño original de TRIX utilizaba un mecanismo de paso de mensajes sin bloqueo, [ 2 ] pero «se descubrió que esta implementación tenía deficiencias que a menudo se pasan por alto en la literatura», [ 2 ] incluyendo un rendimiento deficiente. [ 2 ]
Aunque el sistema operativo TRIX se implementó por primera vez en la NuMachine, esto se debió a la disponibilidad de la NuMachine en el MIT, no a ninguna característica de la arquitectura. [ 1 ] El sistema fue diseñado para ser fácilmente portable. [ 2 ] Se implementó en gran parte en C con poco código ensamblador . La primitiva de exclusión mutua podía portarse a cualquier arquitectura con una instrucción atómica de prueba y configuración . [ 1 ]
Intento de uso por parte del Proyecto GNU
Richard Stallman menciona en el Manifiesto GNU de 1985 que "existe un núcleo inicial" para el sistema operativo GNU , "pero se necesitan muchas más características para emular Unix". [ 3 ] Esto era una referencia al núcleo de TRIX, que los autores de TRIX habían decidido distribuir como software libre . [ 4 ]
En un discurso pronunciado en octubre de 1986, Stallman explicó que «el núcleo TRIX funciona y tiene cierta compatibilidad limitada con Unix, pero necesita mucho más. Actualmente tiene un sistema de archivos que utiliza la misma estructura en disco que el antiguo sistema de archivos de Unix. Esto facilitó la depuración, ya que podían configurar los archivos con Unix y luego ejecutar TRIX, pero ese sistema de archivos no tiene ninguna de las características que considero necesarias». [ 5 ] Las características que Stallman deseaba añadir (control de versiones de archivos, recuperación de archivos eliminados, información sobre cuándo, cómo y dónde se realizó la copia de seguridad del archivo en cinta, actualizaciones atómicas de archivos) no se asociaban generalmente con Unix.
En diciembre de 1986, los desarrolladores utilizaron el núcleo de TRIX como base en su primer intento de crear un núcleo para GNU. Finalmente, decidieron que Trix no era utilizable como punto de partida, principalmente porque:
- solo funcionaba en "una caja 68000 oscura y cara", [ 4 ] y, por lo tanto, requeriría portabilidad a otras arquitecturas y
- Se decidió que el microkernel Mach era un diseño subyacente mejor para un sistema operativo basado en servidor. Este segundo intento evolucionó hasta convertirse en GNU Hurd .
Véase también
Referencias
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 "Una implementación de procesador múltiple del sistema operativo TRIX" (PDF) . Recuperado el 2 de julio de 2012 .
- 1 2 3 4 5 6 7 8 9 "TRIX: Un sistema operativo orientado a las comunicaciones" (PDF) . Consultado el 2 de julio de 2012 .
- ↑ "El Manifiesto GNU" . Consultado el 5 de agosto de 2010 .
- 1 2 Stallman, Richard M. (enero de 1987). "Estado del proyecto GNU" . Boletín de GNU . 1 (2). Fundación del Software Libre . Recuperado el 12 de mayo de 2018 .
- ↑ "Conferencia de RMS en KTH" . 30 de octubre de 1986. Consultado el 12 de mayo de 2018 .
Lecturas adicionales
- Ward, SA TRIX: un sistema operativo orientado a la red. COMPCON, primavera de 1980, págs. 344–349.
Enlaces externos
- Código fuente del kernel de TRIX (también se puede consultar en línea )
- Historia de Hurd en el sitio web del Proyecto GNU
- Software de 1986
- Sistemas operativos de software libre
- Software del Proyecto GNU
- Software del Instituto Tecnológico de Massachusetts
- núcleos monolíticos
- Variantes de Unix
- Arquitectura 68k