Jobvermittlung mit System: »Mirage«, ein Multitasking/Multiuser-Betriebssystem

Will man Technikern und Wissenschaftlern Glauben schenken, so sind Computer nichts weiter als seelenlose Maschinen, die sich bedingungslos den Wünschen ihrer Besitzer unterordnen und die in jeder Mikrosekunde ihres erfüllten Daseins ohne Murren und Klagen Einsen und Nullen durch die Leiterbahnen schieben, bis die Bits sich beißen.

Die Programmierer jedoch wissen es besser! Wer hat nicht schon einmal fassungslos vor seinem Technologie-Wunderwerk gesessen, wenn dieser heimtückische Silizium-Diener die ausgeklügelten und wohldurchdachten Programmroutinen einfach nicht verdauen wollte? Durch hämische Nachrichten und lästerliche Bemerkungen (denken Sie doch nur an die lieblichen »Bömbchen« des Atari-TOS!) bringt er uns, seine vermeintlichen Beherrscher, zu der Erkenntnis, daß »diese blöde Kiste« auf dem Schreibtisch eine durchaus eigenwillige Seele besitzt.

Doch mit einer einzigen Seele gibt sich der ST schon lange nicht mehr zufrieden. Unter seinen diversen Seelen (sprich: Betriebssystemen) sind fast alle Glaubensrichtungen vertreten. Vom Puristen-System mit Command-Shell bis hin zum Betriebssystem mit hochkomfortabler grafischer Benutzeroberfläche hat man fast alles auf den ST übertragen, was mit dem 68000-Prozessor arbeiten kann.

Unser Testkandidat »Mirage«, ein Betriebssystem für Computer mit Prozessoren der 68000er-Reihe, wurde ursprünglich für ein großes Mehrbenutzersystem auf einem Super-Mikrocomputer entwickelt. Da auf solchen Systemen der Zugang über Terminals erfolgt, verzichteten die Entwickler auf eine grafische Bedienung.

Den Kern des Betriebssystems bildet ein knapp 38 KByte großer »Kernel«. Er ist vollständig in Assembler geschrieben und setzt sich aus etwa 190 Betriebssystem-Routinen zusammen, die über Trap#-Aufrufe angesprochen werden. Der Anwender hat über ein Shell-Interface mit Kommandosprache Zugriff auf die Kernel-Routinen. Mehr als 100 Hilfsprogramme (Utilities) erleichtern die Bedienung. Verschiedene Compilersprachen (C, Pascal, Fortran-77, APL und Basic) und ein Makro-Assembler erlauben das Schreiben von Anwendungsprogrammen.

Nur bei Bedarf im Speicher

Der Peripherie-Verkehr wird über ein Dateisystem und über Terminal-Treiber (TDV) abgewickelt. Dateisystem und TDV empfangen Hardware-unabhängige Befehle und wandeln sie mit Hilfe von Umsetzungssoftware (IOBD = I/O-Board-Driver .beziehungsweise DDV=Device-Driver) in Anweisungen um, die für die Hardware verständlich sind. Das Dateisystem arbeitet mit Mirage-eigenen und fremden Diskettenformaten (auf dem ST auch mit TOS-Format-Disketten) oder kommuniziert mit Netzwerk-Knoten.

Kernel-Erweiterungen wie Druckerspooler, Floating-Point-Arithmetik und Cacheing-Soft-ware, die sogenannten »Boltons«, werden nur bei Bedarf in den Speicher geladen. Eine besondere Bedeutung kommt auf einem Multiuser-/Multitasking-Betriebssystem dem Echtzeituhr-Treiber RTCD (Real-Time-Clock-Device) zu, da ohne Uhr und Treiber die Task-Steuerung nicht funktionieren würde.

Die Mirage-Implementierung für den Atari ST (Preis: 348 Mark) besteht aus einem ausführlichen, englischsprachigen Handbuch mit exakten Beschreibungen des Betriebssystems und der speziellen ST-Anpassung sowie aus einem 128-KByte-ROM-Modul mit Kernel, Shell und einigen besonders wichtigen Utilities. Eine Startdiskette, die neben der Bootdatei im TOS-Format die übrigen Utilities, diverse Treiber, Kernel-Erweiterungen (Boltons) und Laufzeit-Module für Programme in Basic, Pascal und Fortran als Mirage-Dateien enthält, vervollständigt das Original-Systempaket. Beigaben der deutschen Vertriebsfirma sind Dateien zur Tastaturanpassung an deutsche STs und eine Fontdatei mit Umlauten.

Bild 1. Startautomatik: Mirage konfigurier! sich selbst

