Articulo de referencia

Thoth (sistema operativo)

Thoth es un sistema operativo (SO) de paso de mensajes en tiempo real desarrollado en la Universidad de Waterloo en Waterloo, Ontario, Canadá . Historia Thoth se desarrolló en l...

Thoth es un sistema operativo (SO) de paso de mensajes en tiempo real desarrollado en la Universidad de Waterloo en Waterloo, Ontario, Canadá .

Historia

Thoth se desarrolló en la Universidad de Waterloo en Waterloo, Ontario , Canadá . El plan de estudios de Waterloo incluye un curso de Sistemas Operativos en Tiempo Real y un laboratorio de trenes asociado, donde los estudiantes deben desarrollar un sistema operativo en tiempo real (RTOS) para controlar una vía modelo con múltiples trenes. [ 1 ] [ 2 ] [ 3 ]

En 1972, Stephen C. Johnson, durante un año sabático de Bell Labs , introdujo en Waterloo el lenguaje de programación B , derivado de BCPL . [ 4 ] En Waterloo se desarrolló un nuevo lenguaje derivado de B, llamado Eh . Thoth se escribió originalmente en Eh con algo de lenguaje ensamblador . [ 5 ] [ 6 ]

El desarrollo inicial de Thoth tuvo lugar en una computadora Honeywell 6050. [ 7 ] Se ejecutó por primera vez en una Data General Nova 2 en mayo de 1976, y luego se portó a una Texas Instruments TI990/10 en agosto de 1976. [ 7 ] [ 5 ]

En octubre de 1976, la Universidad de Waterloo publicó la tesis de maestría de Laurence S. Melen, titulada "Un ejecutivo portátil en tiempo real, Thoth". [ 8 ]

Eh fue posteriormente actualizado, en parte con la adición de tipos de datos , y renombrado Zed . Thoth fue luego reescrito en Zed. [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ]

Uno de los primeros desarrolladores principales de Thoth fue David Cheriton . Cheriton desarrollaría posteriormente el núcleo Verex y el sistema operativo V-System , ambos influenciados por Thoth. Otro desarrollador inicial fue Michael Malcolm, quien más tarde fundaría Waterloo Microsystems, Network Appliances, Inc. , Blue Coat Systems y Kaliedescape, varios de cuyos sistemas operativos se cree que derivaron de Thoth o estuvieron influenciados por él.

Algunos artículos describen a DEMOS como la inspiración para Thoth. [ 14 ] Como estado de la técnica anterior, Cheriton citó el RC 4000 de Per Brinch Hansen y luego enumeró a Thoth, DEMOS y Accent juntos como desarrollos posteriores. [ 15 ] Otras influencias en el desarrollo de Thoth incluyeron Multics , el RTOS de Data General , Honeywell GCLS y Unix . [ 5 ] Referencias posteriores citan a Thoth como la implementación original de su uso particular de paso de mensajes síncrono y estructura de programa multiproceso, que posteriormente fueron aplicados por otros proyectos. [ 16 ] : 2

Los trabajos en Thoth terminaron alrededor de 1982. [ 17 ]

Características

Thoth fue desarrollado para cumplir cuatro objetivos: [ 7 ]

  1. Fácilmente portable a otro hardware [ 3 ]
  2. Los programas se ejecutan como un conjunto de procesos concurrentes económicos y cooperativos con comunicaciones entre procesos (IPC) eficientes [ 5 ].
  3. Adecuado para usos en tiempo real en cuanto a la respuesta del sistema a eventos externos.
  4. Adaptable y escalable a una amplia gama de usos en tiempo real.

Thoth expone la misma máquina abstracta al software de aplicación , independientemente de la máquina física subyacente . [ 5 ] [ 18 ] Esta máquina abstracta se definió con ciertos requisitos mínimos, de modo que el cumplimiento de estos requisitos permitía que una computadora determinada se incluyera en el Dominio Thoth de posibles objetivos de puerto Thoth.

Los procesos que se ejecutan bajo Thoth se pueden agrupar en "Equipos". Todos los procesos dentro de un equipo comparten un espacio de direcciones común y pueden compartir datos. [ 19 ] [ 7 ] Esto es similar a los conceptos de "procesos ligeros" o hilos de otros sistemas. [ 20 ] Los procesos que no pertenecen al mismo equipo se comunican mediante la comunicación entre procesos (IPC) de Thoth.

