stringtranslate.com

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 fue desarrollado 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 varios trenes. [1] [2] [3]

En 1972, Stephen C. Johnson trajo a Waterloo el lenguaje de programación B , un derivado de BCPL , mientras estaba de licencia en Bell Labs . [4] En Waterloo se desarrolló un nuevo lenguaje derivado de B, llamado Eh . Thoth fue escrito originalmente en Eh con algo de lenguaje ensamblador . [5] [6]

El desarrollo inicial de Thoth se produjo en una computadora Honeywell 6050. [7] Se ejecutó por primera vez en una Data General Nova 2 en mayo de 1976, y luego se trasladó 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]

Posteriormente, Eh se actualizó, en parte con la incorporación de tipos de datos , y se renombró Zed . Luego, Thoth se reescribió en Zed. [9] [10] [11] [12] [13]

Uno de los primeros desarrolladores principales de Thoth fue David Cheriton . Cheriton desarrollaría más tarde el núcleo Verex y el sistema operativo V-System , ambos influenciados por Thoth. Otro de los primeros desarrolladores 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 fueron influenciados por él.

Ciertos artículos describen a DEMOS como la inspiración para Thoth. [14] Como técnica anterior, Cheriton citó el RC 4000 de Per Brinch Hansen , luego enumeró a Thoth, DEMOS y Accent juntos como desarrollos posteriores. [15] Otras influencias en el desarrollo de Thoth incluyeron Multics , 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 sincrónicos y estructura de programa multiproceso, que posteriormente se aplicaron en otros proyectos. [16] : 2 

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

Características

Thoth fue desarrollado para cumplir cuatro objetivos: [7]

  1. Fácilmente portátil a otro hardware [3]
  2. Los programas se ejecutan como un conjunto de procesos concurrentes , cooperativos y económicos, con comunicaciones entre procesos eficientes (IPC) [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 cumplir estos requisitos permitía incluir una computadora determinada en el Dominio Thoth de posibles objetivos del 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 livianos" o subprocesos de otros sistemas. [20] Los procesos que no son miembros del mismo equipo se comunican utilizando el IPC de Thoth.

La comunicación entre procesos en Thoth se logra principalmente mediante el paso sincrónico de mensajes. [7] Este enfoque simplificó enormemente la cola de mensajes. [21]

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

El sistema de transmisión de mensajes sincrónicos IPC de Thoth se prestó a la aplicación de un modelo de programación antropomórfica, basándose en el trabajo del modelo de actor de Carl Hewitt y de Smalltalk . [17]

Legado

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

Académico

Comercial

Referencias

  1. ^ "CS 452 Programación en tiempo real". Universidad de Waterloo, Escuela de Ciencias de la Computación Cheriton .
  2. ^ "CS 452/652 - Programación en tiempo real". Centro de informática de la Universidad de Waterloo .
  3. ^ ab Malcolm, Michael (24 de marzo de 2009). "24 de marzo de 2009: Serie de conferencias de Deloitte". Universidad de Waterloo, Instituto de Investigación Informática .
  4. ^ Ritchie, Dennis M. (abril de 1993). El desarrollo del lenguaje C (PDF) . Association for Computing Machinery. Archivado desde el original (PDF) el 24 de julio de 2015 . Consultado el 6 de octubre de 2020 .
  5. ^ abcde 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 de Eh (PDF) . Departamento de Ciencias de la Computación de la Universidad de Waterloo (informe técnico).
  7. ^ abcde 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) . Comunicaciones de la ACM . 22 (2): 105–115. doi :10.1145/359060.359074. S2CID  14350500.
  8. ^ Melen, Laurence S. (octubre de 1976). A Portable Real-Time Executive, 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 de usuarios de Unix de Australia . Vol. 14, núm. 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 Informáticas de la Universidad de Waterloo (informe técnico).
  12. ^ ab 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. ^ ab Cheriton, David R. (marzo de 1988). "El sistema distribuido V" (PDF) . Comunicaciones de la ACM . 31 (3): 314–333. doi :10.1145/42392.42400. S2CID  7523994.
  16. ^ ab Burkowski, Forbes J.; Clarke, Charles LA; Cowan, S. Crispin; Vreugdenhil, GJ (febrero de 1995). Evaluación del rendimiento de la arquitectura del multiprocesador Sylvan (informe técnico). Universidad de Waterloo.
  17. ^ ab Booth, Kellogg S.; Schaeffer, Jonathan; Gentleman, W. Morven (febrero de 1984). Programación antropomórfica (PDF) . Departamento de Ciencias Informáticas 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 New South Sales, Facultad de Ingeniería Eléctrica y Ciencias de la Computación.
  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. ^ ab 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 subprocesos". Departamento de Ciencias de la Computación de la Universidad de Albany .
  21. ^ Fleisch, Brett D.; Co, Mark Allan A. (abril de 1997). Workplace Microkernel and OS: A Case Study (Informe técnico). Departamento de Ciencias de la Computación, Universidad de California. CiteSeerX 10.1.1.46.7315 . 
  22. ^ Appavoo, Jonathan. Revisión de investigación de software para optimizar sistemas operativos multiprocesador (PDF) (informe técnico). Departamento de Ciencias de la Computación de la Universidad de Boston.
  23. ^ Depoutovitch, Alexandre (2011). Otherworld: cómo las aplicaciones pueden sobrevivir a los fallos del núcleo del sistema operativo (PDF) (informe técnico). Departamento de posgrado en Ciencias de la Computación 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 Cheriton de Ciencias de la Computación .
  26. ^ Tanner, PP; Buxton, W. (1985). Algunas cuestiones en el desarrollo de futuros sistemas de gestión de interfaz de usuario (UIMS). User Interface Management Systems. 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 con fines de investigación: una amplia encuesta" (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 las tecnologías desarrolladas en la perspectiva de los sistemas operativos distribuidos" (PDF) . Revistas AMSE: 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". Gráficos informáticos . Vol. 16, núm. 3. Association for Computing Machinery. págs. 277–287. doi :10.1145/965145.801292.
  33. ^ Plebon, Darlene A.; Booth, Kellogg S. (1982). Sistema de creación de imágenes interactivas (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). Technische Universität Berlin.
  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 sala (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". Pie de imprenta . Impring Publications, Waterloo. p. 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úm. 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ías 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 de las instalaciones 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 industriales del Dr. Carlo Kopps .
  51. ^ Jerian, Charles P. "Página de inicio de Chuck: trabajé para CacheFlow Inc". jerian.tripod.com .

Lectura adicional