Apple-DOS - Apple DOS

Apple-DOS
Apple DOS.png
Apple-Computer, auf dem ein Hello World-Programm ausgeführt wird
Entwickler Apple Computer
Geschrieben in Montage
Betriebssystemfamilie Apple-DOS
Arbeitszustand Abgesetzt
Quellmodell Geschlossene Quelle
Erstveröffentlichung 1978 ; Vor 43 Jahren ( 1978 )
Neueste Erscheinung 3.3 / 1980 ; Vor 41 Jahren ( 1980 )
Kernel- Typ Monolithischer Kernel
Lizenz Apple-Software-Lizenzvereinbarung

Apple - DOS ist die Familie der Plattenbetriebssysteme für die Apple II Serie von Mikrocomputern von Ende 1978 bis Anfang 1983. Es wird von abgelöst ProDOS im Jahr 1983. Apple - DOS hat drei Hauptversionen: DOS 3.1, DOS 3.2 und DOS 3.3; auf jede dieser drei Versionen folgte eine zweite, kleinere "Bugfix"-Version, aber nur im Fall von Apple DOS 3.2 erhielt diese kleinere Version eine eigene Versionsnummer, Apple DOS 3.2.1. Die bekannteste und am häufigsten verwendete Version ist Apple DOS 3.3 in den Versionen 1980 und 1983. Vor der Veröffentlichung von Apple DOS 3.1 waren Apple-Benutzer zum Speichern und Abrufen von Daten auf Audiokassetten angewiesen .

Versionsgeschichte

Als Apple Computer im April 1977 den Apple II einführte , hatte der neue Computer kein Diskettenlaufwerk oder Diskettenbetriebssystem (DOS). Obwohl Apple-Mitbegründer Steve Wozniak Ende des Jahres den Disk II- Controller entwarf und glaubte, er hätte ein DOS schreiben können, beschloss sein Mitbegründer Steve Jobs , die Aufgabe auszulagern. Das Unternehmen betrachtet mit Digital Research ‚s CP / M , aber Wozniak suchte ein Betriebssystem , das einfacher zu bedienen war. Am 10. April 1978 unterzeichnete Apple mit Shepardson Microsystems einen Vertrag über 13.000 US-Dollar , um ein DOS zu schreiben und es innerhalb von 35 Tagen zu liefern. Apple lieferte detaillierte Spezifikationen, und der frühe Apple-Mitarbeiter Randy Wigginton arbeitete eng mit Paul Laughton von Shepardson zusammen, als dieser das Betriebssystem mit Lochkarten und einem Minicomputer schrieb .

Es gab kein Apple DOS 1 oder 2. Die Versionen 0.1 bis 2.8 waren während der Entwicklung seriell aufgezählte Revisionen, die genauso gut als Build 1 bis 28 bezeichnet werden könnten. Apple DOS 3.0, eine umbenannte Ausgabe von Version 2.8, wurde aufgrund von Fehlern nie öffentlich veröffentlicht . Apple hat bis Release 3.2 keine offizielle Dokumentation veröffentlicht.

Apple DOS 3.1 wurde im Juni 1978 veröffentlicht, etwas mehr als ein Jahr nach der Einführung des Apple II, und wurde das erste festplattenbasierte Betriebssystem für jeden Apple-Computer. Später kam ein Bugfix-Release, der ein Problem mit seinem MASTER CREATEDienstprogramm behebt , das verwendet wurde, um Apple DOS-Master-Disketten (bootfähige) zu erstellen: Der eingebaute INITBefehl erstellte Disketten, die nur auf Maschinen mit mindestens der gleichen Menge gebootet werden konnten der Erinnerung als diejenige, die sie geschaffen hatte. MASTER CREATEenthält eine selbstverlagernde Version von DOS, die auf Apples mit jeder Speicherkonfiguration bootet.

Apple DOS 3.2 wurde 1979 veröffentlicht, um Änderungen in den Bootmethoden von Computern widerzuspiegeln, die in den Nachfolger des Apple II, den Apple II Plus, eingebaut wurden. Die neue Firmware enthielt eine Autostart-Funktion, die beim Hochfahren des Systems automatisch einen Festplattencontroller fand und von diesem bootete – was ihm den Namen "Autostart ROM " einbrachte . DOS 3.2.1 wurde dann im Juli 1979 mit einigen kleineren Fehlerkorrekturen veröffentlicht.

