OS-9 auf dem ST

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.



Aus: ST-Computer 05 / 1987, Seite 135

Links

Copyright-Bestimmungen: siehe Über diese Seite