El Sistema de tiempo compartido compatible ( CTSS ) fue el primer sistema operativo de tiempo compartido de propósito general . [2] [3] Tiempo compartido compatible se refería al tiempo compartido que era compatible con el procesamiento por lotes ; podría ofrecer tiempo compartido y procesamiento por lotes simultáneamente.
CTSS fue desarrollado 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 fue reemplazado por un IBM 7090 modificado en 1962 y más tarde por un IBM 7094 modificado llamado "máquina azul" para distinguirlo del Proyecto MAC CTSS IBM 7094. Servicio de rutina para Los usuarios del MIT Comp Center comenzaron en el verano de 1963 y estuvieron en funcionamiento 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ó desde el principio en el Proyecto MAC hasta 1969, cuando la máquina roja se trasladó al Centro de Procesamiento de Información [4] y funcionó hasta julio. 20, 1973. CTSS funcionó sólo en esas dos máquinas; sin embargo, había usuarios remotos de CTSS fuera del MIT, incluidos los de California, América del Sur, la Universidad de Edimburgo y la Universidad de Oxford . [ 15]
John Backus dijo en la sesión de verano de 1954 en el MIT que "al compartir el tiempo, una computadora grande podría usarse como varias computadoras pequeñas; sería necesario haber una estación de lectura para cada usuario". [6] Los ordenadores de aquella época, como el IBM 704 , no eran lo suficientemente potentes para implementar dicho sistema, pero a finales de 1958, el Centro de Computación del MIT añadió 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 tiempo compartido con otros programas que utilizan la máquina simultáneamente". [7]
En junio de 1959, Christopher Strachey publicó un artículo "Tiempo compartido en grandes computadoras rápidas" en la Conferencia de Procesamiento de Información de la UNESCO en París, donde imaginaba a un programador depurando un programa en una consola (como un teletipo ) conectada a la computadora, mientras otro programa se estaba ejecutando en la computadora 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 tomaba un día desde el envío de un código modificado hasta la obtención de los resultados. John McCarthy escribió un memorando al respecto en el MIT, tras lo cual se estableció en el MIT un comité de estudio preliminar y un comité de trabajo para desarrollar el tiempo compartido. Los comités previeron que muchos usuarios usaran la computadora al mismo tiempo, decidieron los detalles de la implementación de dicho sistema en el MIT y comenzaron el desarrollo del sistema.
En julio de 1961 [10] algunos comandos de tiempo compartido habían entrado en funcionamiento en el IBM 709 del Centro de Computación, 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 Spring Joint Computer Conference . [11] Robert C. Daley, Peter R. Bos y al menos otros 6 programadores implementaron el sistema operativo, en parte basado en Fortran Monitor System .
El sistema utilizaba un IBM 7090 , modificado por Herbert M. Teager, al que se le agregaron 3 Flexowriters 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 la memoria). También había una unidad de cintas para los comandos del sistema, no había unidades de disco. La memoria era de 27 mil palabras (palabras de 36 bits) para los usuarios y de 5 mil palabras para el supervisor (sistema operativo). La entrada de las consolas se escribía en los buffers del supervisor, mediante interrupciones , y cuando se recibía un carácter de retorno , se le daba el control 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 iniciar sesión, cerrar sesión, ingresar, editar, fap, mad, madtrn, cargar, usar, iniciar, skippm, listf, printf, xdump y xundump . [ cita necesaria ]
Esta se convirtió en la versión inicial del Sistema de Tiempo Compartido Compatible. Al parecer, ésta fue la primera demostración pública de tiempo compartido ; Hay otras afirmaciones, pero se refieren a sistemas de propósito especial o sin artículos conocidos publicados. La "compatibilidad" de CTSS era con trabajos en segundo plano ejecutados en la misma computadora, que generalmente usaban más recursos informáticos que las funciones de tiempo compartido.
La primera versión del software de traducción braille DOTSYS se ejecutaba en CTSS y podía enviarse a una impresora de páginas braille 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 informática comercial, dos años más tarde se utilizó una versión de DOTSYS sin dependencias CTSS para la portabilidad del software en un IBM 709 en la American Printing House for the Blind. imprimir la primera edición en braille de un libro producido a partir de teletipos, sólo unas semanas después de la versión impresa en tinta. [15] Al año siguiente, en CTSS, se mostró una demostración de la impresión de tablas matemáticas en braille. Se escribió un breve programa FORTRAN II para producir una tabla de conversión de pulgadas a milímetros en braille mediante la impresora de páginas braille BRAILLEMBOSS. [dieciséis]
El sistema de recuperación Intrex se ejecutó en CTSS. Intrex era un sistema de recuperación y almacenamiento bibliográfico experimental, de modelo piloto, orientado a máquina, 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 utilizó una computadora central IBM 7090 modificada que tenía dos bancos de palabras de 32,768 (32K) y 36 bits de memoria central en lugar de la configuración predeterminada que proporciona solo uno. [27] Un banco estaba reservado para el programa de supervisión del tiempo compartido y el otro para los programas de usuario. CTSS tenía un núcleo en modo protegido, las funciones de supervisión en el núcleo A (banco de memoria A) sólo podían llamarse mediante interrupciones de software, como en los sistemas operativos modernos. Las interrupciones de software se utilizaron para provocar interrupciones de protección de memoria. [8] La programación de la asignación del procesador con una unidad de tiempo cuántica de 200 ms se controló mediante una cola de retroalimentación multinivel . [27] También tenía algún hardware especial de administración de memoria, una interrupción del reloj y la capacidad de atrapar ciertas instrucciones.
CTSS al principio sólo tenía un ensamblador, FAP , y un compilador, MAD. Además, el código Fortran II podría traducirse a código MAD utilizando MADTRN. Posteriormente la mitad del sistema fue escrita en MAD. Posteriormente hubo otros lenguajes de programación incluyendo COMIT II , LISP 1.5 y una versión de ALGOL .
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 el sistema posterior. 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 podrían vincularse simbólicamente entre directorios. Un listado de directorio por listf :
10 ARCHIVOS 20 PISTAS UTILIZADASFECHA NOMBRE MODO NO. PISTAS20/05/63 MAD PRINCIPAL P 1517/05/63 DPFA SIMTB P 117/05/63 DPFA BSS P 117/05/63 DPFA FAP P 2
El hardware de entrada y salida era en su mayoría periféricos estándar de IBM . Estos incluían seis canales de datos que se conectaban a:
CTSS se describió en un artículo presentado en la Spring Joint Computer Conference de 1962 e influyó en gran medida en el diseño de otros primeros sistemas de tiempo compartido.
Maurice Wilkes fue testigo del CTSS y el diseño del Titan Supervisor se inspiró en ello. [29] [30]
Dennis Ritchie escribió en 1977 que UNIX podría verse como una "implementación moderna" de CTSS. [31] 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 producido por personas que no estaban de acuerdo con la dirección tomada por CTSS y, más tarde, por Multics; el nombre era una parodia de "CTSS", como más tarde el nombre "Unix" fue una parodia de "Multics". [32] 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 con una longitud máxima de seis caracteres. Ambos admiten archivos vinculados. [5]
Estaba usando CTSS, el primer sistema de tiempo compartido.
Gran parte del desarrollo inicial en el campo del tiempo compartido tuvo lugar en los campus universitarios.
8
Ejemplos notables son el CTSS (Compatible Time-Sharing System) del MIT, que fue el primer sistema de tiempo compartido de propósito general...
Estaba en marcha el programa de software modular para traducción braille y gestión automática de modos de entrada y salida, posteriormente denominado "DOTSYS"...
Demostración sobre CTSS del sistema Braille desde teletipo hasta grado 2
Estos programas, originalmente escritos para operar en el sistema CTSS del MIT, fueron modificados para el 709 en la American Printing House for the Blind.
Esto implicó reescribir aquellas partes de los programas que dependían de CTSS.
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.
El concepto básico de enviar mensajes instantáneos a usuarios registrados surgió con... CTSS...
Las instalaciones de la consola incluyen proyección de hardware de dibujos lineales tridimensionales, seguimiento automático de lápiz óptico y un conjunto flexible de entradas de perillas, interruptores y pulsadores.
La consola está conectada al sistema de tiempo compartido compatible Project MAC IBM 7094, ya sea directamente o mediante una computadora PDP-7.
Sir Maurice, como se le conoce hoy, se inspiró en CTSS para crear un sistema de tiempo compartido.
Maurice Wilkes descubrió CTSS en una visita al MIT alrededor de 1965 y regresó a Cambridge para convencernos al resto de nosotros de que el tiempo compartido era el camino a seguir.