# TOS (Betriebssystem)

TOS (Akronym für The Operating System, seltener Tramiel Operating System, nach dem damaligen Atari-Chef Jack Tramiel) ist ein Computerbetriebssystem. Es wurde für die Heimcomputerserie Atari ST von 1985 bis 1994 entwickelt.
TOS war bei seinem Erscheinen 1985 vollständig in GEM, eine von Digital Research entwickelte und für ihre Zeit sehr komfortable grafische Benutzeroberfläche, integriert. Es bestand somit für Endanwender keine unmittelbare Notwendigkeit, den Rechner mit Text-Kommandos, wie etwa bei frühen MS-DOS-Versionen, zu bedienen.

## Geschichte

TOS sollte ursprünglich auf CP/M-68K (einem Betriebssystem von Digital Research) aufbauen und über eine grafische Oberfläche ähnlich dem Mac namens GEM (ebenfalls von Digital Research) verfügen, die parallel dazu für 8086-basierte Rechner entwickelt wurde. Aufgrund vieler Mängel von CP/M-68K wurde dies als Fundament für TOS verworfen, lediglich die Prototypen des Atari ST, die auf der CES gezeigt wurden, arbeiteten mit CP/M-68K. Stattdessen entschied Atari, das noch in der Entwicklung befindliche GEMDOS, ebenfalls von Digital Research, zu verwenden, das leistungsfähiger schien und deutlich besser auf den Betrieb einer grafischen Oberfläche ausgerichtet war als CP/M-68K. Tatsächlich war GEMDOS auf API-Ebene den reinen DOS-Systemen MS-DOS und DR DOS sehr ähnlich und verwendete ein kompatibles Diskettenformat. Aufgrund des enormen Zeitdrucks wurde TOS von Atari nicht rechtzeitig fertiggestellt und musste auf frühen Atari 520ST (1. Serie) von Diskette geladen und im RAM ausgeführt werden. Später wurde das Betriebssystem aber im ROM integriert, somit können alle neueren Ataris auch ohne Massenspeicher booten.

### TOS 1.0x

Generell laufen alle Versionen des TOS 1.0x auf Atari-ST- oder STE-Computern. Die folgenden Versionen wurden entwickelt und in Umlauf gebracht:

#### TOS 1.00

Auch „ROM-TOS“ genannt. Das TOS 1.00 wurde unter großem Zeitdruck entwickelt und gilt als stark fehlerbehaftet und im Festplattenbetrieb als langsam. Fehler in der Speicherverwaltung des GEMDOS führte nach ausdauerndem Betrieb gerne zum Absturz und die Festplattenunterstützung war nur sehr rudimentär. TOS 1.00 war die erste TOS-Version, die im ROM ausgeliefert wurde, in Rechnern mit der Bezeichnung 260ST und 520ST, bzw. 520STm sowie den ersten 1040STF-Serien, in Form von 6 × 32KB EPROMs.

#### TOS 1.02

Auch „BLiTTER-TOS“ genannt, da es um die Routinen zur Verwaltung des Grafik-Coprozessors „BLiTTER“ erweitert wurde. Einige grobe Fehler der Vorgängerversion wurden beseitigt, allerdings blieb dieses TOS weit hinter den Erwartungen zurück. Trotzdem erlangte es den höchsten Verbreitungsgrad aller TOS-Versionen, da es in den beliebten Rechnern 1040STf/520STf, bzw. 1040STfm/520STfm zum Einsatz kam, ebenfalls in 6 EPROMs a 32KB, oder, selten in 2 × 96KB.

#### TOS 1.04

Auch „Rainbow-TOS“ genannt, weil das Atari-Logo im „Desktop-Info“-Dialog in Regenbogenfarben gehalten war. In dieser Version waren die gröbsten Fehler der Vorgänger beseitigt und viele Grafikroutinen beschleunigt. Einige Eigenheiten der grafischen Oberfläche wurden verbessert, wie z. B. die Dateiauswahlbox oder die Möglichkeit, Dateien zu verschieben. Allerdings nicht fehlerfrei, und so bot Atari viele kleine Patches an, die idealerweise von Festplatte bei jedem Start geladen werden sollten. Inoffiziell galt diese Version lange als die „letzte“ TOS-Version für Atari-ST-Computer und wurde vor allem in Rechnern der Mega- bzw. Mega-ST-Reihe eingesetzt, wiederum in 6 × 32KB oder 2 × 96KB.