Die Routinen von Kernel, Shell, Utilities und Treibern benutzen ausschließlich positions-unabhängige oder relozierbare Adressierungsarten, eine wichtige Voraussetzung für Multi-user/Multitasking-Betrieb. Alle Systemprogramme sind »reentrant«, lassen sich also als Einzelkopie im gemeinsamen Systemspeicher (»Shared Memory«) von mehreren Usern und/oder Tasks gleichzeitig benutzen. Hält man beispielsweise den Texteditor »EDIT.PROG« in diesem Speicher bereit, können alle über Terminals angeschlossenen User mit Hilfe dieses einmal im Speicher vorhandenen Programmes Texte editieren.

Zum Booten von Mirage steckt man das ROM-Modul in den Modulport und schiebt die Startdiskette in Diskettenlaufwerk A. Beim Einschalten des ST wird das Bootprogramm »MIRBOOT.PRG« im Auto-Ordner der Startdiskette ausgeführt. Nach Abfrage von Datum und Zeit (Hardware-Uhren werden ausgelesen) meldet sich das neue Betriebssystem mit seinem Logo. Dabei versinkt, sozusagen mit GEM und Maus, gleichzeitig auch der gesamte ST-Komfort in die (fortan ungenutzten) Tiefen des AES und VDI.

In einem zweiten Schritt der Initialisierung arbeitet Mirage eine auf der Startdiskette stehende Datei »AUTOBOOT.CMDF« zeilenweise ab. In dieser ASCII-Datei sind Befehle zur Grundeinstellung des Systems und zum Initialisieren von Peripherie-Einheiten eingetragen. Ein Beispiel zeigt Bild 1. Die sich daraus ergebende Systemkonfiguration, die zwei Diskettenstationen (auf Laufwerk A lassen sich auch TOS-Format-Disketten lesen), eine RAM-Disk und einen Cache-Speicher umfaßt, verschlingt mit 643 KByte eine gehörige Portion des ST-RAM.

Auf Wunsch zugeknöpft

Ohne die Autoboot-Datei initialisiert sich ein Minimalsystem mit nur einer Diskettenstation. Ein solches Minimalsystem beansprucht lediglich 99 KByte des ST-RAM. Die Speicheraufteilung dieser Grundkonfiguration ist in Bild 2 dargestellt. Die mit einem Sternchen markierten Systemteile befinden sich im ROM-Modul.

Mirage läßt sich auch von der Festplatte booten. Dazu muß mindestens eine Partition für Mirage reserviert werden. Der Mirage-Treiber »ATADISC. DDV« für Disketten- und Festplattenstationen unterstützte in der uns vorliegenden Testversion nur den Original-Atari-Festplatten-Treiber. Weder Ataris neuer Autoboot-Treiber noch der Treiber einer »Xebec«-Festplattenstation harmonieren mit dem Mirage-System. Nach Auskunft der Vertriebsfirma wird jedoch gerade eine neue Treibersoftware entwickelt, die diesen Mangel beseitigen soll.

Der ST verarbeitet unter Mirage die drei gebräuchlichen ST-Diskettenformate mit 360 KByte (einseitig), mit 720 KByte (doppelseitig normal) und mit 800 KByte (doppelseitig, 10 Sektoren/Spur). Das Mirage-Dateisystem ist im Gegensatz zum TOS-oder MS-DOS-System nicht hierarchisch aufgebaut, sondern verwaltet die Dateien in mehreren gleichrangigen Directories. Jeder physikalischen Diskettenstation lassen sich geeignete Treiber zuweisen, mit deren Hilfe verschiedene Fremd-Dateiformate gelesen werden. Zum Lieferumfang des Mirage-Paketes gehören Treiber zum Lesen von TOS-, MS-DOS- und UCSD-p-Dateien. Das spezielle Hilfsprogramm »EXPORT.PROG« erlaubt sogar das Schreiben auf TOS-Disketten.

Wie jedes ordentliche Multiuser-Betriebssystem zeigt sich selbstverständlich auch Mirage beim Dateizugriff auf Wunsch recht zugeknöpft. Für festgelegte User oder Usergruppen läßt sich der Zugriff auf komplette Disketten, auf Directories oder auf einzelne Dateien in vier Stufen von der völligen Zugriffssperre über Benutzungs- und Leseerlaubnis bis hin zur uneingeschränkten Schreibberechtigung steuern. Zusätzlich können einzelne Benutzer besondere Zugriffsprivilegien erhalten.

Neben dem Datenverkehr mit Diskettenstationen und Festplatten pflegt Mirage noch weitere Außenkontakte, die über logische Terminals abgewickelt werden. Diese Terminals benutzen die anfangs erwähnten I/O-Board-Treiber (IOBDs). Das ST-Mirage unterstützt den seriellen Port, die Centronics-Schnittstelle (zur Druckeransteuerung) und sogar den MIDI-Port.

