# 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

ITS 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

El 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

* Richard Greenblatt
* Stewart Nelson
* Tom Knight

## Curiosidades

* Richard Stallman, fundador del Software Libre, colaboró desarrollando ITS.
* Memu Archivado el 7 de junio de 2019 en Wayback Machine.