AngekĂŒndigt war es schon lange, endlich ist es da: OS-9 fĂŒr den Atari ST. Unser Bericht schildert, was dieses Betriebssystem auf dem ST bietet.
Allgemeines
Die Struktur von OS-9 weist eine gewisse Ăhnlichkeit mit UNIX auf. Es handelt sich um ein Multiuser- und Multitasking-System. Mehrere Benutzer können also gleichzeitig mit einem oder mehreren Programmen arbeiten. Die Anzahl der parallelen Prozesse wird nur durch den Hauptspeicher begrenzt. Da der Atari ST nur eine serielle Schnittstelle besitzt, an die ein Terminal angeschlossen werden kann, beschrĂ€nkt sich die Anzahl der Benutzer auf zwei.
Die Systemstruktur von OS-9 ist auf Bild 1 grafisch dargestellt. Der Kernel (Systemkern) enthĂ€lt alle Systemfunktionen. Die nĂ€chste Schale besteht aus OS-9-Kommandos und Anwenderprogrammen. Ganz auĂen liegt die Shell, von der aus Kommandos und Anwendungen gestartet werden können. Diese Philosophie ist identisch mit der von UNIX.
Das Filesystem ist vom Prinzip her genauso wie bei GEMDOS: Es gibt Dateien und Unterverzeichnisse (auch Directories, Ordner oder Folder genannt).
Im Gegensatz zu UNIX haben bei OS-9 die GerÀte (Devices) feste Namen und stehen auch nicht in einem Directory. Bild 2 zeigt die Zuordnung von Namen zu GerÀten.
Der aufmerksame Leser hat auf Bild 2 die Bezeichnung âNetzwerkknotenâ entdeckt. OS-9 ist tatsĂ€chlich netzwerkfĂ€hig. Ob dies auch bei der gegebenen Implementierung auf dem ST der Fall ist, konnte nicht festgestellt werden.
Eine Bemerkung noch zum Thema Interprozesskommunikation: Da es möglich ist, mehrere Prozesse parallel ablaufen zu lassen, besteht die Notwendigkeit, Daten zwischen Prozessen auszutauschen. Diese Aufgabe wird (wie bei UNIX) von Pipes und Signalen gelöst.
Eine Pipe kann man sich als Rohr vorstellen, in das ein Prozess Daten hineinschiebt, die am anderen Ende von einem anderen Prozess entgegengenommen werden können. Dies geht aber nur in einer Richtung. Wenn in beide Richtungen Daten ausgetauscht werden sollen, mĂŒssen zwei Pipes verwendet werden.
Bei einem Signal handelt es sich um einen Interrupt, der an einen anderen Prozess gesendet wird. Signale sind vergleichbar mit einem Ereignis (Event) bei GEM.
TERM Systemterminal (Cansolej
tl, t2. etc andere serielle Terminals
P parallel Printer
Pl serieller Printer
dd default Laufwerk Chx bzw. dx)
dO, dl. etc Floppy Laufwerke
hO, hl. etc Harddisk Laufwerke
nO, nl. etc Netzwerkknoten
Abbildung 2: GerÀtenamen von OS-9
Die Shell
Sie stellt die Verbindung zwischen Betriebssystem und Benutzer her. Mit Hilfe der Shell können OS-9-Kom-mandos und Anwenderprogramme ausgefĂŒhrt werden. Es besteht die Möglichkeit, die Ein- bzw. Ausgabe von Programmen umzuleiten. Will man z. B. die Ausgabe des âdirâ Kommandos auf den Drucker umleiten, so kann man dies mit der Eingabe von
dir >/p
erreichen. Auf diese Art kann man auch das Inhaltsverzeichnis in einer Datei speichern (z. B. âdir >/inhaltâ) und diese dann mit einem Texteditor verĂ€ndern. Das Ganze funktioniert natĂŒrlich auch umgekehrt, man kann also die Eingaben, die normalerweise von der Tastatur kommen, auch aus einer Datei kommen lassen.
Damit sind wir schon bei der zweiten Anwendung der Shell, den sogenannten Shell-Scripts. Es handelt sich dabei um eine Folge von Kommandos, die als Text in einer Datei stehen. Dadurch lassen sich die Kommandos von OS-9 zu ganzen Anwendungen formen. Ein Beispiel fĂŒr ein solches Shell-Scripts sind die folgenden Kommandos, die in der Datei 'kopiereâ stehen sollen.
format /dl -ds -dd
backup
Wenn man diese Kommandos nacheinander ĂŒber die Tastatur eingibt, wird zunĂ€chst die Diskette in Laufwerk B formatiert und dann die Diskette in Laufwerk A nach B kopiert. Stehen die beiden Kommandos in einer Textdatei mit dem Namen 'kopiere', so können sie als Shell-Script direkt durch die Eingabe von 'kopiere' aufgerufen werden. In diesem kleinen Beispiel macht das zwar keinen groĂen Unterschied, aber wenn die Liste der Kommandos in einem Shell-Script zunimmt, spart man einige Tipparbeit. Eine Anmerkung fĂŒr UNIX-Freaks: Die OS-9-Shell ist nicht so leistungsfĂ€hig wie die C-Shell (keine Aliases, History etc).
Um von der Shell aus Hintergrundprozesse zu starten, muà nur ein an die Kommandozeile angehÀngt werden. Die Eingabe von
format /dl -ds -dd >/p &
bewirkt, daà die Diskette in Laufwerk B formatiert wird und Fehlermeldungen auf dem Drucker ausgegeben werden. Da alles im Hintergrund ablÀuft, kann man im Vordergrund weiter arbeiten.
Das Modulkonzept
von OS-9 ist ein wesentlicher Grund fĂŒr die FlexibilitĂ€t dieses Systems. Jedes programm, auch die GerĂ€tetreiber, der Systemkern und ĂŒberhaupt alles, wird als Modul aufgefaĂt. Die Module, die augenblicklich im Speicher stehen, können mit dem Kommando âmdirâ
aufgelistet werden. Auf Bild 3 ist eine typische Modulbibliothek zu sehen. Der Clou an der Sache ist, daĂ auch fĂŒr mehrere Benutzer jedes Modul nur einmal vorhanden sein muĂ. Wenn also zwei Benutzer mit einem Programm arbeiten, steht der Programmcode nur einmal im Speicher. Dazu mĂŒssen die Programme jedoch âreentrantâ sein: Das heiĂt, sie dĂŒrfen nicht ihren eigenen Code verĂ€ndern, und Daten dĂŒrfen nicht im Programm selbst abgelegt werden. Wenn diese Voraussetzung erfĂŒllt ist, geht OS-9 mit dem Arbeitsspeicher sehr viel ökonomischer um als die meisten anderen Systeme fĂŒr Microcomputer.
Module Directory at 17:12:20
kernel init stclk scf stcio
stsio term P t1 stpptr
null nil pipeman pipe rbf
stfd sthd dO dd dl
hO sysgo shell cio dir
mdir
Abbildung 3: Modulbibliothek
Wie bei UNIX, MS-DOS usw. werden auch bei OS-9 alle Kommandos (Programme) von Massenspeichern (Floppy/Harddisk) geladen, bevor sie ausgefĂŒhrt werden können. Wenn man mit Floppies arbeitet, macht sich dabei die Ladezeit unangenehm bemerkbar. OS-9 erlaubt es, beliebige Programme in den Speicher zu laden und resident zu halten. Dies ist fĂŒr hĂ€ufig benötigte Programme sehr empfehlenswert, weil dann nicht jedesmal von der Floppy geladen werden muĂ. SelbstverstĂ€ndlich können Programme aus der Modulbibliothek auch wieder gelöscht werden, wenn der Arbeitsspeicher zu knapp wird.
Soviel zu dem Betriebssystem selbst. Sicher sind nicht alle Features erwĂ€hnt worden; ich habe mich im Wesentlichen auf die âHighlightsâ des OS-9-Konzepts beschrĂ€nkt.
Microware BASIC
gehört zum Lieferumfang des Systems. Entgegen verschiedener GerĂŒchte wird kein C-Compiler mitgeliefert, er kann aber nachtrĂ€glich erworben werden. Leider lag er bei RedaktionsschluĂ dieser Ausgabe noch nicht vor.
Dieses BASIC ist ein gutes Beispiel fĂŒr die VerĂ€nderung von Computersprachen im Laufe der Zeit. Es lĂ€Ăt nichts vermissen, was vor zwei Jahren noch undenkbar gewesen wĂ€re. Wie in den meisten neueren Implementierungen von BASIC werden keine Zeilennummern benötigt. GOTO und GOSUB sind zwar vorhanden, aber nicht notwendig. Alle gĂ€ngigen Strukturelemente wie IF THEN ELSE, FOR NEXT, WHILE DO, REPEAT UN-TIL und LOOP ENDLOOP sdtehen zur VerfĂŒgung. Jede der aufgezĂ€hlten Schleifen kann durch eine EXITIF Anweisung verlassen werden. Es ist also sowohl fĂŒr AnhĂ€nger der strukturierten Programmierung als auch fĂŒr âSpaghetti-Programmiererâ gesorgt. Als weiteres Strukturelement gibt es Prozeduren, die lokale Parameter enthalten können und somit auch rekursiv aufrufbar sind. Das wohl bemerkenswerteste Feature von Microware BASIC ist die Möglichkeit, Datentypen und damit auch Records zu definieren. Dazu ist selbst der de-facto-Standard âGFA-BASICâ nicht in der Lage. FĂŒr die Entwicklung kommerzieller Anwendungssysteme in BASIC (das gibt es wirklich) ist dies jedoch ein erheblicher Vorteil. Ein Beispiel aus dem Handbuch:
TYPE cust___recd := name,address(3):
STRING; balance:REAL
Der neue Typ 'cust__recdâ besteht aus den drei Feldern name, address und balance. ânameâ ist ein String, address ist ein Stringarray mit 3 Elementen und balance ist vom Typ REAL. Mit der Anweisung
DIM customer(250):cust__recd
kann nun ein Array vom Typ cust___recd mit 250 Elementen angelegt werden. Der Zugriff auf ânameâ im 13 Element von customer erfolgt durch
A$ = customer(13).name
Die Schreibweise und Handhabung der Records erinnert stark an PASCAL.
Mit dem CHAIN-Statement kann zu anderen Programmen verzweigt werden. Als Parameter wird eine Kommandozeile fĂŒr die Shell ĂŒbergeben. Es wird dann tatsĂ€chlich die Shell aufgerufen und das Kommando wird so abgearbeitet, als wĂ€re es von der Shell aus aufgerufen worden.
Das BASIC enthÀlt einen Debugger (engl. Entwanzer, Hilfsmittel bei der Fehlersuche), der es ermöglicht zu tracen (ein Programm Zeilenweise abzuarbeiten) und Breakpoints (Haltepunkte) zu setzen.
Der Zeileneditor ist der einzige Wermutstropfen. Bei diesem sonst sehr leistungsfÀhigen Werkzeug könnte man in dieser Hinsicht eigentlich mehr erwarten.
HardwareunterstĂŒtzung
OS-9 kann mit allen Atari-ST-Computern betrieben werden. Es arbeitet in der hohen und in der mittleren Bildschirmauflösung. Auch Rechner mit 512 KByte (TOS im ROM) können verwendet werden.
Alle notwendigen Programme zum Installieren von OS-9 auf einer Harddisk werden mitgeliefert. OS-9 erfordert eine komplette Partition der Harddisk, die auf OS-9 Format (256 Bytes/Sektor) formatiert wird. Um mit OS-9 professionell zu arbeiten, ist auf jeden Fall eine Harddisk nötig. Bei der Arbeit mit Floppies erweisen sich die Zugriffszeiten als unangenehm. Beim Umgang mit Compilern wird sich dies noch verschlimmern.
Um ein Terminal an die serielle Schnittstelle des Atari anzuschlieĂen, wird lediglich ein sogenanntes Nullmodem benötigt, ein Verbindungskabel, bei dem die AnschlĂŒsse 2 und 3 vertauscht sind und die Masse verbunden ist.
Die Dokumentation
ist in englischer Sprache geschrieben und sprengt fast den Ringordner im DIN A5-Format. Der âST-spezifischeâ Teil besteht aus einem knapp 30 Seiten umfassenden Heftchen und behandelt die Installation des Systems auf Harddisk und Floppy. Der Rest teilt sich auf in die Beschreibung des Betriebssystems und des BASIC-Interpreters. Die einzelnen Teile sind leicht verstĂ€ndlich und werden anhand vieler Beispiele verdeutlicht. Am Index wurde leider gespart. Er ist zwar vorhanden, aber zu dĂŒrftig, um eine echte Hilfe zu sein.
Auch bei der 'Hardware' des Handbuchs wurde gespart. Der Ringordner ist so voll, daà man die Seiten kaum umblÀttern kann. Es wÀre besser, wenn die Dokumentation auf zwei Ordner verteilt wÀre. Feider kann man die Aufteilung nicht selbst vornehmen, weil das Handbuch in einem Ringordner mit 3 Ringen eingeheftet ist, die in Deutschland nicht so leicht zu bekommen sind.
Fazit
OS-9 ist ein leistungsfĂ€higes Standardbetriebssystem, mit dem die Resourcen des Atari ST sehr gut ausgenutzt werden können. Leider wird die GrafikfĂ€higkeit des ST nicht unterstĂŒtzt. Im Manual war zu lesen, daĂ sich dies bis zum 4. Quartal 1986 Ă€ndern soll - wahrscheinlich in den USA. Die ST-Fans in Deutschland werden sich wohl etwas lĂ€nger gedulden mĂŒssen.