Mit Hilfe der zusätzlich lieferbaren Netzwerksoftware »Microgrid 1« (Preis: 99 Mark) lassen sich mehrere Mirage-STs über Terminals an der seriellen und an der MIDI-Schnittstelle ohne jegliche Zusatzhardware vernetzen. Bei Benutzung des seriellen Ports, der an jedem ST nur einmal vorhanden ist, muß die Anzahl der Netzknoten auf zwei beschränkt bleiben. Über MIDI dagegen lassen sich sogar Ringe mit vielen STs aufbauen, da »Microgrid 1« bei der Datenübertragung ein umfangreiches Übertragungsprotokoll benutzt. Dieses Übertragungsprotokoll setzt die effektive Datenübertragungsrate leider erheblich herab. Der Betrieb eines Netzes mit einem ST als Datei-Server erscheint selbst bei 19200 Baud-Übertragung nur wenig praktikabel.

Bild 2. Multitasking in RAM und ROM: das Mirage-Minimalsystem

Logische Terminals für die serielle Schnittstelle haben jedoch auch ohne Netzwerksoftware ihren Sinn. Man kann nämlich einen beliebigen Nicht-Mirage-Computer mit Terminal-Emulation (oder ein Bildschirm-Terminal) als zweiten Benutzer an das Mirage-System auf dem ST anschließen, bei geeigneter Baud-raten-Einstellung (und dem nötigen Kleingeld für die Post) auch über die Telefonleitung. Dabei wird natürlich kein aufwendiges Übertragungsprotokoll verwendet wie im »Microgrid 1«.

Ob mit oder ohne Netz, bevor ein logisches Terminal aktiv wird, muß es einem sogenannten »Job« zugeteilt werden. Die Jobs des Mirage-Betriebssystems bilden das Herz des Multitaskings. Mirage unterscheidet nämlich Jobs und Tasks. Ein Job ist definiert als unabhängige Funktionseinheit im Mirage-Computer. Die Kommunikation zwischen User und Job vollzieht sich über ein logisches Terminal. Jeder Job verwaltet einen eigenen Speicherbereich und einen eigenen virtuellen Bildschirm, der natürlich zusätzlich etwa 32 KByte Speicher beansprucht. Das Utility-Programm »ATTACH« blendet den virtuellen Bildschirm in den physikalischen Bildschirm ein.

Aus jedem Job (sogar aus Anwendungsprogrammen) lassen sich Hintergrundjobs aufrufen, die im Mirage-System »Tasks« heißen. Tasks werden mit oder ohne virtuellen Bildschirm benutzt. Für Tasks ohne Bildschirm eignen sich besonders Operationen, die keine Bildschirmausgaben benötigen, wie zum Beispiel das Formatieren oder Kopieren von Disketten.

Komfortable Jobverwaltung auf dem ST erfordert einen Master-Job, von dem aus das Hilfsprogramm »FAKIR« die »Jobvermittlung« übernimmt. Der Masterjob wird beim Booten von Mirage automatisch aktiviert. Die mitgelieferte Kommando-Datei »MULTI. CMDF« übernimmt die automatische Einrichtung von bis zu sieben lokalen Jobs und startet anschließend das Fakir-Programm. Man kann nun durch Tastenkombinationen mit der < CONTROL >-Taste auch während der Laufzeit von Programmen zwischen den neuen Tasks umschalten oder in den Masterjob zurückspringen. Und siehe da, hier taucht sogar die versunkene Maus aus den Tiefen des ST empor. Der Task-Wechsel läßt sich auch durch Drücken der rechten Maustaste steuern.

Die Verteilung der wertvollen Computerzeit auf die Jobs und Tasks erfolgt nach dem Zeit-scheiben-Prinzip. Sie läßt sich durch einstellbare Prioritäten für die Tasks beeinflussen. Mirage kennt 32 Prioritätsstufen mit den drei Prioritätstypen »Echtzeit-Task mit absolutem Vorrecht«, »Echtzeit-Task mit einfachem Vorrecht« und »Nomaler Task«. Ein Echtzeit-Task mit absolutem Vorrecht gibt beispielsweise den Prozessor nur dann für Tasks anderer Typen frei, wenn sein Programm ihn dazu zwingt oder wenn er wirklich nichts zu tun hat.

Trotz seiner zweifellos hohen Qualität als Multitasking-Betriebssystem muß sich auch Mirage fragen lassen, welche Software außer den nützlichen Hilfsprogrammen »multijobend«, »multitaskend« und »multiusernd« es für einen Mirage-ST gibt.

Palette von Programmiersprachen

