AmigaDOS ist das Festplatten-Betriebssystem des AmigaOS, welches die Dateisysteme, Datei- und Verzeichnismanipulation, die Kommandozeilenschnittstelle (CLI) (später in Shell umbenannt) und Dateiumleitung beinhaltet.
In AmigaOS 1.x basiert AmigaDOS auf einer TRIPOS-Portierung von MetaComCo, geschrieben in BCPL. BCPL verwendet keine nativen Zeiger, sodass die fortgeschrittenen Funktionen des Betriebssystems schwierig zu benutzen und fehleranfällig waren. Das AmigaDOS Resource Project (ARP, früher AmigaDOS Replacement Project), ein Projekt, das vom Amiga-Entwickler Charlie Heath begonnen wurde, ersetzte viele der BCPL-Dienstprogramme durch kleinere, ausgefeiltere Äquivalente, die in C und Assembler geschrieben wurden, und stellte eine Wrapper-Bibliothek, die arp.library, zur Verfügung. Diese beseitigte die Schnittstellenprobleme in Anwendungen, indem sie automatisch Konvertierungen von nativen Zeigern (wie sie von C oder Assembler verwendet werden) in BCPL-Äquivalente und umgekehrt für alle AmigaDOS-Funktionen durchführte. Ab AmigaOS 2.x wurde AmigaDOS in C umgeschrieben, wobei die 1.x-Kompatibilität so weit als möglich beibehalten wurde.
Beginnend mit AmigaOS 4.0 gab AmigaDOS sein BCPL Erbe auf. Ab AmigaOS 4.1 wurde AmigaDOS um die Unterstützung von 64-Bit-Dateizugriff erweitert.
Dateisysteme AmigaDOS unterstützt verschiedene Dateisysteme und Varianten. Das erste Dateisystem wurde einfach Amiga Dateisystem genannt und war hauptsächlich für Disketten geeignet, da es kein automatisches Booten von Festplatten unterstützte. Auf Disketten wurde das Booten mit Code aus dem Bootblock durchgeführt.
Es wurde bald durch das FastFileSystem (FFS) ersetzt, weshalb das ursprüngliche Dateisystem nachträglich den Namen Old FileSystem (OFS) erhielt. FFS war platzsparender und messbar schneller als OFS. Mit AmigaOS 2.x wurde FFS ein offizieller Teil des Betriebssystems und wurde bald erweitert, um zwischenspeichernde Partitionen zu erkennen, später dann internationale Partitionen mit akzentuierten Zeichen in Datei- und Partitionsnamen, und schließlich mit MorphOS und AmigaOS 4 lange Dateinamen mit bis zu 108 Zeichen (ursprünglich 31).
Sowohl AmigaOS 4.x als auch MorphOS enthielten eine weiterentwickelte Version von FFS namens FastFileSystem 2. FFS2 enthielt alle Funktionen des ursprünglichen FFS. Um die Rückwärtskompatibilität zu wahren, gab es keine größeren strukturellen Änderungen. Allerdings unterscheidet sich FFS2 auf AmigaOS 4.1 dadurch, dass seine Funktionen durch Plug-ins erweitert werden können.
Wie bei FFS2 ist die AmigaOS 4 und MorphOS Version von Smart FileSystem ein Fork des originalen SFS und nicht 100 % kompatibel mit diesem.
Andere Dateisysteme wie FAT12, FAT16, FAT32 von Windows oder ext2 von Linux sind über einfach zu installierende Systembibliotheken (Drag & Drop) oder Module von Drittanbietern wie FAT95 (mit Lese-/Schreibunterstützung) verfügbar (zu finden im Aminet-Software-Repository). MorphOS 2 hat die Unterstützung für FAT-Dateisysteme bereits inkludiert. AmigaOS 4.1 hat ein neues Dateisystem namens JXFS eingeführt, das Partitionen > 1 Terabyte adressieren kann.
Zu den alternativen Dateisystemen für AmigaOS von Drittherstellern gehören das Professional File System, ein Dateisystem mit einer einfachen, auf Metadaten basierenden Struktur, das eine hohe interne Kohärenz ermöglicht, in der Lage ist, sich selbst zu defragmentieren und nicht ausgehängt werden muss, bevor es wieder eingehängt wird, und das Smart File System, ein Journaling-Dateisystem, das während der Inaktivität des Systems Journaling-Aktivitäten ausführt und von MorphOS als Standard-Dateisystem genutzt wird.
Offizielle Varianten der Amiga Dateisysteme
Old File System / Fast File System OFS (DOS0) FFS (DOS1) OFS International (DOS2) FFS International (DOS3) OFS Verzeichnis Caching (DOS4) FFS Verzeichnis Caching (DOS5)
Fast File System 2 (AmigaOS4.x / MorphOS) OFS Lange Dateinamen (DOS6) FFS Lange Dateinamen (DOS7)
Sowohl DOS6 als auch DOS7 bieten internationale Dateinamen wie in DOS2 und DOS3, nicht aber Verzeichnis Caching, das aufgrund von Fehlern in der ursprünglichen Implementierung aufgegeben wurde. Die Verwendung von DOS4 und DOS5 wird aus diesem Grund nicht empfohlen.
Die DOStypen sind untereinander abwärtskompatibel, aber nicht aufwärtskompatibel. Eine DOS7-formatierte Diskette kann nicht auf einem originalen Amiga FFS gelesen werden, und eine DOS3-Diskette kann nicht auf einem Kickstart 1.3-Amiga gelesen werden. Jedoch kann jede mit DOS0 formatierte Diskette mit FFS oder FFS2 von jeder Version des Amiga-Betriebssystems gelesen werden.
Aus diesem Grund war DOS0 tendenziell das bevorzugte Format von Softwareentwicklern, die ihre Software auf Diskette vertrieben. Nur bei Amiga-Spielen war es eine gängige Praxis, aus Kopierschutzgründen ein eigenes Dateisystem und einen eigenen Bootblock zu verwenden. Und wenn die Software ohnehin AmigaOS 2.x benötigte, wurde im Allgemeinen DOS3 verwendet.
FastFileSystem2-Plug-ins Mit dem Update von AmigaOS 4.0 im Juli 2007 wurden auch zwei Plug-ins für FFS2 veröffentlicht: fs_plugin_cache: erhöht die Leistung von FFS2 durch Einführung einer neuen Methode zur Datenpufferung. fs_plugin_encrypt: Datenverschlüsselungs-Plug-in für Partitionen unter Verwendung des Blowfish-Algorithmus.
Konsole Die Amiga-Konsole ist ein virtuelles Standard-Amiga-Gerät, das normalerweise CON: zugewiesen ist und via console.handler gesteuert wird. Sie wurde aus einer primitiven Schnittstelle in AmigaOS 1.1 entwickelt und wurde mit den Versionen 1.2 und 1.3 stabil, als sie als AmigaShell bekannt wurde, und ihr ursprünglicher Handler durch den newconsole.handler (NEWCON:) ersetzt wurde.
Die Konsole hat verschiedene Funktionen, die 1985 als aktuell angesehen wurden, wie Befehlsvorlagenhilfe, Umleitung auf Null (NIL:) und ANSI-Farbterminal. Der in Version 1.2 neu implementierte Konsolen-Handler ermöglicht viele weitere Funktionen, wie z. B. Befehlshistorie, Pipelines und automatische Erstellung von Dateien, wenn die Ausgabe umgeleitet wird. Als TCP/IP-Stacks wie AmiTCP in den frühen 1990er Jahren veröffentlicht wurden, konnte die Konsole auch Umleitungen von Internet-fähigen Amiga-Geräte-Handlern empfangen (z. B. TCP:, copy file TO TCP:Site/Port).
Im Gegensatz zu anderen Systemen, die Mitte der 1980er Jahre auf den Markt kamen, implementiert AmigaDOS keinen proprietären Zeichensatz. Die Entwickler entschieden sich vielmehr für den ANSI-ISO-Standard ISO-8859-1 (Latin 1), der den ASCII-Zeichensatz enthält. Wie in Unix-Systemen akzeptiert die Amiga-Konsole nur den Zeilenvorschub (LF) als Zeilenendezeichen (EOL). Die Amiga-Konsole unterstützt sowohl Akzentzeichen als auch Zeichen, die durch Kombinationen von „toten (unbelegten) Tasten“ auf der Tastatur erzeugt werden können.
Namenskonventionen Groß- und Kleinschreibung AmigaDOS unterscheidet im Allgemeinen nicht zwischen Groß- und Kleinschreibung. Die Angabe eines Geräts als Dh0:, DH0: oder dh0: bezieht sich immer auf dieselbe Partition.
Bei Datei- und Verzeichnisnamen ist dies jedoch vom Dateisystem abhängig, da einige Dateisysteme Groß- und Kleinschreibung als Flag bei der Formatierung erlauben. Ein Beispiel für ein solches Dateisystem ist das Smart File System. Dies ist praktisch, wenn es um Software geht, die aus der Unix-Welt mit Groß- und Kleinschreibung portiert wurde, verursacht aber bei nativen Amiga-Anwendungen, die die Groß- und Kleinschreibung nicht beachten, viel Verwirrung.
Fortgeschrittene Benutzer werden daher typischerweise das Groß-/Kleinschreibungs-Flag nur für Dateisysteme verwenden, die für Software verwendet werden, die aus Unix stammt. Das Umbenennen von Datei-, Verzeichnis- und Datenträgernamen ist mit gewöhnlichen Methoden erlaubt. Die Befehle rename foo Foo und relabel Bar: bAr: sind gültig und tun genau das, was erwartet wird; im Gegensatz zu Linux, wo mv foo Foo auf Dateisystemen wie VFAT, die Groß-/Kleinschreibung nicht berücksichtigen, zu der Fehlermeldung mv: `foo' and `Foo' are the same file führt.
Namenskonventionen für Datenträger Partitionen und physische Laufwerke werden üblicherweise als DF0: (Diskettenlaufwerk 0), DH0: (Festplatte 0) usw. bezeichnet. Im Gegensatz zu vielen Betriebssystemen sind jedoch die Namen der einzelnen Datenträger und Partitionen außerhalb der eingebauten physischen Hardware wie DF0: oder DH0: völlig willkürlich.
So könnte eine Festplattenpartition zum Beispiel „Workbench“ oder „System“ heißen. Die Nutzer können dann anstelle des Gerätenamens auch den Namen des Datenträgers verwenden, so dass auf eine Festplattenpartition auf dem Gerät DH0: namens Workbench entweder mit dem Namen DH0: oder Workbench: zugegriffen werden kann. Die Nutzer müssen nur dem System mitteilen, dass mit „Workbench“ der Datenträger Workbench: gemeint ist, indem sie den Doppelpunkt „:“ hinter dem Namen eingeben, wenn sie dies in einer Systemabfrage oder in der AmigaShell eingeben. Dieses Prinzip funktioniert mit allen Arten von Datenträgern.
Kann ein Datenträger mit dem angegebenen Namen nicht gefunden werden, fordert das Betriebssystem den Nutzer auf, das Medium mit dem angegebenen Datenträgernamen einzulegen bzw. anzuschließen oder erlaubt dem Nutzer, den Vorgang abzubrechen.
Darüber hinaus können mit dem Befehl assign logische Gerätenamen einem beliebigen Verzeichnis oder Gerät zugewiesen werden. So weisen Programme weisen ihrem Installationsverzeichnis häufig einen virtuellen Datenträgernamen zu. Ein fiktives Textverarbeitungsprogramm namens Textor könnte beispielsweise den Datenträgernamen Textor: dem Verzeichnis DH0:Arbeit/Textor zuweisen. Dies ermöglicht ein einfaches Verschieben von installierten Programmen:
1> Assign Textor: DH0:Arbeit/Textor
In AmigaDOS sind verschiedene Standardnamen für Verweise auf wichtige Systemorte vorgesehen, wie zum Beispiel SYS: für den Datenträger, von dem das System gestartet wurde, S: für Startup-Skripte, C: für AmigaDOS-Befehle, FONTS: für installierte Schriftarten etc.
Die Zuordnung von Datenträgerbezeichnungen kann auch für mehrere Verzeichnisse festgelegt werden, die dann als eine Vereinigung ihrer Inhalte behandelt werden. Zum Beispiel könnte FONTS: dem Verzeichnis SYS:Fonts zugewiesen werden und dann mit der add-Option des AmigaDos-Befehls assign auf z. B. Arbeit:MeineFonts erweitert werden.
1> Assign FONTS: SYS:Fonts 1> Assign FONTS: SYS:Fonts ADD Arbeit:MeineFonts
Damit können alle Schriftarten verwendet werden, die in einem der beiden Verzeichnisse installiert sind. Die Auflistung von FONTS: würde die Dateien aus beiden Verzeichnissen anzeigen.
Dateinamenserweiterungen AmigaDOS hat nur eine einzige vorgeschriebene Dateinamenserweiterung: .info, die an den Dateinamen eines jeden Icons angehängt werden muss.
Wenn eine Datei namens meinprogramm existiert, dann muss ihre Icon-Datei meinprogramm.info heißen. Zusätzlich zu den Bilddaten speichert die Icon-Datei auch Programm-Metadaten wie Optionen und Schlüsselwörter, ihre eigene Position auf dem Desktop (AmigaOS kann Icons an vom Benutzer definierten Stellen „einfangen“) und andere Informationen über die Datei. Informationen über die Größe und Position des Verzeichnisfensters werden in der .info-Datei gespeichert, die dem Verzeichnis zugeordnet ist, und Informationen über Festplattensymbole werden in der Disk.info im Stammverzeichnis des Datenträgers gespeichert.
Mit Ausnahme von Icons identifiziert das Amiga-System Dateitypen nicht anhand von Namenserweiterungen, sondern untersucht entweder das einer Datei zugeordnete Icon oder den binären Header der Datei selbst, um den Dateityp zu bestimmen.
Typisches Verhalten von virtuellen Geräten Das physische Gerät DF0: teilt sich die gleiche Diskettenlaufwerksmechanik mit PC0:, dem virtuellen CrossDOS-Gerät, das PC-formatierte Disketten lesen kann.