#### TOS 1.06

Diese Version entsprach im Wesentlichen der Version TOS 1.04, unterstützte jedoch die Hardware-Erweiterungen des STE und kam dementsprechend nur in diesen zum Einsatz. Zwar wird die Hardware des STE kaum durch zusätzliche Routinen unterstützt, die vorhandenen wurden aber entsprechend erweitert. Außerdem richtet diese Version als erste beim Start die sogenannte „Cookie-Jar“ ein, in der Daten über den Rechner zugänglich waren, z. B. ob es sich um einen ST oder STE handelt, ob eine FPU vorhanden etc. Nur in 520STE und 1040STE eingesetzt, aufgrund der neuen Größe (256KB) immer in 2 × 128KB.

#### TOS 1.62

Trotz des scheinbar großen Versionssprungs nur eine minimale Erweiterung gegenüber TOS 1.06, welches einen deutlich sichtbaren Fehler hatte: An einem Farbmonitor startete der Rechner immer in der niedrigen Auflösung, gleich, welche der Benutzer eingestellt hatte. TOS 1.62 behob vor allem diesen Fehler. Nur in 520STE und 1040STE eingesetzt, ebenfalls in Form von 2 × 128KB EPROM-Chips.

### TOS 3.0x

Die unerwartete Versionsnummer geht auf die Bezeichnung „TOS030“ zurück, die für das TOS in den ersten Atari-TT-Prototypen verwendet wurde. Ursprünglich war der Atari TT als Unix-Computer mit AT&Ts System IV geplant, bevor Atari das eigene Betriebssystem auf diesen Computer portierte, vermutlich auf Basis von TOS 1.06, erweitert um Betriebssystemfunktionen zur Ansteuerung der neuen Hardware im Atari TT. In den weiteren Schritten der Entwicklung des TOS 3.0x wurde vor allem die Benutzeroberfläche verbessert: Verknüpfungen zu Dateien können auf dem Desktop abgelegt werden, Icons nachgeladen und individuell zugewiesen werden, Datenträger durchsucht werden und Tastaturkürzel zugewiesen und verwendet werden. Drei Versionen sind verbreitet worden: 3.01 als erste Variante, gefolgt von 3.05 und 3.06. Neben dem Atari TT wurden auch die Atari-Klone Medusa und Hades mit TOS 3.0x-Varianten bestückt.

### TOS 2.0x

TOS 2.0x wurde mit dem MegaSTE und somit zeitlich nach TOS 3.0x eingeführt. Die erste Version war 2.05, da diese von TOS 3.05 für den Atari TT abgeleitet worden war. Es übernahm den erweiterten Desktop von TOS 3.05 und einige Betriebssystemfunktionen, um prinzipiell zum Atari TT kompatibel zu sein, sofern dessen CPU, Grafikauflösung oder Speicherausbau nicht explizit benötigt wurde. TOS 2.05 war auf den Gebrauch in STE-Computern beschränkt und gerade dies löste Proteste bei Atari-Usern, Software-Entwicklern und Fachhändlern aus, die forderten, dieses deutlich modernere und freundlichere Betriebssystem auch in anderen ST- und STE-Computern einsetzen zu können. Daraus entstand TOS 2.06, das nicht nur auf allen ST- und STE-Computern lief, sondern außerdem von IDE-Festplatten booten konnte und automatische Stepraten-Umschaltung für HD-Diskettenlaufwerke bot. Da TOS 2.06 mit 256 KB größer war als TOS 1.00 bis TOS 1.04 mit 192 KB und damit auch einen anderen Adressraum belegte, war eine direkte Nachrüstung in existierenden ST-Computern nicht möglich und erforderte Adapterplatinen, die von verschiedenen Herstellern, oft auch in Verbindung mit IDE-Schnittstellen, angeboten wurden. In Atari 520STE- und 1040STE-Computern konnte das TOS durch Austausch der EPROM-Chips sowie der Änderung einiger Drahtbrücken eingebaut werden.

### TOS 4.0x