Apple DOS 3.3 wurde 1980 veröffentlicht. Es verbessert verschiedene Funktionen von Version 3.2 und ermöglicht gleichzeitig große Gewinne beim verfügbaren Diskettenspeicher ; die neueren P5A/P6A PROMs im Disk-Controller ermöglichten das Lesen und Schreiben von Daten mit einer höheren Dichte, sodass statt 13 Sektoren (3,25  KiB ) 16 Sektoren (4 KiB) Daten pro Disk-Track gespeichert werden können, was die Kapazität erhöht von 113,75 KB auf 140 KB pro Plattenseite – davon werden 16 KB vom Dateisystem- Overhead und einer Kopie von DOS auf einer DOS 3.3-formatierten Platte verwendet, sodass 124 KB für Benutzerprogramme und Daten übrig bleiben. DOS 3.3 ist jedoch nicht abwärtskompatibel ; es kann keine DOS 3.2-Disketten lesen oder schreiben. Um dieses Problem zu beheben, hat Apple Computer ein Dienstprogramm namens "MUFFIN" veröffentlicht, um Apple DOS 3.2-Dateien und -Programme auf Disketten der Version 3.3 zu migrieren. Apple hat nie ein Dienstprogramm zum Kopieren in die andere Richtung angeboten. Um Apple DOS 3.3-Dateien zurück auf Disketten der Version 3.2 zu migrieren, hat jemand ein "NIFFUM"-Dienstprogramm geschrieben. Es gibt auch kommerzielle Dienstprogramme (wie Copy II Plus), die Dateien von und in beide Formate (und eventuell auch ProDOS ) kopieren können . Release 3.3 verbessert auch die Möglichkeit, zwischen Integer BASIC und Applesoft BASIC zu wechseln, wenn der Computer über eine Sprachkarte ( RAM- Erweiterung) oder Firmware-Karte verfügt.

Technische Details

Apple DOS 3.1-Disketten verwenden 13 Datensektoren pro Spur, wobei jeder Sektor 256 B hat. Sie verwendet 35 Spuren pro Diskettenseite und kann nur auf eine Seite der Diskette zugreifen, es sei denn, der Benutzer dreht die Diskette um . Damit steht dem Benutzer eine Gesamtspeicherkapazität von 113,75 KB pro Seite zur Verfügung, von denen etwa 10 KB für die Speicherung von DOS selbst und des Plattenverzeichnisses verwendet werden, während etwa 100 KB für Benutzerprogramme übrig bleiben.

Die erste Schicht des Betriebssystems heißt RWTS, was für "Lese/Schreib-Spursektor" steht. Diese Schicht besteht aus Subroutinen für die Spursuche, das Lesen und Schreiben von Sektoren und das Formatieren der Platte. Darauf aufbauend wurde eine API namens File Manager gebaut, die Funktionen zum Öffnen, Schließen, Lesen, Schreiben, Löschen, Sperren (dh Schreibschutz), Entsperren (dh Schreiben-Aktivieren) und Umbenennen von Dateien sowie zum Verifizieren implementiert die strukturelle Integrität einer Datei. Es gibt auch eine Katalogfunktion zum Auflisten von Dateien auf der Diskette und eine "init"-Funktion, die eine Diskette für die Verwendung mit DOS formatiert, eine Kopie von DOS auf den ersten drei Spuren speichert und ein Startprogramm (normalerweise als HELLO bezeichnet) speichert ), die beim Booten von dieser Diskette automatisch gestartet wird. Auf der Dateimanager-API sind die wichtigsten DOS-Routinen implementiert, die sich in den BASIC-Interpreter der Maschine einklinken und alle Plattenbefehle abfangen. Es bietet BLOAD , BSAVE und BRUN zum Speichern, Laden und Ausführen von binären ausführbaren Dateien. LOAD, RUN und SAVE werden für BASIC-Programme bereitgestellt, und ein EXEC wurde zum Ausführen von textbasierten Batchdateien bereitgestellt, die aus BASIC- und DOS-Befehlen bestehen. Schließlich gibt es vier Arten von Dateien, die durch Buchstaben in einer Katalogliste gekennzeichnet sind:

  • I – Ganzzahlige BASIC- Programme (in einem kompakten Format gespeichert, nicht im Klartext)
  • A – Applesoft BASIC- Programme (auch in einem gepackten, platzsparenden Format gespeichert)
  • B – Binärdateien , entweder ausführbare maschinensprachliche Programme oder Datendateien
  • T – ASCII- Textdateien (oder unverpackte Stapeldateien im Klartext)

