Incompatible Timesharing System
Incompatible Timesharing System o ITS (en español sistema de tiempo compartido incompatible) fue uno de los primeros, revolucionario, e influyente sistema operativo de tiempo compartido desarrollado en el MIT; se desarrolló principalmente en el Laboratorio de Inteligencia Artificial del MIT, con alguna ayuda del Proyecto MAC.
El desarrollo de ITS se inició al final de la década de 1960 por aquellos (la mayoría del Laboratorio de Inteligencia Artificial del MIT por aquel entonces) que no estaban de acuerdo con la dirección tomada por el proyecto Multics del Proyecto MAC (que comenzó a mediados de la década de 1960), particularmente con decisiones como la inclusión de un potente sistema de seguridad. El nombre fue un hack del anterior sistema operativo de tiempo compartido del MIT, el CTSS, que data de los inicios de la década de 1960.
ITS inicialmente fue desarrollado para el ordenador Digital Equipment Corporation PDP-6, y después se migró a PDP-10 cuando estuvo disponible, donde ocurrió la mayor parte de su desarrollo y empleo.
En la cima de las numerosas e interesantes características de ITS, se encuentra el intérprete de comandos que era un depurador de lenguaje máquina PDP-10, cuyos comandos parecían una línea ruidosa a los no iniciados.
Su editor principal por muchos años, TECO, fue programado en una jerga de aspecto similar. El editor EMACS es un descendiente de una colección de macros TECO, mucho más desarrolladas.
Entre otros significantes e influyentes subsistemas software que fueron desarrollados en ITS, el sistema de álgebra simbólica Macsyma es probablemente el más importante; el sistema de ayuda GNU INFO utilizado en Linux, algunas versiones de Unix, y Emacs también se inició en ITS.
Características técnicas relevantes
editarITS fue un sistema operativo con muchas características revolucionarias; entre las que se encuentran:
- Tuvo la primera salida a terminal gráfico independiente del dispositivo; los programas generaban comandos que controlaban el contenido en la pantalla, que el sistema automáticamente traducía en las secuencias de caracteres adecuadas para el tipo de terminal utilizado por el usuario.
- Un mecanismo general y potente para implementar dispositivos virtuales en software que se ejecutaba en procesos de usuario (que se llamaban "trabajos" en ITS).
- Utilizando este mecanismo, se proporciona acceso transparente al sistema de archivos entre máquinas (con gran seguridad el primer sistema operativo en lograrlo). Las máquinas ITS estaban todas conectadas a ARPAnet, y un usuario en una podía realizar cualquier tarea en un fichero en alguna de las otras máquinas como si se tratase de un fichero local.
- Gestión sofisticada de procesos; los procesos de usuario estaban organizado en una jerarquía en forma de árbol, y un proceso superior podía controlar un gran número de procesos inferiores. Cualquier proceso inferior podía ser congelado en cualquier momento y examinar su estado (incluyendo el contendió de los registros); el proceso podía ser entonces vuelto a la ejecución sin ningún problema. (Esta característica se encuentra ahora en las herramientas GNU.)
- Un software de interrupciones que permitía a los procesos de usuario operar asíncronamente, utilizando mecanismos de manejo de interrupciones complejos.
- PCLSRing, un potente y sutil mecanismo que proporcionaba lo que parecía (a los procesos de usuario) llamadas al sistema no bloqueantes, interrumpibles con seguridad. Ningún proceso podía encontrar a ningún proceso (incluido el mismo) en mitad de la ejecución de una llamada al sistema.
Entorno de usuario
editarEl entorno visto por los usuarios ITS tenía una filosofía significativamente diferente de la mayoría de los sistemas operativos de la época.
- Inicialmente no había contraseñas, y un usuario podía trabajar en ITS sin iniciar sesión. El inicio de sesión se consideraba educado, ya que, de este modo, la gente sabía cuando estabas conectado.
- Todos los usuarios podían apagar el sistema, pero un mensaje difundía quien lo estaba haciendo.
- Todos los ficheros se podían editar por todos los usuarios.
- Todos los usuarios podían hablar con mensajería instantánea con otras terminales, o podían utilizar el comando (SHOUT) para pedir ayuda a todos los usuarios activos.
- Los usuarios podían ver lo que ocurría en otra terminal. El usuario observado era informado, y podía cerrar la sesión del espectador. Esta habilidad fue posteriormente deshabilitada de un modo interesante: parecía que la sesión se cerraba, pero realmente no lo hacía.
- Turistas - usuarios invitados bien de los terminales del MIT AI Lab, o sobre ARPAnet tenían acceso. Una política fue posteriormente publicada sobre el acceso de los turistas.
Desarrolladores iniciales
editarCuriosidades
editar- Richard Stallman, fundador del Software Libre, colaboró desarrollando ITS.
- Memu Archivado el 7 de junio de 2019 en Wayback Machine.
Referencias
editar- Donald E. Eastlake, ITS Reference Manual, Version 1.5 Archivado el 6 de julio de 2017 en Wayback Machine., (MIT AI Laboratory, 1969) documents a very early version of the system (Warning, very large file, scanned page images)
- Donald E. Eastlake, ITS Status Report (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última). (MIT AI Laboratory, 1972) documents a somewhat later, but still fairly early, version (Warning, very large file, scanned page images)
- Alan Bawden, PCLSRing: Keeping Process State Modular
Enlaces externos
editar- contains file system images of various ITS machines, including source and documentation of the final system
- provides instructions allowing ITS to run on a PDP-10 emulator.
- (Historical) Tourist access policy in ITS at MIT.
- An Introduction to ITS for the MACSYMA User
- ITS System Documentation
- SV: A simulated ITS system running online and open for logins