El Sistema de Tiempo Compartido Compatible ( CTSS ) fue el primer sistema operativo de tiempo compartido de propósito general . [2] [3] El tiempo compartido compatible se refería al tiempo compartido que era compatible con el procesamiento por lotes ; podía ofrecer tiempo compartido y procesamiento por lotes simultáneamente.
CTSS se desarrolló en el Centro de Computación del MIT ("Comp Center"). CTSS se demostró por primera vez en el IBM 709 modificado del MIT en noviembre de 1961. El hardware se reemplazó por un IBM 7090 modificado en 1962 y más tarde por un IBM 7094 modificado llamado "máquina azul" para distinguirlo del IBM 7094 CTSS del Proyecto MAC. El servicio de rutina para los usuarios del Centro de Computación del MIT comenzó en el verano de 1963 y se operó allí hasta 1968.
Una segunda implementación de CTSS en un IBM 7094 separado que se recibió en octubre de 1963 (la "máquina roja") se utilizó al principio del Proyecto MAC hasta 1969, cuando la máquina roja se trasladó al Centro de procesamiento de información [4] y funcionó hasta el 20 de julio de 1973. CTSS se ejecutó solo en esas dos máquinas; sin embargo, hubo usuarios remotos de CTSS fuera del MIT, incluidos los de California, Sudamérica, la Universidad de Edimburgo y la Universidad de Oxford . [1] [5]
Historia
John Backus dijo en la sesión de verano de 1954 en el MIT que "Mediante el uso compartido del tiempo, una computadora grande podría ser utilizada como varias pequeñas; sería necesario que hubiera una estación de lectura para cada usuario". [6] Las computadoras de esa época, como la IBM 704 , no eran lo suficientemente potentes como para implementar dicho sistema, pero a fines de 1958, el Centro de Computación del MIT agregó una entrada de máquina de escribir a su 704 con la intención de que un programador u operador pudiera "obtener respuestas adicionales de la máquina en una base de tiempo compartido con otros programas que usaran la máquina simultáneamente". [7]
En junio de 1959, Christopher Strachey publicó un artículo titulado "Time Sharing in Large Fast Computers" (Compartir el tiempo en ordenadores grandes y rápidos) en la Conferencia de Procesamiento de la Información de la UNESCO en París, donde imaginaba a un programador depurando un programa en una consola (como un teletipo ) conectada al ordenador, mientras otro programa se ejecutaba en el ordenador al mismo tiempo. [8] [9] La depuración de programas era un problema importante en ese momento, porque con el procesamiento por lotes, a menudo se tardaba un día desde que se enviaba un código modificado hasta que se obtenían los resultados. John McCarthy escribió un memorando sobre eso en el MIT, después de lo cual se estableció un comité de estudio preliminar y un comité de trabajo en el MIT, para desarrollar el tiempo compartido. Los comités previeron que muchos usuarios usaran el ordenador al mismo tiempo, decidieron los detalles de la implementación de dicho sistema en el MIT y comenzaron el desarrollo del sistema.
Sistema experimental de tiempo compartido
En julio de 1961 [10] algunos comandos de tiempo compartido ya estaban operativos en el IBM 709 del Centro de Cálculo, y en noviembre de 1961, Fernando J. Corbató demostró en el MIT lo que se llamó el Sistema Experimental de Tiempo Compartido . El 3 de mayo de 1962, FJ Corbató, MM Daggett y RC Daley publicaron un artículo sobre ese sistema en la Conferencia Conjunta de Computación de Primavera . [11] Robert C. Daley, Peter R. Bos y al menos otros 6 programadores implementaron el sistema operativo, basado en parte en el Fortran Monitor System .
El sistema utilizaba un IBM 7090 , modificado por Herbert M. Teager, con 3 Flexowriters añadidos para las consolas de usuario, y tal vez un temporizador . Cada uno de los 3 usuarios tenía dos unidades de cinta , una para el directorio de archivos del usuario y otra para volcar el núcleo (programa en memoria). También había una unidad de cinta para los comandos del sistema, no había unidades de disco. La memoria era de 27 k palabras (palabras de 36 bits) para los usuarios y 5 k palabras para el supervisor (sistema operativo). La entrada de las consolas se escribía en los búferes del supervisor, mediante interrupciones , y cuando se recibía un carácter de retorno , el control se le daba al supervisor, que volcaba el código en ejecución en la cinta y decidía qué ejecutar a continuación. Los comandos de consola implementados en ese momento eran login, logout, input, edit, fap, mad, madtrn, load, use, start, skippm, listf, printf, xdump y xundump . [ cita requerida ]
Esta se convirtió en la versión inicial del Sistema de Tiempo Compartido Compatible. Aparentemente, fue la primera demostración pública de tiempo compartido ; existen otras afirmaciones, pero se refieren a sistemas de propósito especial o a los que no se les ha publicado ningún artículo. La "compatibilidad" del CTSS se daba con trabajos en segundo plano ejecutados en la misma computadora, que generalmente utilizaban más recursos computacionales que las funciones de tiempo compartido.
Aplicaciones
DOTSYS y BRAILLEMBOSS
La primera versión del software de traducción braille DOTSYS se ejecutó en CTSS y podía imprimir páginas braille en una impresora BRAILLEMBOSS. [12] [13] DOTSYS en CTSS se demostró por primera vez el 18 de agosto de 1966, como parte de un estudio de viabilidad en el que la cinta de teletipo, en forma de noticias, se convirtió a Braille de Grado 2. El mes siguiente se demostró con éxito la viabilidad de convertir la información de los libros de texto en cinta de teletipo a Braille de Grado 2 sin errores. [14] Como MIT CTSS era un sistema académico, un vehículo de investigación y no un sistema para computación comercial, dos años después se utilizó una versión de DOTSYS despojada de las dependencias de CTSS para la portabilidad del software en un IBM 709 en la American Printing House for the Blind para imprimir la primera edición en braille de un libro producido a partir de la entrada de teletipo, solo unas semanas después de la versión de impresión en tinta. [15] El año siguiente, en CTSS, se mostró una demostración de impresión de tablas matemáticas en braille. Se escribió un programa corto en FORTRAN II para producir una tabla de conversión de pulgadas a milímetros en braille a través de la impresora de páginas braille BRAILLEMBOSS. [16]
Intrex
El sistema de recuperación Intrex funcionaba con CTSS. Intrex era un sistema piloto experimental de almacenamiento y recuperación bibliográfica orientado a máquinas con una base de datos que almacenaba un catálogo de aproximadamente 15.000 artículos de revistas. Se utilizó para desarrollar y probar conceptos para la automatización de bibliotecas. [17] [18] [19] Una implementación de tres consolas BRISC CRT para pruebas en la Biblioteca de Ingeniería del MIT demostró que era preferible a otros dos sistemas, ARDS y DATEL. [20]
CTSS fue el primer sistema informático que implementó el inicio de sesión con contraseña . [21] [22]
CTSS tenía una de las primeras utilidades computarizadas de edición y formato de texto, llamada TYPSET y RUNOFF (los sucesores de MEMO, MODIFY y DITTO).
CTSS tuvo una de las primeras implementaciones de mensajería entre usuarios, siendo pionero en el correo electrónico . [23]
Louis Pouzin, miembro del personal del Centro de Computación del MIT, creó para CTSS un comando llamado RUNCOM , que ejecutaba una lista de comandos contenidos en un archivo. [1] RUNCOM también preveía la sustitución de parámetros. [5] Más tarde creó un diseño para el shell Multics que fue implementado por Glenda Schroeder, que a su vez inspiró los scripts de shell de Unix . [25] [26]
CTSS tenía una implementación del editor de texto QED , el predecesor de ed , vi y vim , con expresiones regulares agregadas por Ken Thompson .
Implementación
Núcleo
CTSS utilizaba una computadora mainframe IBM 7090 modificada [27] que tenía dos bancos de 32.768 (32K) palabras de 36 bits de memoria central en lugar de la configuración predeterminada que proporciona solo uno. [28] [29] Un banco estaba reservado para el programa de supervisión de tiempo compartido, el otro para programas de usuario. CTSS tenía un núcleo en modo protegido; las funciones del supervisor en el núcleo A (banco de memoria A) solo podían ser llamadas por interrupciones de software, como en los sistemas operativos modernos. Las interrupciones de protección de memoria se usaban para las interrupciones de software. [8] La programación de la asignación de procesadores con una unidad de tiempo cuántico de 200 ms, estaba controlada por una cola de retroalimentación multinivel . [28] También tenía un hardware especial de gestión de memoria, [30] una interrupción de reloj, [31] y la capacidad de atrapar ciertas instrucciones. [30]
Subrutinas de supervisor
RDFLXA – Leer una línea de entrada desde la consola
WRFLX – Escribe una línea de salida en la consola
MUERTO – Pone al usuario en estado muerto, sin ningún programa en la memoria
DORMNT – Pone al usuario en estado inactivo, con el programa en la memoria
GETMEM – Obtener el tamaño de la asignación de memoria
SETMEM – Establece el tamaño de la asignación de memoria
TSSFIL – Obtenga acceso a los archivos del sistema CTSS en el disco
USRFIL – Volver al directorio propio del usuario
GETBRK – Obtener el contador de ubicación de instrucciones al salir
Lenguajes de programación
Al principio, CTSS solo tenía un ensamblador, FAP , y un compilador, MAD. Además, el código Fortran II se podía traducir a código MAD utilizando MADTRN. Más tarde, la mitad del sistema se escribió en MAD. Más tarde aparecieron otros lenguajes de programación, entre ellos COMIT II , LISP 1.5 y una versión de ALGOL .
Sistema de archivos
Cada usuario tenía su propio directorio , y también había directorios compartidos para grupos de personas con el mismo "número de problema". Cada archivo tenía dos nombres, el segundo indicaba su tipo, al igual que la extensión en sistemas posteriores. Al principio, cada archivo podía tener uno de cuatro modos: temporal, permanente, clase 1 de solo lectura y clase 2 de solo lectura. La clase 1 de solo lectura permitía al usuario cambiar el modo del archivo. Los archivos también podían estar vinculados simbólicamente entre directorios. Un listado de directorios de listf :
10 ARCHIVOS 20 PISTAS UTILIZADASFECHA NOMBRE MODO NÚMERO PISTAS20/05/63 PRINCIPAL MAD P 1517/05/63 DPFA SYMTB P117/05/63 DPFA BSS P117/05/63 DPFA FAP P2
Periféricos
El hardware de entrada y salida estaba compuesto principalmente por periféricos IBM estándar . Estos incluían seis canales de datos que se conectaban a:
Una memoria de tambor IBM 7320 con 186 000 palabras que podía cargar un banco de memoria de 32 000 palabras en un segundo (posteriormente se actualizó a 0,25 segundos)
Dos pantallas de gráficos vectoriales personalizadas de alta velocidad [32]
Una unidad de control de transmisión IBM 7750 capaz de soportar hasta 112 terminales de teleimpresora , incluyendo IBM 1050 Selectrics y Model 35s . Algunas de las terminales estaban ubicadas de forma remota y se podía acceder al sistema utilizando las redes públicas Telex y TWX .
Dennis Ritchie escribió en 1977 que UNIX podría ser visto como una "implementación moderna" de CTSS. [35] Multics, que también fue desarrollado por el Proyecto MAC, se inició en la década de 1960 como sucesor de CTSS y, a su vez, inspiró el desarrollo de Unix en 1969. Uno de los términos técnicos heredados por estos sistemas de CTSS es daemon .
El sistema de tiempo compartido incompatible (ITS), otro de los primeros, revolucionarios e influyentes sistemas de tiempo compartido del MIT, fue creado por personas que no estaban de acuerdo con la dirección que tomó CTSS y, más tarde, Multics; el nombre era una parodia de "CTSS", como más tarde el nombre "Unix" fue una parodia de "Multics". [36] Los sistemas de archivos CTSS e ITS tienen varios elementos de diseño en común. Ambos tienen un MFD (directorio de archivos maestro) y uno o más UFD (directorios de archivos de usuario). Ninguno de ellos tiene directorios anidados (subdirectorios). Ambos tienen nombres de archivo que constan de dos nombres que tienen un máximo de seis caracteres de longitud. Ambos admiten archivos vinculados. [5]
^ abcd Walden, David; Van Vleck, Tom , eds. (2011). "Sistema de tiempo compartido compatible (1961-1973): panorama conmemorativo del quincuagésimo aniversario" (PDF) . IEEE Computer Society. Archivado (PDF) del original el 9 de octubre de 2022 . Consultado el 20 de febrero de 2022 .
^ Noren, Allen (10 de abril de 2009). "Una entrevista con Brian Kernighan: criando pequeños lenguajes". Comunidad O'Reilly . Archivado desde el original el 30 de junio de 2017. Consultado el 28 de julio de 2023. Estaba usando CTSS, el primer sistema de tiempo compartido .
^ Singh, Jai P.; Morgan, Robert P. (octubre de 1971). Utilización de computadoras educativas y comunicaciones por computadora (PDF) (informe). St. Louis, MO: Washington University. pág. 13. National Aeronautics and Space Administration Grant No. Y/NGL-26-008-054. Archivado (PDF) del original el 19 de marzo de 2023 . Consultado el 8 de marzo de 2022 . Gran parte del desarrollo inicial en el campo del tiempo compartido tuvo lugar en los campus universitarios. 8 Ejemplos notables son el CTSS (sistema de tiempo compartido compatible) en el MIT, que fue el primer sistema de tiempo compartido de propósito general...
^ "Hoy se inaugurará un nuevo centro de información en el MIT". The New York Times . 11 de noviembre de 1968.
^ abc Crisman, Patricia A., ed. (31 de diciembre de 1969). The Compatible Time-Sharing System, A Programmer's Guide (PDF) (Segunda ed.). The MIT Computation Center. Archivado (PDF) del original el 25 de junio de 2024. Consultado el 10 de marzo de 2022 .
^ Backus, John (1954). Técnicas avanzadas de codificación por ordenador digital (PDF) . MIT. pp. 16-2–16-3.La primera descripción conocida de tiempo compartido de computadora.
^ Informe de progreso número 4 de las actividades de investigación y educación en computación por máquina de los colegios cooperadores de Nueva Inglaterra (informe). Diciembre de 1958.
^ ab FJ Corbató; MM Daggett; RC Daley; RJ Creasy; JD Hellwig; RH Orenstein; LK Korn (1963). El sistema de tiempo compartido compatible. Guía del programador (PDF) . MIT Press. ISBN978-0-262-03008-3Archivado (PDF) del original el 27 de mayo de 2012. Consultado el 4 de febrero de 2007 .Describe el sistema y sus comandos.
^ John McCarthy (1983). "Reminiscencias sobre la historia del tiempo compartido". Universidad de Stanford .
^ Informe de progreso número 9 de las actividades de investigación y educación en computación por máquina de los colegios cooperadores de Nueva Inglaterra (informe). Julio de 1961.
^ Corbató, Fernando J.; Merwin Daggett, Marjorie; Daley, Robert C. (3 de mayo de 1962). «Un sistema experimental de tiempo compartido». Archivado desde el original el 6 de septiembre de 2009. Consultado el 25 de febrero de 2022 .
^ Mann, Robert W (octubre de 1986). "Perspectivas seleccionadas sobre un cuarto de siglo de ingeniería de rehabilitación". Revista de investigación y desarrollo de rehabilitación . 23 (4): 1–6. PMID 3820117. Archivado desde el original el 20 de septiembre de 2023. Consultado el 13 de marzo de 2022. El programa de software modular para la traducción braille y la gestión automática de los modos de entrada y salida, posteriormente llamado "DOTSYS", estaba en marcha...
^ Dalrymple, George F. (26 de febrero de 1973). "Informe final sobre el desarrollo y la demostración de sistemas de comunicación para ciegos y sordociegos. Terminales de comunicación en Braille y sistemas de búsqueda táctil" (PDF) . Centro de desarrollo y evaluación de ayudas sensoriales, Instituto Tecnológico de Massachusetts. Archivado (PDF) del original el 25 de junio de 2024. Consultado el 13 de marzo de 2022 .
^ Evaluación y desarrollo de dispositivos y ayudas sensoriales. Informe final (PDF) (Informe). Centro de evaluación y desarrollo de ayudas sensoriales, Instituto Tecnológico de Massachusetts. 3 de abril de 1967. Archivado (PDF) del original el 25 de junio de 2024. Consultado el 13 de marzo de 2022. Demostración en CTSS de Braille de grado 2 con teletipo
^ Informe final para la Administración de Rehabilitación Social Departamento de Salud, Educación y Bienestar Washington, DC (PDF) (Informe). Centro de Desarrollo y Evaluación de Ayudas Sensoriales Instituto Tecnológico de Massachusetts. 30 de abril de 1969. Consultado el 13 de marzo de 2022. Estos programas, escritos originalmente para funcionar en el sistema CTSS del MIT, se modificaron para el 709 en la American Printing House for the Blind. Esto implicó reescribir aquellas partes de los programas que dependían del CTSS.
^ Tabla de conversión de pulgadas a milímetros, tabla matemática generada por computadora en Braille (PDF) (informe). Centro de evaluación y desarrollo de ayudas sensoriales, Instituto Tecnológico de Massachusetts. 14 de agosto de 1970. Consultado el 13 de marzo de 2022 .
^ Overhage, Carl FJ (1971). Proyecto Intrex: una breve descripción (PDF) . ERIC (Informe). MIT . Consultado el 8 de marzo de 2022 .
^ Kehr, James E. (septiembre de 1972). Intrex Buffer-Controller Display System Operation and Software (PDF) . ERIC (Informe). MIT. Archivado (PDF) del original el 25 de junio de 2024 . Consultado el 8 de marzo de 2022 .
^ Hurlburt, Charles E. (15 de septiembre de 1971). The Intrex Retrieval System Software (PDF) . ERIC (Informe). MIT. Archivado (PDF) del original el 25 de junio de 2024. Consultado el 8 de marzo de 2022 .
^ Overhage, Carl FJ (15 de marzo de 1972). Proyecto Intrex. Informe semestral de actividad, 15 de septiembre de 1971 - 15 de marzo de 1972 (PDF) . ERIC (Informe). MIT. Intrex PR-13. Archivado (PDF) del original el 25 de junio de 2024. Consultado el 17 de marzo de 2022. Desde el 27 de septiembre de 1971 , el BRISC ha estado disponible en la estación de la Biblioteca de Ingeniería dos horas al día.
^ McMillan, Robert (27 de enero de 2012). «¿La primera contraseña de ordenador del mundo? También era inútil». Revista Wired . Archivado desde el original el 25 de junio de 2024. Consultado el 22 de marzo de 2019 .
^ Hunt, Troy (26 de julio de 2017). «Passwords Evolved: Authentication Guidance for the Modern Era» (Las contraseñas evolucionaron: guía de autenticación para la era moderna) . Consultado el 22 de marzo de 2019 .
^ Fetter, Mirko (2019). Nuevos conceptos de presencia y disponibilidad en computación ubicua y móvil. University of Bamberg Press. p. 38. ISBN978-3-86309-623-6. Archivado desde el original el 25 de junio de 2024 . Consultado el 19 de marzo de 2023 . El concepto básico de enviar mensajes instantáneos a usuarios registrados llegó con... CTSS...
^ Pouzin, Louis . «El origen de la concha». Multicians . Archivado desde el original el 21 de diciembre de 2017. Consultado el 17 de febrero de 2022 .
^ "Documentos que describen hardware especial para CTSS". Archivado desde el original el 25 de junio de 2024. Consultado el 21 de abril de 2024 .
^ ab Silberschatz, Abraham; Peterson, James L. (junio de 1988). "13: Perspectiva histórica". Conceptos de sistemas operativos . Addison-Wesley. pág. 514. ISBN0-201-18760-4.
^ IBM 7090 y 7094 Sistemas de procesamiento de datos Almacenamiento adicional en el núcleo - RPO E02120 (7090) Dr RPO E15724 (7094) (PDF) . Boletín de características especiales de los sistemas. IBM. L22-6636-1.
^ ab IBM 7090-7094 Paquete de multiprogramación RPO E07291 (7090) o RPO 880287 (7094) (PDF) . Boletín de características especiales de sistemas. IBM. L22-6641-3.
^ Reloj de almacenamiento central y temporizador de intervalos - RPO FB9349 (PDF) . Boletín de características especiales de sistemas. IBM. L22-6554-1. Archivado (PDF) desde el original el 8 de abril de 2023 . Consultado el 21 de abril de 2024 .
^ Thornhill, DE; Stoz, RH; Ross, TT; Ward, JE (1968). "Un sistema integrado de hardware y software para gráficos de computadora en tiempo compartido" (PDF) . Proyecto MAC del MIT. ESL-R-356 y MAC-TR-56 . Consultado el 20 de febrero de 2022. Las funciones de la consola incluyen proyección de hardware de dibujos lineales tridimensionales, seguimiento automático con lápiz óptico y un conjunto flexible de entradas de perilla, interruptor y botón pulsador. La consola está conectada al sistema de tiempo compartido compatible con IBM 7094 del Proyecto MAC, ya sea directamente o a través de una computadora PDP-7.
^ Hartley, David (2004). "La influencia de los titanes". Computer Systems . Springer. págs. 103–108. CiteSeerX 10.1.1.14.9546 . ISBN978-0-387-21821-2Sir Maurice, como se le conoce hoy, se había inspirado en CTSS para crear un sistema de tiempo compartido .
^ Fraser, Sandy (2004). "Una conexión histórica entre el tiempo compartido y los circuitos virtuales". Computer Systems . Springer. págs. 85–88. CiteSeerX 10.1.1.14.9546 . ISBN978-0-387-21821-2Maurice Wilkes descubrió CTSS en una visita al MIT en 1965 aproximadamente, y regresó a Cambridge para convencer al resto de nosotros de que el tiempo compartido era el camino a seguir.
^ Ritchie, Dennis M. (1977). El sistema de tiempo compartido Unix: una retrospectiva (PDF) . Décima Conferencia Internacional de Hawái sobre Ciencias de Sistemas. Archivado (PDF) desde el original el 2022-10-09 . Consultado el 2022-02-19 .
^ Levy, Steven (2010). "Ganadores y perdedores". Hackers: Héroes de la revolución informática - Edición del 25.º aniversario (1.ª ed.). Sebastopol, California: O'Reilly Media. pp. 85–102. ISBN978-1-4493-8839-3.
Lectura adicional
Fano, Robert M. (1964). "El sistema MAC: un informe de progreso" (PDF) . BitSavers.Informatik.Uni-Stuttgart.de . Proyecto MAC del MIT.
Saltzer, Jerome H. (1965). "Notas técnicas de CTSS" (PDF) . BitSavers.Informatik.Uni-Stuttgart.de . Proyecto MAC del MIT.
Saltzer, Jerome H. (1964). "Mecanografía y edición de manuscritos". Web.MIT.edu . Centro de Computación del MIT.
Enlaces externos
Entrevista de historia oral con John McCarthy, Instituto Charles Babbage , Universidad de Minnesota. Se analizan los avances informáticos en el MIT, incluido el tiempo compartido.
Entrevista de historia oral con Fernando J. Corbató, Instituto Charles Babbage , Universidad de Minnesota. Se analizan muchos avances informáticos en el MIT, incluido el CTSS.
Entrevista de historia oral con Robert M. Fano, Instituto Charles Babbage, Universidad de Minnesota. Se analizan los avances informáticos en el MIT, incluido el CTSS.
El IBM 7094 y el CTSS: memorias personales de Tom Van Vleck , un programador de sistemas en CTSS
Versión fuente del CTSS MIT8C0 en la colección de Paul Pierce.
Soporte para IBM 7094 de Dave Pitts: incluye un simulador sin licencia , un ensamblador cruzado y un enlazador que se pueden usar para crear y ejecutar CTSS.
Fuentes y binarios de CTSS de Richard Cornwell, que se ejecutan en SIMH . Incluye herramientas sin licencia
CIO: 40 años de Multics, 1969-2009 Archivado 2018-06-23 en Wayback Machine : Entrevista con el desarrollador de CTSS y Multics Fernando J. Corbato.