Light Mode

Zum Inhalt springen

Amiga Fast File System

aus Wikipedia, der freien Enzyklopadie

HINWEIS: Nicht zu verwechseln mit dem Berkeley Fast File System

Das Amiga Fast File System (kurz AFFS, historisch haufiger FFS) ist ein Dateisystem, das auf dem Amiga Personal Computer verwendet wurde.

Das vorherige Amiga-Dateisystem hatte nie einen spezifischen Namen und war ursprunglich einfach als ,,DOS" oder AmigaDOS bekannt. Nach der Veroffentlichung von FFS wurde das ursprungliche Dateisystem als Amiga Old File System (OFS) bekannt. OFS, das in erster Linie fur den Einsatz mit Disketten entwickelt worden war, erwies sich als zu langsam, um mit den Festplatten der damaligen Zeit Schritt halten zu konnen.

FFS wurde als vollstandiger Ersatz fur das ursprungliche Amiga-Dateisystem entwickelt. FFS unterscheidet sich von seinem Vorganger hauptsachlich durch die Eliminierung redundanter Informationen. Die Datenblocke enthalten nur Daten, so dass das Dateisystem die Ubertragung grosser Datenmengen direkt vom Hostadapter zum endgultigen Ziel verwalten kann.

FFS wurde mit Version 1.3 des AmigaOS[1] 1988 eingefuhrt[2] und ersetzte sowohl das Kickstart-ROM (bzw. die Kickstart-Diskette fur Amiga1000) als auch die Workbench-Diskette durch aktualisierte Software. Sie trug wie auch der Rest der AmigaOS 1.3-Komponenten die Versionsnummer v34.

