Incompatible Timesharing System

aus HaBo WiKi, der freien Wissensdatenbank von http://www.hackerboard.de
Wechseln zu: Navigation, Suche

Das Incompatible Timesharing System ("ITS") ist ein frühes Mehrbenutzerbetriebssystem für PDP-10 Computer, das in den frühen 70er Jahren vom MIT AI Laboratory entwickelt wurde, und großen Einfluss auf die Entwicklung der Hackerkultur hatte. Der Betrieb der letzten ITS Maschine am MIT endete 1990.

Besonderheiten

ITS verwendet Benutzernamen nur zu organisatorischen Zwecken, daher kann jeder - auch ohne eine Anmeldung - das System benutzen. Es existiert weiterhin keine Trennung zwischen Administratoren und Benutzern, somit hat jeder auf dem System alle Rechte und kann bspw. die Dateien anderer Benutzer verändern oder das ganze System zum Absturz bringen. Das MIT duldete diesen Umstand und brachte eigens die sog. TOURIST-Policy heraus, die sich an Benutzer wendete, die nicht Mitglieder des AI Lab (oder Studenten des MIT) waren. Erst in den 80er Jahren, als es problemlos möglich wurde, sich von zu Haus an MIT-AI (ai.ai.mit.edu, der Computer, auf dem ITS lief) anzumelden, wurden auf Druck der Universitätsleitung Passwörter eingerichtet (diese wurden nur zur Anmeldung benötigt, destruktives Verhalten war weiterhin möglich).

Diese offene Politik führte schnell zur Entwicklung der frühen akademischen Hackerkultur, aus der später das GNU Projekt hervorging (Richard M. Stallman war ein bekannter Benutzer auf MIT-AI).

Abgesehen davon bot ITS auch einige technische Besonderheiten, wodurch es sich mehr oder weniger stark von anderen Betriebssystemen seiner Zeit abhob:

  • Als Shell kommt kein dediziertes Programm zum Einsatz, sondern eine modifizierte Version des Maschinendebuggers DDT (genannt Hack Translator, Dateiname DSK:SYS;ATSIGN HACTRN), was dazu führt, dass das System aus einer Kombination von Befehlsworten ("Colon Commands") und Tastenkombinationen ("DDT Commands") bedient wird.
  • ITS verfügt über ein spezielles Filesharingprotokoll, welches es ermöglicht, vollkommen transparent mit Dateien auf anderen ITS Rechnern zu arbeiten, indem man einem Dateinamen als Gerätenamen nicht DSK: (Disk) vorranstellt, sondern einen Hostnamen.
  • Genauso werden Anzeigegeräte nicht direkt angesteuert - stattdessen stellt das System eine API zur Verfügung, welche generische Befehle wie "Bildschirm löschen" in eine entsprechende Steuersequenz umsetzt.
  • Das Hilfesystem (INFO) besteht aus einer Sammlung von Hypertextdokumenten (und hat eine verblüffende Ähnlichkeit zum späteren GNU Info, welches aus dem ITS INFO System hervorging).
  • Das Betriebssystem ist vollständig in Assembler programmiert, während die meisten größeren Programme in MacLisp implementiert sind. Letztendlich wurden auch andere Programmiersprachen wie z.B. Logo oder Pascal auf ITS portiert.

Weitere Eigenarten sind der Architektur der PDP-10 selbst geschuldet. Im Gegensatz zu heutigen Computern, welche eine Busbreite von 32 oder 64 bit haben und Daten als Menge von Bytes betrachten, besitzt die PDP-10 eine Busbreite von 36 bit. Maschinenbefehle adressieren entweder 36 bit Worte, Halbworte oder Bitfelder, was zu einer ungewöhnlichen Assemblersprache führt. Viele Stringelemente, wie z.B. Benutzer- oder Dateinamen, haben eine maximale Länge von 6 Zeichen, da in der sog. SIXBIT Kodierung genau sechs Buchstaben in ein Register passen. Speicheradressen werden üblicherweise als Oktalzahlen angegeben, während Größenangaben (z.B. Menge des installierten Hauptspeichers) wahlweise in den Einheiten Pages (Seiten), KW (Kilowords) oder MW (Megawords) auftreten können.

Typische Benutzersitzung

Eine typische Benutzersitzung könnte so aussehen:


AI ITS.1649. DDT.1546.
TTY 0
You're all alone, Fair share = 2%