La comunicación entre procesos en Thoth se realiza principalmente mediante el paso síncrono de mensajes. [ 7 ] Este enfoque simplificó enormemente la gestión de colas de mensajes. [ 21 ]

Aunque el término no era común cuando se escribieron los artículos originales, a Thoth se le ha llamado micronúcleo . [ 22 ] [ 20 ] [ 23 ]

El IPC de paso de mensajes síncrono de Thoth se prestó a la aplicación de un modelo de programación antropomórfico, basado en el trabajo del modelo de actor de Carl Hewitt y de Smalltalk . [ 17 ]

Legado

El sistema operativo Thoth sirvió de base o de inspiración para varios proyectos posteriores, algunos de los cuales se enumeran a continuación.

Académico

  • El sistema de servidor de archivos distribuido microNet en la Universidad de Waterloo funcionaba con un sistema operativo llamado WatSys, similar a Thoth y Port. [ 24 ] WatSys debutó en 1981. [ 25 ]
  • El Consejo Nacional de Investigación de Canadá fue el lugar de desarrollo del sistema operativo Harmony , un derivado de Thoth orientado al control de robots en tiempo real. [ 26 ]
  • Cheriton aceptó un puesto en la Universidad de Columbia Británica , donde participó en el desarrollo de Verex y Distributed Verex, utilizando muchas de las ideas que había explorado anteriormente en Thoth. [ 12 ] [ 27 ]
  • Posteriormente, Cheriton se trasladó a la Universidad de Stanford en los Estados Unidos, donde desarrolló el Sistema V , que continuó basándose en el trabajo anterior con Thoth. [ 15 ] [ 28 ] [ 29 ] [ 30 ]
  • La arquitectura del sistema Sylvan Multiprocessing incluía un coprocesador que implementaba en hardware las primitivas de paso de mensajes síncronos de Thoth (y el rendezvous extendido de Ada). [ 16 ] [ 31 ]
  • Thoth y su IPC de paso de mensajes se utilizaron para sustentar un programa de pintura multiproceso que empleaba el modelo de programación antropomórfica. [ 32 ] [ 33 ]
  • La semántica de paso de mensajes de Thoth formaba parte de una versión experimental de procesamiento paralelo del sistema de álgebra computacional (CAS) Maple . [ 34 ]
  • El entorno de comunicación y ejecución de procesos distribuido (PEACE) se desarrolló para aplicaciones de alto rendimiento. El artículo cita a Thoth como un "fundamento fundamental" para el proyecto. [ 35 ]
  • El ejecutivo del Sistema Multiprocesador de Eindhoven (EMPS) hizo hincapié en la eficiencia. Thoth proporcionó la inspiración para el diseño del núcleo del EMPS. [ 36 ]
  • En Waterloo Port se construyó un entorno experimental de interfaz humano-computadora llamado sistema Room, derivado de Thoth y que utilizaba sus técnicas de comunicación entre procesos (IPC). El artículo sobre Room hace referencia a trabajos anteriores de Thoth. [ 37 ]
  • Se dijo que el servidor web Flash, un proyecto de investigación con énfasis en la eficiencia y la portabilidad, se asemejaba a Thoth en su método de estructuración de múltiples procesos y en el concepto de equipos de procesos que se comunican mediante el paso de mensajes. [ 38 ]

Comercial

  • Gordon Bell y Dan Dodge , desarrolladores del sistema operativo en tiempo real de paso de mensajes QNX , trabajaron con Thoth mientras eran estudiantes en Waterloo. [ 39 ] [ 40 ] [ 41 ] [ 42 ]
  • El sistema de comunicación de oficina System 75 de AT&T estaba controlado por el núcleo Oryx y el conjunto de procesos esenciales del sistema Pecos , denominados conjuntamente Oryx/Pecos . Utilizaba ideas de Thoth, DEMOS y un proyecto interno de AT&T. [ 43 ]
  • El sistema operativo de red comercial del puerto de Waterloo se derivó de Thoth. [ 44 ] El lenguaje Zed asociado se actualizó para convertirse en el lenguaje PORT para el puerto de Waterloo. [ 45 ] [ 46 ]
  • Hayes Microcomputer Products adquirió Waterloo Microsystems y cambió la marca y actualizó el producto Waterloo Port para crear LANstep . [ 47 ] [ 48 ]
  • La empresa de almacenamiento Auspex produjo el núcleo de multiprocesamiento funcional (FMK), que empleaba conceptos identificados como desarrollados por primera vez en Thoth. [ 49 ] A diferencia del V-System y el puerto de Waterloo, el FMK no tenía gestión de memoria.
  • Las primeras versiones del sistema operativo del dispositivo de almacenamiento de Network Appliance, Inc. se han descrito como muy similares a Thoth. [ 50 ] El sistema operativo de NetApp fue escrito por David Hitz , quien anteriormente había estado en Auspex.
  • En 1996, la empresa de dispositivos de aceleración web CacheFlow lanzó su CacheOS , que estaba basado en Thoth. [ 51 ] En 2001, CacheFlow pasó a llamarse Blue Coat Systems y, con la adición de un motor de políticas, CacheOS se convirtió en el Secure Gateway Operating System (SGOS).