Den Programmierern unter den ST-Anwendern steht eine breite Palette an Programmiersprachen zur Verfügung. Spezielle Versionen von APL-, Basic-, Fortran 77- und Pascal-Compilern unterstützen die mächtigen Funktionen des Mirage-Betriebssystems besonders. So lassen sich zum Beispiel innerhalb von Fortran- und Pascal-Programmen Tasks erzeugen und ausführen. Ein Lattice C-Compiler ist ebenfalls verfügbar, der erzeugte Programmcode ist jedoch nach Aussage der deutschen Vertriebsfirma nicht optimal an die Erfordernisse eines Multitasking-Betriebssystems angepaßt.

Besondere Bedeutung kommt dem vorzüglichen Makro-Assembler zu. Die Pascal- und Fortran-Compiler erzeugen nämlich einen Assembler-Quelltext, der vom Makro-Assembler in das lauffähige Programm übersetzt wird. Die Programme benötigen Runtime-Module im Systemspeicher. Auch die Programme des Basic-Compilers sind zur Laufzeit auf ein spezielles Modul im System-RAM angewiesen. Den lauffähigen Code allerdings erzeugt direkt der Compiler.

In einem kurzen Test der Arbeitsgeschwindigkeit und Rechengenauigkeit haben wir je ein Basic- und Pascal-Programm entworfen, das von einem vorgegebenen Startwert so oft den Wert 0,1 subtrahiert, bis der Wert 0 erreicht wird. Die Abweichungen von 0 sowie die Rechenzeiten sind in Bild 3 aufgelistet. Der ST arbeitete jeweils als Einzel-User-Computer. Die Rechengenauigkeit von Basic und Pascal stimmte bis auf die 14. Kommastelle überein, in der Rechengeschwindigkeit behielt das Pascal-Programm deutlich die Oberhand.

Wenige fertige Anwendungen

Zusätzlich stellten wir den Pascal-Compiler in dem berüchtigten »Savage-Test« auf die Probe. Bei diesem Test unterzieht man eine Zahl einer Folge von sechs sich aufhebenden Rechenoperationen. Das Ergebnis sollte also gleich der ursprünglichen Zahl sein. Diese Rechnungsfolge wird 5000mal durchlaufen, wobei die Ergebnisse aufaddiert und vom mathematisch richtigen Ergebnis subtrahiert werden. Auch in diesem Punkt konnte Swifte-Pascal für das Mirage-Betriebssystem mit den übrigen Pascal-Compilern auf dem ST sehr gut mithalten. Eine Abweichung von nur -6,54x10-8 nach 128 Sekunden Rechenzeit ist in der Spitzenklasse der ST-Pascal-Compiler anzusiedeln.

Deutlich schlechter schneidet dagegen die Bewertung des Anwendungssoftware-Angebotes ab. Als einziges Anwendungspaket bietet der Markt zur Zeit das OxSYS-System, das aus einem Textverarbeitungsprogramm mit Wordstar-Benutzeroberfläche, einem umfangreichen Druckprogramm und einer Tabellenkalkulation besteht. Dank seines Multitasking-Betriebssystems stellt für Mirage die Integration von verschiedenen Anwenderprogrammen in zwei oder drei Jobs kein programm-technisches Problem mehr dar.

Das Textverarbeitungssystem OxWord ahmt die Benutzeroberfläche von Wordstar nach. Es scheut sich aber nicht, den ebenso betagten wie allgemein bekannten Funktionsumfang des Methusalems unter den Computerprogrammen stark zu erweitern. OxWord verfügt über ein zusätzliches Menü und kann Grafiken aus OxCalc in die Texte integrieren.

Mirage hat sich während unseres Tests als leistungsstarkes, funktionsreiches Betriebssystem erwiesen, das den Atari ST zwar einerseits seiner grafischen Benutzeroberfläche beraubt, ihn andererseits jedoch zu einem komfortabel zu bedienenden Multiuser/Multitasking-Computer macht. Wegen der äußerst spärlich angebotenen Anwendungssoftware dürften die Absatzchancen des Mirage-Betriebssystems auf dem breiten Atari-Massenmarkt nicht gerade rosig aussehen. Die hervorragenden Programmiersprachen und die für Programmierer geradezu ideale Multitasking-Umgebung von Mirage könnten das System jedoch für einen kleinen, aber feinen Anwenderkreis äußerst interessant machen. Haben Sie vielleicht gerade einen Job für Mirage?

(Wolfgang Fastenrath/ Ulrich Hofner)

Bild 3. Schnell und genau: die Programmiersprachen unter Mirage


Aus: ST-Magazin 04 / 1988, Seite 50

Links

Copyright-Bestimmungen: siehe Über diese Seite