peek^K(Please Log In)
!

AI ITS 1649  Peek 629   11/5/108 01:28:52  Up time = 3:17:18:51
Memory: Free=337   Runnable Total=11 Out=8     Users: High=7 Runnable=1
Index Uname Jname Sname     Status   TTY    Core Out %Time    Time PIs
  0 SYS    SYS    SYS        HANG    ?        53   0   0%       22
  1 CORE   JOB    CORE       UUO     ?         0   0   0%
  2 COMSAT JOB.07 SYS        HANG    ?         4   0   0%
  3 COMSAT IV     IV         HANG    ?        47   0   0%        2
  4 PFTHMG DRAGON DRAGON     HANG    ?         6   0   0%        3
  5 ___005 HACTRN USERS3     HANG    >        30   9   0%
  6  ___005 PEEK   USERS3    +TTYBO  T0  C    11   3   0%
Fair Share 7%     Totals:                    151       0%       29
Logout time = 30      Lost 0%  Idle 1%  Null time = 2:32

A

AI ITS 1649  Peek 629   11/5/108 01:28:58  Up time = 3:17:18:57
IMP is up.   TCP/IP is available.
Ix Usr Uname  Jname  State   RWnd Ibf SWnd ReTxQ Lclprt Fgnprt Fgnhst
2 buffers (2 free)

Q
:KILL
*:what time
(Please Log In)
The time is 01:29:39 EST.
Today is Wednesday, the 5th of November, 2008.
AI ITS 1649 has run for 5 days, 5 hours, 8 minutes, 10 seconds.
:KILL
*:lisp
(Please Log In)

LISP 2149
Alloc? n

(mapcar #'(lambda (x) (expt 2 x)) '(1 2 3))
;Loading SHARPM 82
;Loading DEFMAX 98
(2 4 10)
(quit)
:KILL
*?
 You are typing at "DDT", the top level command interpreter/debugger
of the "ITS" time sharing system.
 Type control-S to abort output from DDT.
 DDT commands start with a colon and are usually terminated
by a carriage return.  Type :? <CR>  to list them.
 Type :LOGIN <your name>  to log in.  If you are new on the system,
do :INQUIR<cr> to tell the system who <your name> really is.
 To list a file directory, type :LISTF <directory name><CR>.
To print a file, type :PRINT <file name><CR>.  The directory
".INFO." has many files documenting system programs.
 If a command is not recognized, it is tried as the name of
a system program to run.  :LUSER <CR>  runs a program that will
request help for you.  :INFO <CR> runs a documentation perusal
program.
 Type control-Z to return to DDT after running a program
(Some return to DDT by themselves when done, printing ":KILL").
 For full documentation on DDT, do :PRINT .INFO.;DDT DOC<CR>.
*$$u
 LOGOUT ___005 0 01:32:16

Bemerkungen: Der Lisp Interpreter gibt die Ergebnisse oktal aus, daher ist 2^3 = 10 korrekt. Die Eingabe "foobar^K" (foobar Strg-K) startet ein externes Programm und entspricht ":foobar". Das Abmelden vom System (vorletzte Zeile) geschieht durch ESC ESC k, da die Escape-Taste (von ITS als Altmode bezeichnet) als Dollarzeichen ausgegeben wird.

ITS heute

Da PDP-10 Computer heute sehr selten sind (dem Autor des Artikels ist lediglich ein funktionierendes DECsystem-2065 bekannt, welches noch im Internet ist) und der Betrieb aus offensichtlichen Gründen (Größe der Geräte, Stromverbrauch) nicht daheim möglich ist, existiert kein ITS auf nativer Hardware mehr.

Glücklicherweise existieren mehrere Emulatoren, die es ermöglichen, ITS auf PCs laufen zu lassen.

Von ITS selbst existieren zwei Plattenabzüge: Ein relativ vollständiges Backup von MIT-AI (genannt PI-ITS) und eine Minimalversion, die händisch installiert werden muss (MINSYS).

Geduld und technisches Verständnis vorrausgesetzt ist es möglich, ITS ans Internet anzubinden (es existiert zwar kein Webbrowser, dafür aber Telnet, FTP und Mailprogramme, die auf ITS laufen und in PI-ITS vorhanden sind, sowie ein in jüngerer Zeit erstellter Webserver).

Weblinks

--Thyrael.lu 02:48, 5. Nov 2008 (CET)