Neben den Anpassungen an die leistungsfähigere Hardware des Falcon und der Unterstützung des DSP bot TOS 4 erstmals animierten 3D-Look, Farbicons, Pop-ups und Untermenüs. Diese Erweiterungen konnten dank 3rd-Party GEM-Bibliotheken (WinDom, SysGem, faceVALUE) auch unter älteren TOS-Versionen genutzt werden. Erstmals in einem TOS sind die verschiedenen Sprachversionen in einem ROM zusammengefasst, die Einstellungen werden aus dem NVRAM ausgelesen.
Ein unerwartetes Comeback erlebte TOS 4 auf dem Atari-Klon Milan der Firma Milan Computersysteme. Neben der Verwendung eines moderneren Compilers (GNU C-Compiler) und Anpassungen an die veränderte Hardware (68040 CPU) gibt es in späteren Versionen (TOS 4.08) sichtbare Änderungen in Form von runden Optionsfeldern (Radiobutton) und eckigen Auswahlkästen (Checkbox). Diese rein optischen Neuerungen waren schon vor dem Milan-TOS in diversen GEM-Bibliotheken eingebaut worden. TOS 4.08 ist nur auf dem Milan lauffähig. An der Umsetzung und Erweiterung von TOS 4 auf den Milan war Atari nicht beteiligt.
Zeitlich vor dem Milan-TOS erschien noch inoffiziell TOS 4.92, welches als Beta-Version auf diversen Internet-Seiten kursiert. Auffälligste Änderungen: Zusatzprogramme (Accessories) können nun jederzeit nachgeladen werden, und die Fenster der Benutzeroberfläche sind minimierbar.

### MultiTOS

Ein unvollständiges Multitasking war schon in TOS 1 bis 4 möglich (Start sogenannter „Accessories“). Andere Hersteller (MultiGEM, Mag!X) boten hingegen schon echtes TOS-kompatibles Multitasking an. Schließlich schloss Atari auf und veröffentlichte MultiTOS. Es war neu entwickelt und basierte nicht auf TOS 1–4, sondern auf dem von Eric Smith entwickelten MiNT, das in der Lage war, mehrere TOS-Programme ohne grafische Benutzeroberfläche auszuführen, und der grafischen Oberfläche MultiAES, die den parallelen Einsatz von GEM-Programmen erlaubte. Sie war der Benutzeroberfläche des TOS 4.0x sehr ähnlich, brachte aber Inkompatibilitäten mit sich.
MultiTOS bot präemptives Multitasking und Speicherschutz (mit dem 68030 mit Hilfe der PMMU), die Benutzeroberfläche entsprach weitgehend dem Falcon-TOS. Besonders der (abschaltbare) Speicherschutz stellte viele Atari-Programme vor Probleme, ein großer Kritikpunkt war außerdem die niedrige Geschwindigkeit: Ein sinnvoller Einsatz war erst auf Rechnern mit 68030-CPU möglich.
MultiAES 4.1, eine fehlerbereinigte und beschleunigte Version der GEM-Komponente in MultiTOS, wurde nicht mehr offiziell als Update angeboten, das quelltextoffene MiNT wird hingegen bis heute weiterentwickelt.

## Aufbau

TOS ist primär aus fünf Schichten und dem Desktop zusammengesetzt:

### BIOS

Das BIOS stellt die unterste Schicht des Betriebssystems dar und abstrahiert einen großen Teil der zugrunde liegenden Hardware. Das BIOS legt dabei die Grundlage für den Betrieb eines CP/M oder CP/M-ähnlichen Systems, das heißt, es verfügt über fundamentale Funktionen zum Lesen und Schreiben von Sektoren, Einlesen oder Ausgeben von Zeichen, einfache Verwaltung von Speicher und Zeitgebern. Das BIOS wird innerhalb von TOS komplett von GEMDOS gekapselt und soll daher von Applikationsentwicklern nicht direkt verwendet werden.

### XBIOS

Ähnlich wie das BIOS abstrahiert das XBIOS die Hardware auf eine sehr fundamentale Weise, bedient dabei aber nicht das GEMDOS. Im Wesentlichen bietet das XBIOS Funktionen zur Verwaltung von Hardware, die nicht von GEMDOS/BIOS genutzt wird aber vorhanden ist, wie z. B. Klangerzeugung (X32), Setzen der Farbpalette, Verwaltung von Tastatur, Maus, Auflösung, Bildschirmspeicher etc.

### GEMDOS