Es gibt vier zusätzliche Dateitypen; "R", "S" und ein zusätzliches "A" und "B", von denen keines vollständig unterstützt wird. DOS erkennt diese Typen nur für Kataloglisten, und es gibt keine direkten Möglichkeiten, diese Dateitypen zu bearbeiten. Der Typ "R" fand einige Verwendung für verschiebbare binäre ausführbare Dateien. Einige Programme unterstützen den Typ "S" als Datendateien.

Eine Aufrufvektortabelle im Bereich von $03D0–03FF 16 ermöglicht es Programmen, DOS überall dort zu finden, wo es im Systemspeicher geladen ist. Wenn beispielsweise das in die BASIC- CLI eingehängte DOS nicht mehr funktioniert, kann es durch Aufrufen von Location $03D0 16 (976 10 ) neu initialisiert werden – daher der traditionelle Befehl "3D0G" ("3D0 go"), um vom Systemmonitor zu BASIC zurückzukehren .

Bootloader

Das Laden von Apple DOS umfasst eine Reihe von sehr kleinen Programmen, von denen jedes den Ladevorgang einige Schritte vorantreibt, bevor sie die Kontrolle an das nächste Programm in der Kette übergibt.

  • Ursprünglich unterstützte das Apple II ROM das Booten von Datenträgern überhaupt nicht. Beim Einschalten wird die Systemmonitor-Eingabeaufforderung angezeigt. Sowohl Monitor als auch Integer BASIC verfügen über Befehle zum Umleiten des Druckens an einen Druckertreiber in einem bestimmten Steckplatz , mit dem Befehl 6 Control-P (vom ML-Monitor) oder PR#6 (vom BASIC). Wenn der Monitor oder BASIC das nächste Eingabeaufforderungszeichen ausgab, rief der Computer die ROM-Routinen auf der Plattenkarte auf, um sie zu "drucken", die dann mit der Boot-Sequenz fortfahren würde. (Man könnte die Eingabeumleitung zu ähnlichen Zwecken verwenden.) Alternativ könnte der Benutzer vom ML-Monitor aus die Steckplatznummer eingeben und C600G eingeben, um den Boot-Code des Controllers direkt aufzurufen.
  • Als der Apple II Plus eingeführt wurde, bot er die Möglichkeit, jeden Erweiterungssteckplatz (von Steckplatz 7 bis Steckplatz 1) nach einem bootfähigen Erweiterungskarten-ROM zu scannen und automatisch aufzurufen.
  • Der ROM-Bootcode der Erweiterungskarte versucht, von Laufwerk 1 des Controllers zu booten, indem er den Lese-/Schreibarm auf Spur Null bewegt und versucht, 256 Bytes von Sektor Null dieser Spur zu lesen. (Wenn kein lesbarer Datenträger verfügbar ist, dreht sich das Laufwerk auf unbestimmte Zeit, bis einer bereitgestellt und die Laufwerkstür geschlossen wird.)
  • Sektor Null enthält ein kleines Programm, das den Computer anweist, die Sektoren 0 bis 9 der Spur Null unter Verwendung eines Teils des ROM-Boot-Codes in den Speicher zu lesen (wobei Sektor 0 erneut gelesen wird).
  • Das Programm in den Sektoren 1–9 von Spur 0, einschließlich des vollständigen RWTS-Codes, fährt dann fort, die Spuren 1 und 2 zu laden, die den Rest von DOS enthalten. Auf einer System-Master-Diskette ist auch Code enthalten, um die RAM-Konfiguration des Computers zu bestimmen und DOS so hoch wie möglich in den Systemspeicher zu verschieben, bis zur Grenze von 48 KB des Hauptspeichers des Apple II ($BFFF 16 ).
  • Sobald DOS in den Speicher geladen ist, versucht es, ein Startprogramm zu laden und auszuführen, wie im DOS-Programmcode angegeben. Dies ist normalerweise ein BASIC-Programm namens HELLO (oder ein anderer Name), aber DOS kann modifiziert werden, um andere Arten von Programmen beim Start auszuführen, wie beispielsweise eine ausführbare Binärdatei. Das Erscheinen der rechten Klammer ( ] ) auf dem Bildschirm zeigt dem Benutzer an, dass ein Applesoft BASIC-Startprogramm geladen wird, während ein Größer-als-Symbol ( > ) anzeigt, dass ein Integer BASIC-Programm geladen wird. (Dies sind die Eingabeaufforderungen für die jeweiligen BASIC-Versionen, die zu diesem Zeitpunkt initialisiert werden.)
  • Das Startprogramm beginnt dann mit der Ausführung.

