

Entstehungsgeschichte von PFS2
Das normale Dateisystem des Amiga (OFS) ist alles andere als schnell. Commodore hat mehrfach versucht das alte Dateisystem zu verbessern. Mit Workbench 2.0 kam das Fast File System (FFS) hinzu und Workbench 3.x brachte schließlich das Fast File System mit Verzeichnis-Pufferung (FFS-DC). Hierbei wird das Durchsuchen von Verzeichnissen erheblich beschleunigt, doch sind das Schreiben und Verzeichnisoperationen (Löschen, Umbenennen usw.) sogar langsamer als je zuvor.
Aus diesen Gründen begann Michiel Pelt im Sommer 1993 ein völlig neues Dateisystem für den Amiga zu entwickeln. Ende 1993 wurde das erste Professional File System als Shareware auf dem Aminet veröffentlicht. Mit Hilfe der bei dieser Version erworbenen Erfahrung wurde dann ein völlig neues Filesystem entwickelt und von Fourth Level Development im Jahre 1995 veröffentlicht. Sie nannten es Ami-FileSafe (AFS) und es war bis Ende 1996 ein erfolgreiches Produkt.
Seit April 1998 liegt das Urheberrecht wieder bei Michiel Pelt, dem Autor der Software, und seiner eigenen Firma Great Effects Development. Dieses ist nun die erste Veröffentlichung des neuen Professional File System 2 (PFS2).
Leistungsmerkmale
PFS2 bietet viele Vorteile gegenüber dem Standard Filesystem FFS. Die herausragendsten Eigenschaften sind:
Hohe Leistung
PFS2 wurde entwickelt und hoch optimiert um maximale Leistung für alle Disk Operationen zur Verfügung zu stellen. Die signifikantesten Verbesserungen gegenüber FFS werden beim Lesen und Schreiben von Dateien sowie beim Durchsuchen von Verzeichnissen erzielt, je nach eingesetztem Laufwerk, der Anzahl von Puffern und dem verwendeten Prozessor sind Steigerungen von über 500% keine Seltenheit.
Disks sind immer gültig
Ein PFS2 Laufwerk ist immer gültig (validiert), egal was auch geschieht. Ein Programm stürzt ab, der Strom fällt aus usw., PFS2 wird trotzdem neu starten als sei nichts geschehen. Detailierte informationen über diesen Atomic Commit genannten Mechanismus finden Sie bei Bedarf unter PFS2 Atomic Commit.
Zuverlässigkeit
PFS2 wurde sorgfältig getestet und ist ein extrem zuverlässiges und stabiles Filesystem. Aber das war uns noch nicht genug: PFS2 hat einen eingebauten Mechanismus um Probleme frühzeitig zu erkennen und zu beheben. Wenn PFS2 ein Problem erkennt wird es alles tun um Ihre Daten zu retten.
Paralleler Zugriff ohne Leistungsverlust
FFS bricht zusammen wenn mehrere Zugriffe auf einem Laufwerk stattfinden. Mit PFS2 werden Sie keinerlei Leistungseinbrüche feststellen.
Volle AmigaDos Kompatibilität
Einfaches Retten von Dateien
Versehentlich gelöschte oder überschriebene Dateien können einfach aus dem Delete Directory wiedergewonnen werden.
Compatibilität mit Ami-FileSafe
PFS2 ist voll kompatibel zu Ami-FileSafe, d.h. PFS2 kann Ami-FileSafe Volumes behandeln als seien es PFS2 Volumes und sogar umgekehrt.
Automatisches Begrenzen von Logfiles
PFS2 kann Logfiles oder andere lange Dateien automatisch begrenzen und somit verhindern, daß sie unendlich wachsen.
Compatibilität mit FFS
PFS2 ist auf Filesystem Level voll kompatibel zu FFS, bis auf ein paar nur selten benutzte Filesystem Packets. Das heißt praktisch alle Tools und Applikationen, die das Filesystem nutzen funktionieren genauso wie immer. Auch mit Backup Programmen sind keinerlei Probleme zu erwarten.
Doch einige Programme versuchen auch direkt, unter Umgehung des Filesystems, auf den Datenträger zuzugreifen und funktionieren deshalb nur auf FFS Medien korrekt. Beispiele sind Disk Optimiser und einige Reperatur Programme. Diese Art von Programmen muß deshalb speziell auf die Zusammenarbeit mit PFS2 vorbereitet sein, da PFS2 die Daten völlig anders und dabei effizienter auf dem Datenträger ablegt.
Das einzige Feature von FFS, daß nicht von PFS2 unterstützt wird, sind die sogenannten Record Locks. Uns ist jedoch zur Zeit kein einziges Programm bekannt welches diese nutzt.
System Voraussetzungen
PFS2 arbeitet auf jedem Amiga mit Kickstart 2.04 oder höher. Es akzeptiert DD/HD Disketten Laufwerke und RDB (Rigid Disk Block) Festplatten. Jedes Gerät, das mit FFS problemlos funktioniert, wird dies auch mit PFS2 tun. Der benötigte Speicher hängt von der Anzahl der vewendeten Puffer ab, in einer Minimal Konfiguration sind das weniger als 150K. Wenn mehr freier Speicher für PFS2 zur Verfügung gestellt wird erhöht dies die Leistung. Die Floppy Version benötigt ca. 60K pro Laufwerk.
Schnellere Prozessoren und höhere Taktraten können die Leistung von PFS2 beträchtlich erhöhen, speziell angepaßte Versionen für praktisch alle 680x0 Prozessoren befinden sich im Lieferumfang. Versionen für PowerPC Amigas sind für die Zukunft geplant.
Hinzufügen von Puffer
Um auf eine Datei zuzugreifen benötigt PFS2 alle Informationen über diese Datei, welche aus dem Verzeichnis und der Allocation Tables gewonnen werden. Wenn solche Informationen einmal gelesen wurden, werden sie so lange wie möglich im Speicher gehalten. Dieser Speicher wird durch die Puffer definiert, wobei jeder einen Block speichern kann.
Puffern von Blöcken erhöht die Zugriffsgeschwindigkeit erheblich, da der Hauptspeicher des Computers um ein vielfaches schneller ist als jede Disk. Datenträger sind speziell bei Seek Operation relativ langsam, weshalb PFS2 versucht diese auf ein Minimum zu beschränken und stattdessen die Puffer zu benutzen. Deshalb sind wirklich hohe Übertragungsraten auch nur mit einer ausreichenden Menge von Puffern zu erzielen.
Jede PFS2 Partition sollte mindestens über 100 Puffer verfügen, empfohlen sind jedoch zwischen 150 und 250, wobei größere Volumes auch über mehr zugeordnete Puffer verfügen sollten. Wenn eine Partition sehr große Verzeichnisse enthält (mehr als 2000 Dateien) sollten 250 bis 350 Puffer benutzt werden.
PFS2 verfügt über eingebaute Kontrollmechanismen um sicherzustellen, daß die Anzahl der Puffer zwischen 70 und 500 liegt. Mit weniger als 70 Puffern kann PFS2 unter Umständen nicht richtig arbeiten und bei mehr als 500 Puffern wird der Verwaltungsaufwand dafür ein ernstes Problem.
Jeder Puffer hat eine Größe von 1024 Byte (1K), unabhängig von der realen Blockgröße.
Atomic Commit
Wenn Ihr Amiga während einer Schreiboperation abstürzt werden normale FFS Volumes 'invalidated' und das System versucht beim nächsten Neustart diese automatisch zu reparieren. Danach befindet sich das jeweilige Verzeichnis im gleichen Zustand wie es vor der Schreiboperation war. Dies ist zwar eine nette Eigenschaft aber sie hat 3 entscheidende Nachteile:
1. Validieren kostet viel Zeit, was auf einem großen Volume sehr viel
Geduld vom Benutzer verlangt.
2. Wenn während des Absturzes gerade eine Datei überschrieben wurde, dann
verlieren Sie vermutlich sowohl die alte als auch die neue Datei.
3. Diese Methode funktioniert nicht immer!
PFS2 sorgt dafür, daß alle Strukturen eines Verzeichnisses immer gültig sind. Selbst wenn der Computer einmal während einer Schreiboperation abstürzt wird das Volume nach einem Neustart immer fehlerfrei sein, ohne die Notwendigkeit es zu validieren.
PFS2 erreicht dies durch eine Technik namens 'Atomic Commit'. Das bedeutet, der Datenträger geht immer direkt von einem gültigen Zustand in den nächsten gültigen Zustand über, und zwar durch einen einzigen nicht unterteilbaren (deshalb 'atomic') Zugriff.
PFS2 benutzt diesen Mechanismus auf dem gesamten Medium, bei jeder Struktur, jedem Verzeichnis und jeder Datei. Wenn der Computer also doch einmal bei einem Schreibzugriff abstürzen sollte, dann bleibt die bisherige Datei ohne jeden Fehler erhalten, als wäre nichts passiert.
Delete Directory
Manchmal kann es passieren, daß Dateien versehentlich gelöscht werden, das kann jedem einmal passieren. Und was dann, wenn man in diesem Fall über kein Backup verfügt?
Mit PFS2 ist dies kein Problem: Schauen Sie einfach in das Delete Directory, auch deldir genannt, in dem PFS2 alle gelöschten Dateien speichert. Es enthält immer die letzten 31 gelöschten Dateien und der Zugriff darauf ist sehr einfach.
Das deldir ist ein verstecktes Verzeichnis und wird nicht im normalen Verzeichnis einer Partition angezeigt. Man kann nur darauf zugreifen indem man den kompletten Namen angibt welcher '.deldir' lautet. Es befindet stets im Ursprungsverzeichnis einer Partition. Jedes Programm kann darauf zugreifen vorausgesetzt es gibt den exakten Namen an.
Dateien im deldir
Jede Datei, die gelöscht wird, wird tatsächlich zunächst nur in das Delete Directory verschoben. Das gleiche gibt für überschriebene Dateien. Wenn also beispielsweise die startup-sequence versehentlich überschrieben wird, finden Sie die ältere Version im deldir wieder.
Das deldir hat 31 Plätze (Slots), nummeriert von 0 bis 30. Jeder Slot kann eine Datei aufnehmen, wenn alle Slots voll sind werden die ältesten Einträge überschrieben.
Problem Erkennung
PFS2 tut alles um Ihre Daten sicher aufzubewahren, doch auch ein PFS2
Volume kann ernste Probleme bekommen:
- einzelne Blöcke des Datenträgers weisen Fehler auf
- ein externes Programm zerstört durch PFS2 gepufferte Blöcke
- ein externes Programm (wie ein Virus) zerstört Daten
Wenn solch ein fehler auftritt wird er vermutlich weitere nach sich ziehen. Das beste wäre in diesem Fall jeden weiteren Schreibzugriff zu unterbinden und zunächst einmal ein Backup anzufertigen um so viele Daten wie möglich zu retten.
PFS2 hat eingebaute Mechanismen um solche Probleme zu erkennen. Wenn PFS2 ein problem erkennt macht es das Volume sofort Read Only und verhindert so weitere Schäden.
Einige der Probleme die PFS2 automatisch erkennt:
Out of bounds checking
Zugriffe außerhalb der Partition werden erkannt.
Block validity checking
PFS2 überprüft ob Blöcke syntaktisch korrekt sind.
Konfigurations Fehler
PFS2 überprüft, ob Speicher mit der angegebenen Mask und BufMemType auch
wirklich durch das Device angesprochen werden können.
|
Fazit: Die Geschindigkeits Steigerung ist überweltigend, zum Beispiel geht scan dir mit PFS2 und einem Disk Puffer von 200 10mahl schneller als mit FFS und einem Disk Puffer von 30. Dadurch startet Voyager NG mit PFS2 ohne lange auf die Festplatte zuzugreifen und was es heisst das die Disk immer validiert ist brauche ich wohl keinen erzählen .Allerdings hat das setzten vom dem Disk Puffer auf 200 bei meinen 5 Partitionen 3 MB Ram gekostet. Das Hohen mass an Geschwindigkeit , Sicherheit und Stabilität von PFS2 macht es Emfehlenswert. | ![]() |
-sk-
Kontakt
Great Effects Development:
| Michiel Pelt | Autor von PFS2, Programmierer von Kang-FU |
| Hugo Hoekstra | Leiter des Games Department, Grafik, PR |
| Fred Hoekstra | Berater |
| Richard van Meurs | zusätzliche Programmierung und PC-Portierung |
Great Effects Development kann erreicht werden über:
eMail:
| info@greed.nl | allgemeine Fragen und Informationen |
| support@greed.nl | Kundendienst |
www:www.greed.nl
Postanschrift:
Great Effects Development
Hofwijckplein 46a
2515 RL Den Haag
Niederlande