← ST-Computer 05 / 1987

OS-9 auf dem ST

Software

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.