Referencias

  1. "CS 452 Programación en tiempo real" . Escuela de Ciencias de la Computación Cheriton .
  2. "CS 452/652 - Programación en tiempo real" . Universidad de Waterloo, Centro de Computación de Ciencias de la Computación .
  3. 1 2 Malcolm, Michael (24 de marzo de 2009). "24 de marzo de 2009: Ciclo de conferencias de Deloitte" . Instituto de Investigación Informática .
  4. Ritchie, Dennis M. (abril de 1993). El desarrollo del lenguaje C (PDF) . Association for Computing Machinery. Archivado del original (PDF) el 24 de julio de 2015. Consultado el 6 de octubre de 2020 .
  5. 1 2 3 4 5 Cheriton, David R.; Malcolm, Michael A.; Melen, Lawrence S.; Sager, Gary R. (marzo de 1978). Thoth, un sistema operativo portátil en tiempo real (revisado) (PDF) . Departamento de Ciencias de la Computación de la Universidad de Waterloo (informe técnico).
  6. Braga, Reinaldo SC (noviembre de 1976). Manual de referencia Eh (PDF) . Departamento de Ciencias de la Computación de la Universidad de Waterloo (Informe técnico).
  7. 1 2 3 4 5 Cheriton, David R.; Malcolm, Michael A.; Melen, Lawrence S.; Sager, Gary R. (febrero de 1979). "Thoth, un sistema operativo portátil en tiempo real" (PDF) . Communications of the ACM . 22 (2): 105– 115. doi : 10.1145/359060.359074 . S2CID 14350500 . 
  8. Melen, Laurence S. (octubre de 1976). Un ejecutivo portátil en tiempo real, Thoth (Informe técnico). Departamento de Ciencias de la Computación, Universidad de Waterloo.
  9. Lion, John (octubre de 1993). «Carta desde Nueva Jersey — enero de 1979». Boletín del Grupo Australiano de Usuarios de Unix . Vol. 14, n.º 5. The AUUG Inc. págs. 48–51 .   
  10. "Base de datos de lenguajes de programación: Z" . epocalc . 2012.
  11. Bonkowski, G. Bert; Gentleman, W. Morven; Malcolm, Michael A. (mayo de 1979). Porting The Zed Compiler (PDF) . Departamento de Ciencias de la Computación de la Universidad de Waterloo (Informe técnico).
  12. 1 2 Lockhart, Thomas Wayne (noviembre de 1979). El diseño de un núcleo de sistema operativo verificable (tesis). Universidad de Columbia Británica. doi : 10.14288/1.0051812 .
  13. Kinnersley, Bill (23 de enero de 1995). " La lista de idiomas: versión 2.4" . ckw.phys.ncku.edu.tw.
  14. Hutchinson, Norman A. (1987). Emerald: Un lenguaje basado en objetos para programación distribuida (PDF) (Informe técnico). Universidad de Washington.
  15. 1 2 Cheriton, David R. (marzo de 1988). "El sistema distribuido V" (PDF) . Communications of the ACM . 31 (3): 314– 333. doi : 10.1145/42392.42400 . S2CID 7523994 . 
  16. 1 2 Burkowski, Forbes J.; Clarke, Charles LA; Cowan, S. Crispin; Vreugdenhil, GJ (febrero de 1995). Evaluación del rendimiento de la arquitectura multiprocesador Sylvan (Informe técnico). Universidad de Waterloo.
  17. 1 2 Booth, Kellogg S.; Schaeffer, Jonathan; Gentleman, W. Morven (febrero de 1984). Programación antropomórfica (PDF) . Departamento de Ciencias de la Computación de la Universidad de Waterloo (Informe técnico).
  18. Chubb, Lucy (1987). Un sistema operativo multiproceso para microcomputadoras de 16 bits (Informe técnico). Universidad de Nueva Gales del Sur, Facultad de Ingeniería Eléctrica e Informática.
  19. Comer, Douglas E.; Munson, Steven B (1988). Comunicación eficiente entre procesos mediante memoria compartida (Informe técnico). Departamento de Ciencias de la Computación de la Universidad de Purdue.
  20. 1 2 O'Sullivan, Bryan (13 de agosto de 1996). "Respuestas a preguntas frecuentes para comp.os.research: Parte 1 de 3 — 2.2.3. La historia de los hilos" . Departamento de Ciencias de la Computación de la Universidad de Albany .
  21. Fleisch, Brett D.; Co, Mark Allan A. (abril de 1997). Microkernel y sistema operativo en el entorno laboral: un estudio de caso (informe técnico). Departamento de Ciencias de la Computación, Universidad de California. CiteSeerX 10.1.1.46.7315 . 
  22. Appavoo, Jonathan. Optimización de sistemas operativos multiprocesador. Revisión de investigación de software (PDF) (Informe técnico). Departamento de Ciencias de la Computación de la Universidad de Boston.
  23. Depoutovitch, Alexandre (2011). Otherworld: Cómo dar a las aplicaciones la oportunidad de sobrevivir a fallos del núcleo del sistema operativo (PDF) (Informe técnico). Departamento de Informática de la Universidad de Toronto.
  24. Cowan, DD; Boswell, FD; Grove, TR (diciembre de 1984). Un servidor de archivos distribuido para una red de computadoras personales (PDF) . Departamento de Sistemas Informáticos de la Universidad de Waterloo (Informe técnico).
  25. Fonds, Wes Graham (5 de agosto de 1983). "Cronología: década de 1980: una década de expansión — 1981" . Universidad de Waterloo — Escuela de Ciencias de la Computación Cheriton .
  26. Tanner, PP; Buxton, W. (1985). Algunos problemas en el desarrollo de futuros sistemas de gestión de interfaces de usuario (UIMS) . Sistemas de gestión de interfaces de usuario. Berlín. págs. 67–79 . 
  27. Boyle, Patrick David (junio de 1982). El diseño de un núcleo distribuido para un sistema multiprocesador (tesis). Departamento de Ciencias de la Computación de la Universidad de Columbia Británica. doi : 10.14288/1.0051817 .
  28. Tevanian Jr., Avadis; Rashid, Richard F.; Golub, David B.; Black, David L.; Cooper, Eric; Young, Michael W. (agosto de 1987). Mach Threads and the Unix Kernel: The Battle for Control (Informe técnico). Departamento de Ciencias de la Computación, Universidad Carnegie-Mellon.
  29. Chakraborty, Pinaki (2010). "Sistemas operativos para fines de investigación: una amplia revisión" (PDF) . GESJ: Ciencias de la Computación y Telecomunicaciones (3): 147–160 . ISSN 1512-1232 . 
  30. Bin Shafaat, Ahmed; Xu, Shuxiang (26 de diciembre de 2017). "Un estudio comparativo de tecnologías desarrolladas desde la perspectiva de los sistemas operativos distribuidos" (PDF) . AMSE Journals: AMSE IIETA Publication: 2017-Series: Advances B. 60 ( 3): 613– 629.
  31. Burkowski, FJ; Cormack, GV; Dyment, JD; Pachl, JK (28 de febrero de 1987). «Una arquitectura basada en mensajes para alta concurrencia». En Heath, Michael T. (ed.). Hypercube Multiprocessors 1986. Society for Industrial & Applied Mathematics, EE. UU., págs. 27-37 . ISBN  978-0898712094.
  32. Beach, Richard J.; Beatty, John C.; Booth, Kellogg S.; Plebon, Darlene A.; Fiume, Eugene L. (julio de 1982). "El mensaje es el medio: Estructuración multiproceso de un programa de pintura interactivo" . ACM SIGGRAPH Computer Graphics . 16 (3). Association for Computing Machinery: 277–287 . doi : 10.1145/965145.801292 .
  33. Plebon, Darlene A.; Booth, Kellogg S. (1982). Sistema interactivo de creación de imágenes (PDF) (Informe técnico). Universidad de Waterloo.
  34. Watt, Stephen Michael (1985). Paralelismo acotado en álgebra computacional (PDF) (Informe técnico). Universidad de Waterloo.
  35. Schröder, W. Un entorno de comunicación y ejecución de procesos distribuidos para sistemas de aplicaciones de alto rendimiento (PDF) (Informe técnico). Universidad Técnica de Berlín.
  36. ^ van Dijk, GJW (1 de enero de 1993). El diseño del multiprocesador ejecutivo EMPS para informática distribuida (PDF) (Reporte técnico). Universidad Técnica de Eindhoven.
  37. Chan, Patrick P. (julio de 1984). Consideraciones de aprendizaje en el diseño de interfaces de usuario: el modelo de habitación (PDF) . Departamento de Ciencias de la Computación de la Universidad de Waterloo (Informe técnico).
  38. Pai, Vivek S.; Druschel, Peter; Zwaenepoel, Willy. Flash: Un servidor web eficiente y portátil (PDF) (Informe técnico). Departamento de Ciencias de la Computación de la Universidad Rice.
  39. "Aplicaciones integradas: tecnología para el mundo real" . El proyecto infraNET . 29 de mayo de 1998.
  40. Morris, James B. (febrero-abril de 1983). "Las potentes herramientas de QNX". PC Magazine . págs. 269-297 . 
  41. Advani, Prakash (14 de junio de 2001). "Una charla con Paul Leroux" . FreeOS.com .
  42. Oberle, Bonnie (30 de octubre de 1998). "Devolviendo el favor" . Imprint . Impring Publications, Waterloo. pág. 7. 
  43. Sager, Gary R.; Melber, John A.; Fong, Kenneth T. (enero de 1985). "Sistema 75: El sistema operativo Oryx/Pecos". AT&T Technical Journal . Vol. 64, n.º 1, págs. 251–268 . doi : 10.1002/j.1538-7305.1985.tb00431.x .   
  44. ^ Coppens, JAWM (agosto de 1988). Seguridad de la información en Redes de Área Local, especialmente en el Puerto de Waterloo (PDF) (Informe técnico). Universidad Técnica de Eindhoven.
  45. "Puerto - (Lenguaje informático)" . Enciclopedia histórica en línea de lenguajes de programación .
  46. "Puerto" . Diccionario informático de tecnología de la información .
  47. Rigney, Steve (abril de 1992). "Fundamentos de LAN Parte 2 — LANstep" . PC Magazine . pág. 316. 
  48. Nunn, Tom (24 de agosto de 1994). "Hayes intenta deshacerse del centro de investigación y desarrollo de Kitchener-Waterloo" . The Gazette . Montreal, QC, Canadá.
  49. Hitz, David; Harris, Guy; Lau, James K.; Schwartz, Allan M. (enero de 1990). Uso de Unix como un componente de un núcleo distribuido ligero para servidores de archivos multiprocesador (PDF) (Informe técnico). Auspex.
  50. Kopp, Carlo (junio de 1997). "¿Tostadoras valientes?" . Publicaciones de la industria del Dr. Carlo Kopps .
  51. Jerian, Charles P. "Página de inicio de Chuck: trabajé para CacheFlow Inc." . jerian.tripod.com .