Integer BASIC- und Applesoft BASIC-Unterstützung

Der ursprüngliche Apple II enthielt einen BASIC-Interpreter im ROM, der ursprünglich als Apple BASIC und später als Integer BASIC bekannt war . Variablen in dieser Sprache können nur Ganzzahlen im Bereich von −32.768 bis +32.767 ( 16-Bit- Binärwerte) verarbeiten; Gleitkommazahlen werden nicht unterstützt. Apple hat Microsoft beauftragt, Applesoft BASIC zu entwickeln , das Gleitkommazahlen verarbeiten kann. Applesoft BASIC kann keine Integer BASIC-Programme ausführen, was dazu führt, dass einige Benutzer sich der Aktualisierung widersetzen.

DOS 3.3 wurde veröffentlicht, als Applesoft BASIC auf dem Apple II Plus standardmäßig im ROM enthalten war. Integer BASIC wird in den RAM auf der Sprachkarte von Apple IIs (falls vorhanden) geladen und durch Eingabe von FP oder INT von BASIC kann der Benutzer zwischen beiden Versionen wechseln.

Ablehnen

Nach 1980 geriet Apple DOS in einen Zustand der Stagnation, als Apple seine Bemühungen auf den unglücklichen Apple III- Computer und sein SOS- Betriebssystem konzentrierte. Anfang und Mitte 1983 wurden zwei weitere Versionen von Apple DOS veröffentlicht, beide noch DOS 3.3 genannt, aber mit einigen Fehlerkorrekturen und besserer Unterstützung für das neue Apple IIe- Modell.

Ohne Patches von Drittanbietern kann Apple DOS nur Disketten lesen, die in einem 5,25-Zoll-Disk II-Laufwerk ausgeführt werden, und kann nicht auf andere Medien wie Festplattenlaufwerke, virtuelle RAM- Laufwerke oder 3,5-Zoll-Diskettenlaufwerke zugreifen . Die Struktur von Apple DOS-Disketten (insbesondere die freie Sektorenzuordnung, die auf einen Teil eines einzelnen Sektors beschränkt war) ist so aufgebaut, dass es nicht möglich ist, pro Laufwerk mehr als 400 KB gleichzeitig zur Verfügung zu haben, ohne dass fast alle Abschnitte groß umgeschrieben werden müssen des Codes; Dies ist der Hauptgrund, warum Apple diese Iteration von DOS 1983 aufgab, als Apple DOS vollständig durch ProDOS ersetzte .

ProDOS behält das 16-Sektor-Low-Level-Format von DOS 3.3 für 5,25-Zoll-Disketten bei, führt jedoch ein neues High-Level-Format ein, das für Geräte mit bis zu 32 MB geeignet ist  ; Damit ist es für Festplatten aus dieser Zeit und 3,5-Zoll-Disketten geeignet. Alle Apple-Computer ab dem II Plus können sowohl DOS 3.3 als auch ProDOS ausführen, wobei der Plus eine "Language Card"-Speichererweiterung erfordert, um ProDOS verwenden zu können; das e-Modell und spätere Modelle verfügen über integrierte Sprachkarten-Hardware und können daher ProDOS direkt ausführen. ProDOS enthält Software zum Kopieren von Dateien von Apple DOS-Disketten. Viele Leute, die die Verbesserungen von ProDOS nicht brauchten (und denen der viel größere Speicherbedarf nicht gefiel), verwendeten jedoch noch lange nach 1983 Apple DOS oder einen seiner Klone . Die Apple-Konvention, ein bootfähiges Betriebssystem auf jeder einzelnen Diskette zu speichern disk bedeutet, dass kommerzielle Software unabhängig vom Betriebssystem des Benutzers verwendet werden kann. Ein Programm namens DOS.MASTER ermöglicht es Benutzern, mehrere virtuelle DOS 3.3-Partitionen auf einem größeren ProDOS-Volume zu haben, was die Verwendung vieler Disketten-basierter DOS-Programme mit einer Festplatte ermöglicht.

Kurz nach dem Erscheinen von ProDOS entzog Apple Dritten die Erlaubnis, DOS 3.3 weiterzuvertreiben, gewährte jedoch einem Unternehmen, Syndicomm, eine exklusive Lizenz zum Weiterverkauf von DOS 3.3.

Kommerzielle Spiele verwendeten normalerweise kein Apple DOS, sondern hatten ihre eigenen benutzerdefinierten Festplattenroutinen sowohl für Kopierschutzzwecke als auch für die Leistung.

