# Incompatible Timesharing System

Das Incompatible Timesharing System (ITS) ist ein von den Hackern am Labor für Künstliche Intelligenz des MIT geschriebenes freies Betriebssystem für die Rechner der PDP-10-Serie von „Digital“, der Digital Equipment Corporation (DEC). Der Name ist ein Wortspiel auf das Compatible Time-Sharing System (CTSS).
ITS und die darauf entwickelte Software waren technisch weit über ihre Kernbenutzergemeinde hinaus einflussreich. Der Fernzugriff für „Gäste“ oder „Touristen“ war über das frühe ARPAnet leicht möglich und erlaubte es vielen Interessenten, informell Funktionen des Betriebssystems und der Anwendungsprogramme auszuprobieren. Die Software-Umgebung des ITS war ein wichtiger Einfluss auf die Hackerkultur, wie sie in Steven Levys Buch Hackers: Heroes of the Computer Revolution beschrieben wird.

## Geschichte

Die Entwicklung des ITS wurde in den späten 1960er Jahren von denjenigen initiiert (damals die Mehrheit der Mitarbeiter des MIT AI Lab), die mit der Richtung des Multics-Projekts von Project MAC (das Mitte der 1960er Jahre begonnen hatte) nicht einverstanden waren, insbesondere mit solchen Entscheidungen wie der Einbeziehung von leistungsfähiger Systemsicherheit. Der Name wurde von Tom Knight als Scherz auf den Namen des frühesten MIT-Time-Sharing-Betriebssystems, dem Compatible Time-Sharing System, gewählt, das aus den frühen 1960er Jahren stammte.
Durch die Vereinfachung ihres Systems im Vergleich zu Multics konnten die ITS-Autoren schnell ein funktionierendes Betriebssystem für ihr Labor erstellen. ITS wurde in Assembler, ursprünglich für den DEC PDP-6-Computer geschrieben, aber der Großteil der ITS-Entwicklung und -Verwendung fand auf der späteren, weitgehend kompatiblen PDP-10 statt.
Obwohl ITS nach etwa 1986 nicht mehr so intensiv genutzt wurde, war es noch bis 1990 am MIT und danach bis 1995 beim Stacken Computer Club in Schweden in Betrieb.

## Wichtige technische Merkmale

Das Incompatible Timesharing System führte viele damals neue Funktionen ein:
* Die erste geräteunabhängige Grafikterminal-Ausgabe; Programme generierten generische Befehle zur Steuerung des Bildschirminhalts, die das System automatisch in die entsprechenden Zeichenfolgen für den jeweiligen Terminaltyp des Benutzers übersetzte.
* Ein allgemeiner Mechanismus zur Implementierung von virtuellen Geräten in Software, die in Benutzerprozessen läuft (die beim ITS „Jobs“ genannt wurden).
* Mit dem Mechanismus für virtuelle Geräte bot ITS einen transparenten inter-machine filesystem access. Die ITS-Maschinen waren alle mit dem ARPAnet verbunden, und ein Benutzer auf einer Maschine konnte die gleichen Operationen mit Dateien auf anderen ITS-Maschinen durchführen, als wären es lokale Dateien.
* Ausgeklügeltes Prozessmanagement; Benutzerprozesse waren in einem Baum organisiert, und ein übergeordneter Prozess konnte eine große Anzahl von untergeordneten Prozessen kontrollieren. Jeder untergeordnete Prozess konnte an einem beliebigen Punkt seiner Operation eingefroren und sein Zustand (einschließlich des Inhalts der Register) untersucht werden; der Prozess konnte dann transparent fortgesetzt werden.
* Eine fortschrittliche Software-Interrupt-Einrichtung, die es Benutzerprozessen erlaubte, asynchron zu arbeiten und dabei komplexe Interrupt-Verarbeitungsmechanismen zu verwenden.
* PCLSRing, ein Mechanismus, der (für Benutzerprozesse) als quasi-atomar erscheinende, sicher unterbrechbare Systemaufrufe bereitstellte. Kein Prozess konnte jemals einen anderen Prozess (einschließlich sich selbst) dabei beobachten, wie er einen Systemaufruf ausführte.
* Zur Unterstützung der Robotik-Arbeiten des KI-Labors unterstützte ITS auch gleichzeitige Echtzeitberechnung und Time-Sharing-Betrieb.

## Benutzerumgebung