Kickstart 1.3 enthielt Autoboot-Unterstutzung, so dass der Amiga nun sowohl von der Festplatte als auch von der reset-sicheren RAM-Disk (,,RAD:") gebootet werden konnte. Fruhere Kickstart-Versionen konnten nur von Diskette booten. Workbench 1.3 stellte das FFS-Dateisystem auf Diskette zur Verfugung, das in den RDB (Rigid Disk Block) auf Festplatten kopiert werden konnte. Konforme Blockgerate luden und installierten dann den Dateisystemtreiber, bevor Dateisysteme gemountet wurden, und ermoglichten so die Verwendung von ladbaren Dateisystemen auf Festplatten. Kickstart 1.2 konnte Workbench 1.3 von Diskette booten (und umgekehrt), aber man brauchte sowohl Kickstart als auch Workbench 1.3, um FFS-formatierte Festplatten automatisch zu booten.

Ab Kickstart 2.0 wurde die FFS-Dateisystem in das ROM integriert, so dass es nicht mehr notwendig war, FFS im RDB zu installieren. Die Option, Dateisysteme aus dem RDB zu laden, wurde jedoch beibehalten, um Fehler im ROM zu beheben, neue FFS-Funktionen zu nutzen oder ein Dateisystem eines anderen Herstellers zu verwenden.

Disketten sind unpartitionierte Gerate ohne RDB und kannten daher auch keinen Autoboot-Mechanismus. Sie waren nur bootfahig, wenn der DOS-Typ der Diskette einer war, dass das Dateisystem im ROM verstand. Daher waren FFS-formatierte Disketten bis zur Veroffentlichung von Kickstart 2.0 nicht bootfahig, und das Mounten unter Workbench 1.3 erforderte einige Hacks. Auch die ,,Directory Cache"-Varianten waren bis Kickstart 3.0 weder bootfahig noch wurden sie unterstutzt. Die verschiedenen FFS-Varianten hatten keine Kompatibilitatsprobleme mit Amiga-Software, da diese entweder die Systemaufrufe nutzte und daher mit jedem Dateisystem funktionierte, oder sie war ein ,,Trackloader" und benutzte uberhaupt kein Dateisystem.

FFS arbeitet in verschiedenen Modi, die durch sogenannte ,,DOS-Typen" definiert werden. AmigaOS-Dateisysteme werden durch einen Vier-Buchstaben-Deskriptor identifiziert, der entweder im RDB, in einer Einhange-Liste oder einem DOSdriver angegeben wird. Alternativ, wie es bei trackdisk-ahnlichen Geraten wie Disketten der Fall war, kann die Diskette selbst in jedem DOS-Typ formatiert werden. Diese konnen eine Blockgrosse zwischen 512 Bytes und 32 Kilobytes verwenden, sowie als multi-user file system (muFS) bezeichnetes Aquivalent zu AFFS vorliegen. Das FFS des AmigaOS 1.3 kannte zwei verschiedene Modi dieses Dateisystems, deren FFS-DOS-Typen die folgenden waren:

DOS\0
Der Modus fur das ursprungliche Amiga-Dateisystem (,,OFS," original file system) fur Disketten, auch als ,,altes" Amiga-Dateisystem (,,OFS," old file system) bezeichnet. Es wurde aus Kompatibilitatsgrunden beibehalten. Dies bedeutete, dass auch Nutzer mit OFS-formatierten Laufwerken diese lesen konnten, wenn FFS im RDB installiert war. Die meisten Disketten, die von Software-Firmen oder als Magazin-Coverdisks ausgeliefert wurden, verwendeten diesen DOS-Typ, so dass sie auf Amiga mit Workbench < 2.x wie dem Amiga 500 booten konnten.
DOS\1
Das erste Amiga Fast File System (FFS oder AFFS). Das neue Dateisystem, FFS. Die erste (diskettenbasierte) Version von FFS kannte keine weiteren Modi.

Mit AmigaOS 2.04 wurde FFS in der Version 37 ein Teil des Kickstart-ROMs. Damit einhergehend wurden zusatzliche Modi fur die korrekten Umwandlung von Gross- und Kleinschreibung der Akzentzeichen (diakritischer Zeichen) eingefuhrt. Zudem wurde ein On-Disk-Verzeichnis-Cache hinzugefugt. Jeder dieser neuen Modi war als OFS- und als FFS-DOS-Typ verfugbar. Dieses ungerade System diente der Paritat: OFS-Modi mit Ausnahme von DOS\0 wurden fast nie verwendet, waren aber dennoch verfugbar (Obwohl diese Modi auf OFS basierten, waren sie nicht kompatibel mit Amiga-Systemen ohne FFS).

Die folgenden vier neuen DOS-Typen wurden mit v37 des FFS eingefuhrt:

DOS\2
Der internationale Modus fur OFS (OFS-INTL). Dieser ermoglichte es, Dateinamen mit Akzentzeichen (diakritischer Zeichen) zu verwenden (d. h. solche Zeichen, die im lateinischen Zeichensatz nicht vorkommen wie zum Beispiel a und e).
DOS\3
Der internationale Modus fur FFS (FFS-INTL). Dies war der am haufigsten verwendete FFS-Modus. Bei allen hoheren DOS-Typen ist der internationale Modus immer aktiviert.
DOS\4
Verzeichnis-Caching fur OFS (OFS-DC). Uber einen einfachen Cache-Mechanismus wurden dedizierte Verzeichnislisten erstellt, anstatt die verknupften Verzeichnis- und Dateieintrage, die auf dem Speichermedium verstreut sind, zu sammeln. Zum Speichern der Verzeichnisdaten wurde ein gewisser (kleiner) Speicherbereich reserviert.[3] Dies verbesserte die Lesegeschwindigkeit von Verzeichnissen drastisch, aber das Erstellen, Loschen und Umbenennen von Dateien wurde langsamer. Die Lesegeschwindigkeit fur einzelne Dateien blieb unverandert.

Es wurde zu einer beliebten Wahl auf Amiga-Festplatten, aber laut Olaf Barthel, dem Programmierer von FFS2, ist die Verwendung von Modi mit Verzeichnis-Caching besser fur Disketten als fur Festplatten geeignet[4], wo es zu einer allgemeinen Verschlechterung der Performance im Vergleich zu den DOS-Modi ohne Verzeichnis-Caching fuhrt. Trotzdem wurde dieser Modus auf Disketten nur selten verwendet, da der Cache wertvollen Speicherplatz verbrauchte und der begrenzte Platz eine grosse Anzahl von Dateien von vornherein verhinderte. Dem Verzeichnis-Caching-Modus fehlt eine automatische Speicherbereinigung, was bedeutet, dass teilweise gefullte Cache-Blocke nie konsolidiert werden und weiterhin Platz verbrauchen[5].

DOS\5
Verzeichnis-Caching fur FFS (FFS-DC). Beide Modi waren mit fruheren Versionen von FFS nicht ruckwarts kompatibel.[6]

Version 40.1 war die letzte von Commodore veroffentlichte FFS-Version und wurde mit AmigaOS 3.1 sowohl auf Disketten als auch im ROM ausgeliefert. Danach erschienen mehrere inoffizielle Patches, die den Einsatz auf Festplatten mit einem 64-Bit-Adressierungssystem namens TrackDisk64 bzw. TD64 uber die ersten 2 GB hinaus erlaubten, die die Versionsnummer v44 trugen[7]. Die 2-GB-Dateigrossenbeschrankung und die 127-GB-Partitionsgrossenbeschrankung blieben aber bestehen, da dies eine Beschrankung der AmigaOS dos.library und aller damals aktuellen Amiga-Software war. Die Version von FFS, die mit AmigaOS 3.5 und 3.9 mitgeliefert wurde, war v45 und unterschied sich durch ein anderes 64-Bit-Adressierungssystem, das sogenannte New Style Device oder NSD[8].

In jungerer Zeit (ab 2003) haben MorphOS und AmigaOS 4 Unterstutzung fur ein leicht aktualisiertes ,,FFS2" von Olaf Barthel (FFS v46 bzw. v50) eingefuhrt. Dieses ist zum alteren FFS kompatibel. Es ist PowerPC-nativ und hat zwei weitere DOS-Typen eingefuhrt (die vom alteren FFS nicht gelesen werden konnen):

DOS\6
Lange Dateinamen fur OFS (OFS-LNFS). Dies erlaubte langere Dateinamen (bis zu 107 Zeichen) als das ubliche Amiga-Limit von 31 Zeichen.[7]
DOS\7
Lange Dateinamen fur FFS (FFS-LNFS).

Fur die LNFS-DOS-Typen gab es keine Verzeichnis-Caching-Modi; der internationale Modus war immer aktiviert.

Trotz der Moglichkeit, lange Dateinamen zu verwenden, galt FFS damals als weniger leistungsfahig als andere verfugbare Amiga-Dateisysteme. Abgesehen von den zusatzlichen DOS-Typen gibt es nur wenige funktionale Unterschiede zwischen FFS und FFS2 (obwohl einige altere, nicht spezifizierte Fehler behoben wurden). Es wird allgemein empfohlen, es nur fur altere Zwecke zu verwenden. Die Festplattenvalidierung ist in FFS2 weiterhin erforderlich und kann wie bereits in FFS zu Datenverlust fuhren.

Im September 2018 veroffentlichte Hyperion Entertainment AmigaOS 3.1.4 (basierend auf den Quellen von AmigaOS 3.1). Es enthielt ein aktualisiertes FFS V46 im Kickstart-ROM und unterstutzte nativ die APIs fur TD_64, NSD sowie die klassischen 32-Bit TD_ Speicheraufrufe. Dies ermoglichte es AmigaOS v3.x, grosse Medien (> 4 Gigabyte) zu verwenden und von diesen zu booten. Ausserdem waren Partitionsgrossen von > 2 Gigabyte moglich. Das Update 3.1.4.1 vom Juli 2019 enthielt ein zusatzliches, dateibasiertes Update fur FFS[9]. Im Mai 2021 wurde ein aktualisiertes AmigaOS 3.2 veroffentlicht[10] und bot ein ROM-basiertes V47 FFS-Update, wodurch es schneller und multithreaded wurde.

Weitere Implementierungen

[Bearbeiten | Quelltext bearbeiten]

Es gab nur wenige andere Implementierungen, die in der Lage waren, FFS-Dateisysteme zu lesen, die normalerweise einen Amiga-Emulator und eine Kopie des Betriebssystem-ROMs zum Lesen benotigten. Insbesondere die Unterstutzung fur AFFS (Amiga Fast File System) kann in den Linux-Kernel einkompiliert werden und bietet volle Lese-, Schreib- und Formatierungsunterstutzung fur FFS- und OFS-Partitionen aller DOS-Typen (ausser DOS\6 und DOS\7, die nur selten genutzt wurden).

Fur den Amiga gab es die Freeware-Anwendung XFileSystem (kurz xfs, nicht zu verwechseln mit xFS oder XFS)[11], die neben vielen anderen Dateisystemen auch OFS- und FFS-formatierte Laufwerke lesen und schreiben konnte. Es war auch das einzige Dateisystem fur den Amiga (neben FFS/FFS2 selbst), das dies konnte. Allerdings wurden weder die DOS\6 oder DOS\7 Modi noch das Formatieren von Laufwerken unterstutzt.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. | The only two reasons to upgrade from KICKSTART 1.2 to 1.3. In: www.gregdonner.org. Abgerufen am 12. November 2012 (englisch).
  2. | 1.3 Release bestatigt am 16. September 1988 von Carolyn Scheppner von CATS in amiga.dev im Byte Information Exchange (BIX) Kopie der BIX-Ankundigung aus dem USENET@1@2Vorlage:Toter Link/groups.google.co.uk (Seite nicht mehr abrufbar, festgestellt im Marz 2025. Suche in Webarchiven) Info: Der Link wurde automatisch als defekt markiert. Bitte prufe den Link gemass Anleitung und entferne dann diesen Hinweis.
  3. | Amiga History Guide. In: www.AmigaHistory.co.uk. Abgerufen am 1. Mai 2017 (englisch).
  4. | Limitations and Drawbacks in DCFS modes - AmigaOS Documentation Wiki. In: wiki.amigaos.net. Abgerufen am 7. Mai 2017 (englisch).
  5. | DCFS und LNFS Low Level Data Structures - AmigaOS Documentation Wiki. In: wiki.amigaos.net. Abgerufen am 7. Mai 2017 (englisch).
  6. | Overview of Amiga Filesystems. In: www.kernel.org. Abgerufen am 6. Juni 2016 (englisch).
  7. | trackdisk64 readme. In: aminet.net. Abgerufen am 6. Juni 2016 (englisch).
  8. | AmigaOS 3.5 - Funktionen. In: amigaworld.de. Abgerufen am 6. Juni 2016.
  9. | Update to AmigaOS 3.1.4 released. Abgerufen im 1. Januar 1 (englisch).
  10. | AmigaOS 3.2 for all Classic Amigas released and available. Abgerufen im 1. Januar 1 (englisch).
  11. | xfs readme. In: aminet.net. Abgerufen am 6. Juni 2016 (englisch).