Leistungsverbesserungen

Die RWTS-Routine von DOS kann einen Track in zwei Umdrehungen mit richtigem Interleaving lesen oder schreiben. Ein Sektor der sich drehenden Platte läuft unter dem Lese-/Schreibkopf durch, während die RWTS-Routine den gerade gelesenen Sektor dekodiert (oder den nächsten zu schreibenden Sektor kodiert), und wenn dieser fehlende Sektor der nächste benötigte ist, muss DOS warten fast eine ganze Umdrehung der Platte für den Sektor, um wieder herumzukommen. Dies wird als "Aufdrehen" bezeichnet und ist ein wohlbekannter Leistungsengpass in Plattensystemen. Um dies zu vermeiden, werden die Sektoren auf einer DOS-Diskette in einer verschachtelten Reihenfolge angeordnet:

0 7 e 6 d 5 c 4 b 3 a 2 9 1 8 f

Später ordnete ProDOS die Sektoren in dieser Reihenfolge an:

0 8 1 9 2 a 3 b 4 c 5 d 6 e 7 f

Beim Lesen und Decodieren von Sektor 0 geht Sektor 8 vorbei, so dass Sektor 1, der nächste wahrscheinlich benötigte Sektor, ohne Wartezeit verfügbar ist. Beim Lesen von Sektor 7 passieren zwei nicht benötigte Sektoren f und 0, bevor Sektor 8 verfügbar ist, und beim Lesen von Sektor 15 muss das Laufwerk immer eine zusätzliche Umdrehung für Sektor 0 auf derselben Spur warten. Der tatsächlich benötigte Sektor 0 befindet sich jedoch in den meisten Fällen auf der nächsthöheren Spur, und diese Spur kann relativ zur letzten angeordnet werden, um die erforderliche Zeit zum Decodieren des gerade gelesenen Sektors und zum Bewegen des Kopfes zu haben, bevor Sektor 0 kommt um herum. Im Durchschnitt kann eine volle Spur in zwei Umdrehungen der Platte gelesen werden.

Leider hat der frühe DOS-Dateimanager diese Effizienz untergraben, indem er Bytes, die aus einer Datei gelesen oder in eine Datei geschrieben wurden, einzeln zwischen einem Plattenpuffer und dem Hauptspeicher kopierte, was mehr Zeit erforderte und dazu führte, dass DOS beim Lesen oder Schreiben von Dateien ständig die Drehzahlen explodierte. Schon früh wurden Programme zum Formatieren von Platten mit modifizierten Sektor-Interleaves verfügbar; Diese Disketten geben DOS mehr Zeit zwischen den Sektoren, um die Daten zu kopieren, wodurch das Problem behoben wird.

Später haben Programmierer außerhalb von Apple die Dateimanager-Routinen neu geschrieben, um zu vermeiden, dass für die meisten Sektoren einer Datei zusätzliche Kopien erstellt werden. RWTS wurde angewiesen, Sektoren direkt in oder aus dem Hauptspeicher zu lesen oder zu schreiben, anstatt aus einem Plattenpuffer, wenn ein vollständiger Sektor übertragen werden sollte. Ein früher "Patch" zur Bereitstellung dieser Funktionalität wurde in Call-APPLE veröffentlicht . Beschleunigungen im LOAD-Befehl um das Drei- bis Fünffache waren typisch.

Diese Funktionalität erschien bald in kommerziellen Produkten wie Pronto-DOS, Diversi-DOS, Hyper-DOS und David-DOS, zusammen mit zusätzlichen Funktionen, aber sie wurde nie in einer offiziellen Apple-DOS-Version verwendet. Ähnliche Funktionen wurden jedoch von Apples Nachfolger-Betriebssystem ProDOS verwendet. Das Apple IIGS- spezifische Betriebssystem GS/OS würde schließlich eine noch effizientere "Scatter Read"-Technik verwenden, die jeden Sektor lesen würde, der zufällig unter dem Lesekopf passiert, wenn er für die gelesene Datei benötigt wird.

Quellcode-Veröffentlichung

Im Jahr 2013, mehr als 35 Jahre nach dem Debüt des Apple II , wurde der ursprüngliche Apple DOS- Quellcode vom Computer History Museum auf seiner Website veröffentlicht. Es wurde vom ursprünglichen Autor Paul Laughton gespendet.

Verweise

Weiterlesen

  • Wert, Don; Lechner, Pieter (1981), Unter Apple DOS , Qualitätssoftware, ISBN 0-912985-00-3

Externe Links