Smart File System
Das Smart File System (kurz SFS) ist ein Journaling-Dateisystem für Amiga-Computer und AmigaOS-abgeleitete Betriebssysteme. Es wurde mit dem Ziel entwickelt, die Leistung, Skalierbarkeit und Integrität im Vergleich zu nativen Amiga-Dateisystemen wie dem Amiga Fast File System (FFS) zu verbessern und bietet zudem einige einzigartige Funktionen. SFS ist auch auf modernen Systemen wie MorphOS und AROS verfügbar und kann über spezielle Treiber auf Linux genutzt werden.
Geschichte
SFS ist in der Programmiersprache C geschrieben und wurde im Jahr 1998 von John Hendrikx als Freeware entwickelt und veröffentlicht. Nachdem der Entwickler im Jahr 2000 die Amiga-Szene verlassen hatte, wurde der Quellcode von SFS veröffentlicht und die Entwicklung von Ralph Schmidt in MorphOS fortgesetzt.
Seit Mai 2005 sind SFSobject (Programm zum Setzen von Attributen von SmartFilesystem-Objekten)[1] und SFSconfig (Programm zur Abfrage und Einstellung einiger Parameter von SmartFilesystem-Partitionen)[2] unter der GPL-Lizenz verfügbar. Die SFS-Entwicklung hatte sich inzwischen geteilt; neben der ursprünglichen Amiga-Version gibt es weitere Versionen für MorphOS, AROS, AmigaOS 3 und AmigaOS 4, die zwar unterschiedliche Funktionsumfänge haben, aber zueinander kompatibel sind. Darüber hinaus gibt es einen Treiber für Linux, um SFS-formatierte Medien zu lesen und (experimentell) zu schreiben[3] GRUB unterstützt es nativ,[4] und es gibt freie Treiber, um es von UEFI zu nutzen[5]
Ab 2008 war SFS eines der wenigen, freien Dateisysteme, die noch auf Amiga-Computern verwendet wurden[6]. Die Versionen für AROS, AmigaOS und MorphOS basieren auf unterschiedlichen Zweigen. Die Linux-Version wird davon unabhängig entwickelt.
Eigenschaften
SFS verwendet Blockgrößen von 512 (29) bis 32768 (215) Bytes mit einer maximalen Partitionsgröße von 128 GB.
Seine gute Performance, besser als FFS, und die fehlende Notwendigkeit einer langen „Validierung“ im Falle eines Fehlers,[7][8] wird durch die Gruppierung mehrerer Verzeichniseinträge in einen einzigen Block und durch die Gruppierung von Metadatenblöcken in Clustern erreicht[9]. Eine Bitmap wird verwendet, um den freien Speicherplatz zu verfolgen, und Dateidaten werden mithilfe von Extents verfolgt, die in einer B+-Baumstruktur angeordnet sind.[9]
Die Integrität wird aufrechterhalten, indem ein Transaktionsprotokoll aller Änderungen, die über einen bestimmten Zeitraum an den Metadaten vorgenommen wurden, geführt wird.[9] Das Protokoll wird zunächst auf die Festplatte in den freien Speicherplatz geschrieben und dann werden die Metadatenblöcke direkt überschrieben. Sollte das System abstürzen, bemerkt es beim nächsten Einhängen des Dateisystems die nicht abgeschlossene Operation und setzt sie auf den letzten bekannten konsistenten Zustand zurück. Aus Leistungsgründen wird nur die Integrität der Metadaten gewährleistet. Tatsächliche Daten in Dateien können immer noch beschädigt werden, wenn ein Schreibvorgang auf halbem Wege abgebrochen wird.[10] Im Gegensatz zu den nativen Amiga-Dateisystemen FFS und OFS ist die Integrität des Dateisystems dadurch nur sehr selten gefährdet.
Eine Eigenschaft von SFS, die fast einzigartig unter den Amiga-Dateisystemen ist, ist seine Fähigkeit, Defragmentierung selbst durchzuführen, während das Dateisystem in Gebrauch ist, sogar für gesperrte Dateien.[9] Der Defragmentierungsprozess ist fast vollständig zustandslos (abgesehen von dem Ort, an dem er arbeitet), was bedeutet, dass er sofort angehalten und gestartet werden kann. Während der Defragmentierung wird die Datenintegrität sowohl der Metadaten als auch der normalen Daten gewährleistet. Das Dateisystem kann versuchen, eine ganze Datei an einen anderen Ort zu verschieben, wenn andernfalls eine Fragmentierung droht[11].
Das Dateisystem bietet ein Verzeichnis mit gelöschten Dateien zur Wiederherstellung an.[8]
Siehe auch
- FFS (Fast File System)
- OFS (Old File System)
- PFS (Professional File System)
- CrossDOS
- xfs (XFileSystem – nicht zu verwechseln mit XFS oder xFS)
- Disk-Validator
- Rigid Disk Block
- Liste von Dateisystemen
Weblinks
Einzelnachweise
- ↑ SFSobject im Aminet - disk/misc/SFSconfig.lha. Abgerufen am 9. Januar 2025.
- ↑ SFSconfig im Aminet - disk/misc/SFSobject.lha. Abgerufen am 9. Januar 2025.
- ↑ Amiga SmartFileSystem, Linux implementation. Archiviert vom am 4. Juni 2021; abgerufen am 10. November 2011 (englisch).
- ↑ GRUB features. In: GNU GRUB Manual 2.0. Archiviert vom am 4. Oktober 2015 (englisch).
- ↑ .Free Software EFI Drivers. Archiviert vom am 19. März 2015; abgerufen am 19. Oktober 2015 (englisch).
- ↑ Jeremy Reimer: Von BFS zu ZFS: Vergangenheit, Gegenwart und Zukunft von Dateisystemen. In: Ars Technica. Condé Nast Publications, 18. März 2008 (englisch): „Viele Leute haben das getan, und einige der Ergebnisse, wie das Professional File System (PFS) und das Smart File System (SFS), werden bis heute von Amiga-Fans verwendet.“
- ↑ Darren Eveland: Festplatteneinrichtung für AmigaOS 4.1 Classic. In: Hyperion Entertainment Blog. (englisch).
- ↑ a b Robert Williams: Hard Drivin'. In: Total Amiga. Nr. 6, 2000, S. 45 (englisch, totalamiga.org [PDF]).
- ↑ a b c d EC-Council: Computer Forensics: Investigating Hard Disks, File and Operating Systems. Cengage Learning, 2009, ISBN 978-1-4354-8350-7, Understanding File Systems and Hard Disks, S. 1–16 (englisch, asis.io [PDF]).
- ↑ Hendrikx, J: Smart Filesystem documentation. 4. August 1998, archiviert vom am 7. Juli 2004 (englisch).
- ↑ Husrev Taha Sencar, Nasir Memon: Digital Image Forensics: There is More to a Picture than Meets the Eye. Springer Science & Business Media, 2012, ISBN 978-1-4614-0757-7, S. 130 (englisch, google.com).