Lecturas adicionales

  • Malcolm, Michael A.; Stafford, Gary J. (septiembre de 1977). El kit de escritura del ensamblador Thoth (PDF) . Departamento de Ciencias de la Computación de la Universidad de Waterloo (Informe técnico).
  • Cheriton, DR; Murphy, W. (septiembre de 1979). Manual del programador del sistema Verex (Informe técnico). Universidad de Columbia Británica.
  • Cheriton, David R. (1979). Diseño de un sistema operativo para que sea verificable (Informe técnico).
  • Cheriton, DR (septiembre de 1980). El núcleo Verex (Informe técnico). Universidad de Columbia Británica.
  • Cheriton, DR (noviembre de 1981). "El diseño de un núcleo distribuido". Actas de la Conferencia Nacional de la ACM .
  • Wallis, Peter JL (1982). Programación portátil . Macmillan. ISBN 0333310365.
  • Cheriton, David R. (1982). El sistema Thoth: estructuración multiproceso y portabilidad . North-Holland. ISBN 0-444-00701-6.
  • Malcolm, Michael Alexander; Dyment, Doug (diciembre de 1983). «Experiencia en el diseño de la interfaz de usuario del puerto de Waterloo». Actas del simposio ACM SIGSMALL de 1983 sobre ordenadores personales y pequeños - SIGSMALL '83 . págs. 168-175 . doi : 10.1145/800219.806664 . ISBN  0897911237. S2CID 14736242 .