CTSS
El CTSS o
Sistema de Tiempo Compartido Compatible fue un sistema
operativo de tiempo de
computo compartido desarrollado en 1961 en el MIT por un equipo interdisciplinario dirigido por
Fernando Jose Corbato.
CTSS fue pionero en la tecnica del computo de tiempo compartido. Como tal, fue muy influyente en el siguiente sistema operativo de este tipo, MULTICS, el cual incubo mediante compilacion cruzada.
Historia
CTSS fue inicialmente concebido para funcionar como material de investigacion y desarrollo piloto de distintas tecnicas que hicieran posible el concepto de computo de tiempo compartido utilizando un mainframe IBM 709 del MIT, equipamiento de computo no concebido para tales menesteres. A tal fin se logro la operacion de tres consolas de acceso local independientes en forma de teletipos Friden Flexowriter, a la vez que retenia compatibilidad con el antiguo modo de computo por lotes por el que era conocido el mainframe.
Para finales de 1961 se podia acceder a traves acceso telefonico de 110 baudios, lo que le permitia operar a lo largo del campus del MIT. A lo largo de los anos siguientes Louis Pouzin desarrollo un ejecutor de macros primigenio denominado RUNCOM, que permitia guionar la ejecucion de ordenes y automatizar trabajos.
Para 1963 las limitaciones del IBM 700 eran patentes e hicieron necesario llevar a cabo un replanteo del programa de computo del campus del MIT, basandolo ahora en el superior IBM 7094, provisto con aditamentos de memoria virtual y disco de tambor magnetico IBM 1301 solicitados al fabricante, a la vez que se disponian nuevas concepcios de software que dieran uso a dichas caracteristicas (equipo "Blue Machine"). Esto obligo a reescribir parte del codigo fuente, pero permitio el empleo de no menos de dos docenas de terminales IBM 1050 en simultaneo.
Para 1965 el CTSS estaba maduro, podia operar comodamente treinta usuarios en terminales IBM 2741 y hasta cincuenta usuarios con limitaciones de desempeno criticas. En este estado se lo empleo incubadora del equipo "Red Machine", un CTSS destinado especificamente a servir como incubadora del Proyecto MAC/MULTICS e inspirador de varios otros entornos distintos.
El proyecto de desarrollo alrededor de la IBM 7094 "Blue Machine" ceso en 1973.
Caracteristicas pioneras del sistema
- Memoria protegida, que permitia la abstraccion de maquinas virtuales;
- Aislamiento por software de los usuarios entre si a traves del nucleo de sistema operativo "supervisor".
- Sistema de archivaje para almacenamiento de ficheros de usuarios;
Como la maquina virtual de usuario daba soporte a la misma arquitectura y conjunto de instrucciones que la de la IBM 7094 original, el CTSS era capaz de utilizar la gran biblioteca de aplicaciones escritas originalmente en FORTRAN para el ambiente de trabajo por lotes que se utilizaba tanto en el MIT como en otras instituciones.
El mayor descubrimiento de CTSS fue la importancia de sistemas de archivado en linea y de la comparticion de ficheros. En la medida que se desarrollaba CTSS, ofrecio maneras para que sus usuarios nombraran y compartieran sus archivos en disco, a traves de "ficheros comunes" y enlaces simbolicos, y estas colecciones de datos compartidos en linea fueron la semilla de una comunidad que compartia la informacion.
El talon de Aquiles de estos sistemas operativos era su no portabilidad, lo que significaba que no podian ejecutarse en distintos modelos de mainframe sin tener que superar la tediosa y costosa tarea de reescribir todo el codigo.
Funcionamiento
El nucleo de sistema operativo SUPERVISOR de CTSS proveia hasta 30 "maquinas virtuales" cada una de las cuales representaba una IBM 7094. Una de estas maquinas virtuales constituia la maquina en segundo plano, y tenia acceso a las unidades de cinta. Las otras maquinas virtuales eran los usuarios en primer plano: estas maquinas virtuales podian correr codigo maquina regular de IBM 7094 a la velocidad de la 7094, y tambien podian ejecutar una instruccion extra no existente en la original, que invocaba un gran conjunto de servicios a nivel SUPERVISOR. Estos servicios incluian E/S de terminal y E/S de sistema de archivaje. Podian escribirse programas para el ambiente en primer plane en cualquier lenguaje de programacion disponible para la IBM 7094; y se proveian bibliotecas para permitir que lenguajes compilados como el MAD llamase a los servicios del supervisor. El CTSS proveia un sistema de archivaje que le daba a cada usuario registrado un directorio separado de ficheros de disco.
CTSS se denomino "compatible" en el sentido que el ambiente de compilacion de FORTRAN FMS era capaz de correr en el disco de tambor B como un usuario en segundo plano ("background") de forma casi tan eficiente como si lo hiciese en una maquina propia, a la vez que los programas compilados para el FMS podia cargarse y ejecutarse en el ambiente de tiempo de computo compartido en primer plano ("foreground") (con ciertas limitaciones).
Los trabajos en segundo plano podian acceder a algunas de las unidades de cinta y disponian de una imagen completa en el tambor de de 32KW. Esta funcionalidad permitio al Centro de Computacion transitar sin sobresaltos desde la modalidad de computo en lotes a la de computo a tiempo compartido, reteniendo en el proceso la capacidad de correr "mazos polvorientos de tarjetas perforadas" y software de otras instituciones.
Entre los programas destacables se encontraban el LOGIN para acceso al sistema, el compositor de textos TYPSET junto con el configurador de caracteres RUNOFF, uno de los primeros sistemas de composicion tipografica para uso documental y cientifico.
CTSS al principio contaba solo con un ensamblador, FAP, y el compilador MAD. El codigo FORTRAN II solo podia ser traducido por MAD usando MADTRN. Luego la mitad del sistema se fue reescrito en MAD. Luego se incluyeron otros lenguajes: COMIT II, LISP 1.4, y una version de ALGOL.
Video: Sistema de Tiempo Compartido CTSS (1963, CBS Television, EE.UU. (en ingles)
Ver tambien ITS