Das GEMDOS ist Systemen wie MS-DOS oder DR-DOS sehr ähnlich. Es bietet Funktionen zur Speicherverwaltung, Dateiverarbeitung mit hierarchischem Filesystem, fundamentale Verwaltung von Prozessen, Konsolen-ein- und -ausgabe über Kanäle etc. Zwar bietet GEMDOS eine fundamentale Prozessverwaltung, ist aber nicht multitaskingfähig. Daher wurde das GEMDOS in MultiTOS durch MiNT ersetzt.

### VDI

Die Grundlage der grafischen Benutzeroberfläche GEM. Das Virtual Device Interface abstrahiert komplexere Ein- und Ausgabegeräte, wobei der Schwerpunkt – insbesondere innerhalb des TOS – auf Bildschirmausgaben liegt. Im Wesentlichen besteht das VDI aus einem (oder prinzipiell mehreren) Gerätetreibern und einem sogenannten Graphical Device Operating System (GDOS), das im TOS nur sehr rudimentär vorhanden ist. Letztlich bietet das VDI einen Katalog von Funktionen zum Zeichnen von grafischen Objekten (sogenannten Primitives) wie z. B. Linien, Kreise, Rechtecke, mit verschiedensten Attributen wie z. B. Farben, Füllmustern, Liniendicken, sowie zur Ausgabe von Zeichen mit variablen Zeichensätzen und -attributen.

#### GDOS

Die im VDI des Atari TOS fehlenden Teile des GDOS, wie Druckausgabe, wurden von Atari mit einem auszuführenden Treiber nachgeliefert, der aufgrund seiner Fehleranfälligkeit und Langsamkeit sehr schnell zu einer Vielzahl von GDOS-Alternativen von Drittherstellern führte (AMC-GDOS, GDOS+ u. a.). Schließlich war 1991 dann NVDI von Behne & Behne erhältlich, das ein kompletter GDOS-Ersatz war, und nebenbei noch VDI-Operationen durch geschicktere Programmierung stark beschleunigte. Es bot weiterhin ab Version 3 Vektorfonts an. Das Atari-GDOS wurde Jahre später durch SpeedoGDOS ersetzt, das ebenfalls Vektorfonts anbot, aber nicht so schnell ausgab als das separat erhältliche NVDI.

### AES

Die Application Environment Services (AES) stellen eine Bibliothek von Funktionen für Applikationen zur Verfügung. Diese reichen von der Applikationsverwaltung selbst (Initialisierung, Betrieb, Deinitialisierung) über Ereignisverwaltung (z. B. Mausklick, Timer, Mitteilungen etc.) hin zur Fenster- und Menüzeilenverwaltung, Dialogboxen und Dateiauswahlboxen. Das AES selbst ist sozusagen „unsichtbar“, wird aber von GEM-Programmen genutzt und verleiht diesen das charakteristische Verhalten und Aussehen. Im Gegensatz zum restlichen TOS unterstützt das AES, wenn auch nur rudimentär, kooperatives Multitasking. Da das restliche TOS dies aber nicht erlaubt, kann TOS nur je ein Programm starten, aber gleichzeitig mehrere kleine Hilfsprogramme, sogenannte Accessories, bedienen. In MultiTOS wird das sogenannte MultiAES nachgeladen, das diese Einschränkungen nicht mehr hat.

### Desktop

Dies ist zwar kein Betriebssystem-Modul, aber im TOS enthalten. Es stellt die primäre Arbeitsumgebung nach dem Start des Betriebssystems dar und erlaubt dem Benutzer, mit Hilfe der Maus, Dateioperationen auszuführen und Programme zu starten, ähnlich dem Explorer unter Windows oder dem Finder unter mac OS heute.

## Besonderheiten

Aufgrund des „unfertigen“ GEMDOS, auf dem essentielle Teile des TOS basieren, und des enormen Zeitdrucks, unter dem TOS entwickelt worden ist, gibt es einige Besonderheiten im Vergleich mit anderen Betriebssystem aus dem gleichen Zeitraum:

### Diskettenformat

Das Diskettenformat, wie es von GEMDOS verwendet wird, ist kompatibel zu MS-DOS, TOS 1.00 und 1.02 legen beim Formatieren aber einige Daten anders an, als MS-DOS diese benötigt. Erst ab TOS 1.04 formatiert TOS die Disketten so, dass MS-DOS diese auch akzeptiert. Unter MS-DOS formatierte Disketten sind unter jeder TOS-Version benutzbar.

### Booten von Laufwerken

