# Professional File System

Das Professional File System (kurz PFS) war ein zunächst kommerzielles Dateisystem für AmigaOS. PFS fand besonders in der professionellen Amiga-Community Verwendung, da es eine zuverlässige Lösung für Benutzer war, die mit großen und kritischen Datenmengen arbeiteten. Es wurde häufig in Kombination mit Anwendungen wie Video- und Audio-Editing-Software verwendet, die hohe Anforderungen an die Dateisystemleistung stellten.

## Historie von PFS / PFS3

Das Professional File System (PFS) wurde 1995 von dem niederländischen Entwickler Michiel Pelt für AmigaOS veröffentlicht. Es war kompatibel zum Ami-Filesafe Dateisystem (AFS), einem weiteren kommerziellen Dateisystem für AmigaOS, das entwickelt wurde, um die Zuverlässigkeit und Datenintegrität zu verbessern. AFS führte den Mechanismus der Transaktionssicherheit bei der Nutzung von Festplatten ein.
PFS wurde entwickelt, um die Leistung und Zuverlässigkeit von Amiga-Computern zu verbessern, insbesondere in Bezug auf die Handhabung größerer Festplatten und höherer Dateisystemstabilität. Es unterstützte zusätzliche Funktionen wie Mehrbenutzerfähigkeit und Papierkorb-Funktionen, was es zu einer fortschrittlichen Lösung im Vergleich zu den Standard-Dateisystemen von AmigaOS machte.
Nach Veröffentlichung von PFS wurde eine verbesserte Version namens PFS3 eingeführt, mit der die Performance nochmals erhöht wurde. Neben der Handhabung von größeren Dateisystemen wurden in Bezug auf die Fragmentierung und das Metadaten-Management Optimierungen vorgenommen. Dies führte zu einer stabileren Version des Dateisystems, die auf AmigaOS 3.x und später auch auf Amiga-Emulatoren verwendet werden konnte.
Nachdem der Quelltext von PFS im Aminet unter der 4-Klausel-BSD-Lizenz freigegeben wurde, übernahm Toni Wilen dessen aktive Weiterentwicklung und veröffentlichte diese seitdem als PFS3 All-In-One (AIO). Sie brachte Unterstützung für moderne Festplatten, verbesserte SCSI-Kompatibilität sowie zahlreiche Fehlerkorrekturen und bietet eine hohe Kompatibilität mit verschiedenen AmigaOS-Versionen (einschließlich 1.x bis 3.x). Das Projekt PFS3 AIO sorgt dafür, dass die Amiga-Plattform auch im Bereich der Datenspeicherung weiterhin konkurrenzfähig bleibt.

## Architektur und Funktionsweise

PFS ist in zwei Hauptbereiche unterteilt:
* Metadatenbereich: Dieser besteht aus einem Rootblock und einer generischen Reihe von Blöcken, die zur Speicherung von Metadaten verwendet werden. Dieser Bereich nimmt in der Regel nur einen kleinen Prozentsatz des Gerätes in Anspruch, abhängig von der Größe des Gerätes.
* Datenbereich: Dies ist eine zusammenhängende Anordnung von Blöcken, die zur Speicherung der eigentlichen Daten verwendet werden.
Die Metadaten werden in einer Baumstruktur organisiert und beschreiben den Speicherort der Datenblöcke. Diese Struktur ermöglicht eine kompakte Darstellung der Metadaten, sodass der Datenbereich ausschließlich die Nutzdaten enthält.

### Metadaten-Management

Bei einer Aktualisierung der Metadaten kopiert das System den zu ändernden Metadatenblock in einen neu zugewiesenen Block im Metadatenbereich und nimmt dort die Änderungen vor. Anschließend werden die Verweise in den übergeordneten Metadatenblöcken rekursiv aktualisiert. Sollte auch der Rootblock betroffen sein, führt dies zu einem atomaren Metadaten-Update. Dies ist eine Schlüsseltechnologie von PFS, die das Dateisystem stabiler und sicherer macht. Es schützt vor Datenkorruption und sorgt dafür, dass Änderungen an den Metadaten zuverlässig und konsistent durchgeführt werden – selbst bei Systemabstürzen oder anderen unvorhergesehenen Ereignissen.

### Fragmentierung

PFS minimiert die Fragmentierung der Dateien, wodurch eine hohe Lese- und Schreibgeschwindigkeit gewährleistet wird. Der Fragmentierungsgrad bleibt vergleichsweise gering. Ein Defragmentierungstool ist ebenfalls verfügbar und kann auf einem Online-Dateisystem angewendet werden.

### Papierkorb-Funktion

PFS war das erste Dateisystem, das das Konzept des „Papierkorbs“ nativ auf Dateisystemebene integrierte. Gelöschte Dateien werden in einem versteckten Verzeichnis auf der Festplatte gespeichert, wodurch ein einfaches Wiederherstellen von Dateien möglich ist.

### Entwicklung

PFS Version 5.3 wurde in den Programmiersprachen C und einem kleinen Teil Assembler entwickelt. Diese Kombination aus Hochsprachen- und Maschinencode sorgt für eine hohe Leistung und Effizienz.