Die Umgebung, die die ITS-Anwender vorfanden, unterschied sich philosophisch deutlich von der, die die meisten Betriebssysteme zu dieser Zeit boten.
* Anfänglich gab es keine Passwörter, und ein Benutzer konnte am ITS arbeiten, ohne sich anzumelden. Sich anzumelden wurde allerdings als höflich angesehen, damit man wusste, wann man verbunden war.
* Um mit einer Reihe von Vorfällen umzugehen, bei denen Benutzer nach Schwachstellen im System suchten, um es zum Absturz zu bringen, wurde ein neuer Ansatz gewählt. Es wurde ein Befehl implementiert, der das System zum Absturz brachte und von jedem ausgeführt werden konnte, was den ganzen Spaß und die Herausforderung wegnahm, dies zu tun. Es wurde jedoch eine Nachricht gesendet, um mitzuteilen, wer es getan hat.
* Alle Dateien waren für alle Benutzer editierbar, einschließlich Online-Dokumentation und Quelltext.
* Alle Benutzer konnten mit Instant Messaging auf dem Terminal eines anderen sprechen, oder sie konnten einen Befehl (SHOUT) benutzen, um alle aktiven Benutzer um Hilfe zu bitten.
* Benutzer konnten sehen, was auf dem Terminal eines anderen geschah (mit einem Befehl namens OS für „output spy“). Ein Ziel von OS konnte es mit einem anderen Befehl namens JEDGAR, benannt nach J. Edgar Hoover, dem Direktor des FBI, erkennen und töten. Diese Einrichtung wurde später auf eine interessante Art und Weise deaktiviert: Es sah so aus, als ob die Remote-Sitzung getötet wurde, aber sie war es nicht.
* Touristen (Gastbenutzer entweder an den Terminals des MIT AI Lab oder über das ARPAnet) wurden toleriert und gelegentlich ermutigt, sich aktiv an der ITS-Community zu beteiligen. Die informelle Richtlinie für den Zugang von Touristen wurde später in einer schriftlichen Richtlinie formalisiert. Der einfache Zugang, mit oder ohne Gastkonto, erlaubte es interessierten Parteien, das Betriebssystem, die Anwendungsprogramme und die „Hacker“-Kultur informell zu erforschen und zu experimentieren. Arbeitskopien der Dokumentation und des Quellcodes konnten von jedem auf dem System frei konsultiert oder aktualisiert werden.
Die offene ITS-Philosophie und die kollaborative Gemeinschaft waren der direkte Vorläufer der Freie und Open-Source-Software-, open-design- und Wiki-Bewegungen.

## Wichtige auf dem ITS entwickelte Anwendungen

Der Editor EMACS, eine Abkürzung für „Editor MACroS“, wurde ursprünglich auf dem ITS geschrieben. In seiner ITS-Instanziierung war er eine Sammlung von TECO-Programmen (genannt „Makros“). Für spätere Betriebssysteme wurde er in der gemeinsamen Sprache dieser Systeme geschrieben – zum Beispiel die Sprache C unter Unix und Zetalisp unter dem Lisp-Maschinensystem.
Das GNU-Hilfesystem info war ursprünglich ein EMACS-Subsystem und wurde später als komplettes, eigenständiges System für Unix-ähnliche Maschinen geschrieben.
Mehrere wichtige Programmiersprachen und -systeme wurden auf ITS entwickelt, darunter MacLisp (der Vorläufer von Zetalisp und Common Lisp), Microplanner (implementiert in MacLisp), MDL (die zur Grundlage der Programmierumgebung von Infocom wurde), und Scheme.
Unter den anderen bedeutenden und einflussreichen Software-Subsystemen, die auf dem ITS entwickelt wurden, ist das symbolische Algebra-System Macsyma wohl das wichtigste.
Terry Winograds Programm SHRDLU wurde auf dem ITS entwickelt. Auch das Computerspiel Zork wurde ursprünglich auf dem ITS geschrieben.
Richard Greenblatts Mac Hack VI war jahrelang das am besten bewertete Schachprogramm und zeigte als erstes eine grafische Brettdarstellung.

## Sonstiges

Der standardmäßige ITS-Top-Level-Kommandointerpreter war der PDP-10-Maschinensprachdebugger (DDT). Der übliche Texteditor auf dem ITS war TECO und später Emacs, der in TECO geschrieben war. Sowohl DDT als auch TECO waren durch einfache Dispatch-Tabellen auf Ein-Buchstaben-Befehle implementiert und hatten daher keine echte Syntax. Der Task-Manager des ITS wurde PEEK genannt.
Die lokale Schreibweise „TURIST“ ist ein Artefakt der Beschränkung auf sechs Zeichen bei Dateinamen (und anderen Bezeichnern), was darauf zurückzuführen ist, dass sechs SIXBIT kodierte Zeichen in ein einziges 36-Bit-PDP-10-Wort passen. „TURIST“ könnte auch ein Wortspiel auf Alan Turing, einen Pionier der theoretischen Informatik, gewesen sein. Der weniger schmeichelhafte Begriff „LUSER“ wurde auch auf Gastbenutzer angewandt, insbesondere auf solche, die sich wiederholt ahnungslos oder vandalistisch verhielten.
Die Jargon-Datei begann als gemeinsame Arbeit von Leuten an den ITS-Maschinen am MIT und am SAIL der Stanford University. Das Dokument beschrieb einen Großteil der Terminologie, Wortspiele und Kultur der beiden KI-Labore und verwandter Forschungsgruppen und ist der direkte Vorgänger des Hacker's Dictionary.