Prinzipiell ist TOS in der Lage, von Diskette oder Festplatte zu booten, d. h. TOS liest den Bootsektor, prüft ihn und führt ihn aus. TOS beinhaltet aber keine Festplattentreiber, daher muss im Rootsektor einer eventuell angeschlossenen Festplatte ein Treiber vorliegen, um die Festplatte nutzen zu können (z. B. AHDI von Atari oder HDDriver von Uwe Seimet).

### Autostart von Programmen

Im Gegensatz zu vielen anderen Betriebssystemen arbeitet TOS beim Booten kein Script ab. Programme, die automatisch gestartet werden, können daher keine Parameter annehmen und werden in der Reihenfolge ausgeführt, in der sie auf dem Boot-Medium vorliegen. Mit der Verbreitung größerer Festplatten wurden daher sogenannte Bootmanager populär, die relativ früh während des Bootens von Festplatte gestartet werden sollten und dem Benutzer erlaubten, (meist durch Umbenennung) Programme zu aktivieren und deaktivieren, die während des weiteren Bootvorgangs geladen werden sollten (z. B. XBoot III von Ten Software Design).

### Konsole

Wie CP/M erlaubt GEMDOS den Betrieb einer textbasierten Konsole, bringt aber selbst keinen Kommandozeileninterpreter mit. Software kann aber diese GEMDOS-Konsole für Ein- und Ausgaben nutzen, die sich wie ein VT52-Terminal verhält. Allerdings läuft diese Konsole unter TOS nicht in einem Fenster, sondern verwendet den gesamten Bildschirm exklusiv. Erst mit der Erweiterung „MINIWIN“ von MultiTOS wird die Konsolenausgabe in ein Fenster umgeleitet.
Das Vorhandensein dieser Konsole erlaubte eine Gruppierung der Software unter TOS in
* Konsolenanwendungen, die nur Routinen des GEMDOS verwenden und daher leicht von anderen, konsolenbasierten Betriebssystemen, besonders MS-DOS oder CP/M, portiert werden können. TOS erkennt diese Programme am Dateinamen-Index „TOS“ oder „TTP“ (für „TOS Takes Parameter“). Bei letzteren öffnet das Desktop vor der Ausführung eine Eingabezeile, um der TOS-Applikation Parameter zu übergeben.
* Grafische GEM-Anwendungen, die AES und VDI benötigen. TOS erkennt diese Programme am Dateinamen-Index „.PRG“ oder „.APP“. Spätere TOS-Versionen akzeptierten auch „.GTP“, bei deren Start ebenfalls eine Eingabezeile geöffnet wird, um Parameter zu akzeptieren.

### Zeichenkettenausgabe in GEMDOS

In CP/M, DR-DOS und MS-DOS geben die Betriebssystemfunktionen „9“ eine Zeichenkette aus, die mit einem Dollarzeichen terminiert sein muss. Einen Grund für die Wahl dieses Zeichens scheint nur Gary Kildall selbst gekannt zu haben. Auch in GEMDOS wird die Funktion „9“ für die Ausgabe einer Zeichenkette verwendet, diese wird aber mit einem 0-Byte (also NULL = '\0', nicht dem Zeichen „0“) abgeschlossen, wie in der Programmiersprache C üblich.

## Weiterentwicklungen

Es gab mehrere Erweiterungen von TOS von anderen Anbietern, die bekannteste war wohl KaOS, das unter anderem von Andreas Kromke, der später MagiC schrieb, stammt.
TOS unterliegt nach wie vor Lizenzbestimmungen und ist nicht frei verfügbar. Ein abgeleitetes urheberrechtliches Nutzungsrecht an TOS lag bei der Milan Computer GbR (Kiel, Deutschland). Ein weiteres Nutzungsrecht liegt bei Medusa Computer Systems (Uster, Schweiz). Diese Nutzungsrechte haben es rechtlich ermöglicht, den Quellcode des TOS anzupassen und das TOS zusammen mit Computern zu vertreiben. So wurde TOS an die, nicht mehr von Atari entwickelte, neuere Hardware angepasst.

## Quelloffene, freie Version EmuTOS

Ab 2001 wurde von Entwicklern ein völlig freies TOS namens EmuTOS programmiert. Funktional reicht es seit den 2020ern bspw. auf dem Desktop, den Dateisystem-Schichten oder dem eingebauten Festplatten-Treiber über die Originalversionen von Atari hinaus.