The Smart File System (SFS) is a journaling filesystem used on Amiga computers and AmigaOS-derived operating systems (though some support also exists for IBM PC compatibles). It is designed for performance, scalability and integrity, offering improvements over standard Amiga filesystems as well as some special or unique features.

SFS
Developer(s)John Hendrikx
Full nameSmart File System
Introduced1998; 26 years ago (1998)
Partition IDs'SFS\0'
Limits
Max volume size127 GB
Max file size4 GB
Max filename length107 characters
Features
Date rangeJanuary 1, 1978 - 2157
Date resolution1/50s
Attributesfilenote, hidden, undeletable
Transparent
compression
No
Transparent
encryption
No (provided at the block device level)
Other
Supported
operating systems
AmigaOS (version 1.279), AROS (1.84), MorphOS (1.224), AmigaOS 4 (1.293), Linux (1.0beta12)

Features

edit

SFS uses block sizes ranging from 512 (29) to 32768 (215) bytes with a maximum partition size of 128 GB. Its good performance, better than FFS, and lack of need for long "validation" in case of an error,[1][2] is achieved by grouping multiple directory entries into a single block and by grouping meta data blocks together into clusters.[3] A bitmap is used to keep track of free space, and file data is kept track of using extents arranged into a B+ tree structure.[3]

Integrity is maintained by keeping a transaction log of all changes made to metadata over a certain period of time.[3] The log is written to disk first into free space and then meta data blocks are overwritten directly. Should the system crash, the next time the filesystem is mounted it will notice the uncompleted operation and roll it back to the last known consistent state. For performance reasons, only metadata integrity is ensured. Actual data in files can still be corrupted if a write operation is terminated halfway through.[4] Unlike the original Amiga filesystems, FFS and OFS, filesystem integrity is very rarely compromised by this.

One feature of SFS that is almost unique among Amiga filesystems is its ability to defragment itself while the filesystem is in use, even for locked files.[3] The defragmentation process is almost completely stateless (apart from the location it is working on), which means it can be stopped and started instantly. During defragmentation data integrity is ensured of both meta data and normal data. The filesystem may attempt to move a whole file to a different location when fragmentation is going to occur otherwise.[5]

The filesystem offers a directory containing deleted files for recovery.[2]

History

edit

SFS is written in C and was originally created and released as freeware in 1998 by John Hendrikx. After the original author left the Amiga scene in 2000, the source code to SFS was released and its development continued by Ralph Schmidt in MorphOS.

Since May 2005 SFSobjec and SFSconfig are available under the GPL license. SFS development has now forked; as well as the original Amiga version, there are now versions for MorphOS, AROS, AmigaOS 3, and a version for AmigaOS 4, which have different feature sets but remain compatible to each other. In addition, there is a driver for Linux to read (experimental to write) Amiga SFS volumes,[6] GRUB natively supports it,[7] and there are free drivers to use it from UEFI.[8]

As of 2008, SFS was one of the independent filesystems still being used on Amiga computers.[9]

Versions for AROS, AmigaOS and MorphOS are based on different branches. The Linux version is independent code.

See also

edit

References

edit
  1. ^ Darren Eveland. "Hard drive setup for AmigaOS 4.1 Classic". Hyperion Entertainment Blog.
  2. ^ a b Robert Williams (2000). "Hard Drivin'" (PDF). Total Amiga (6): 45.
  3. ^ a b c d EC-Council (2009). "Understanding File Systems and Hard Disks". Computer Forensics: Investigating Hard Disks, File and Operating Systems (PDF). Cengage Learning. pp. 1–16. ISBN 978-1-4354-8350-7.
  4. ^ Hendrikx, J (4 August 1998). "Smart Filesystem documentation". Archived from the original on 2004-07-07.
  5. ^ Husrev Taha Sencar; Nasir Memon (1 August 2012). Digital Image Forensics: There is More to a Picture than Meets the Eye. Springer Science & Business Media. p. 130. ISBN 978-1-4614-0757-7.
  6. ^ "Amiga SmartFileSystem, Linux implementation". Archived from the original on 4 June 2021. Retrieved November 10, 2011.
  7. ^ "GRUB features". GNU GRUB Manual 2.0. Archived from the original on 4 October 2015.
  8. ^ "Free Software EFI Drivers". Archived from the original on 19 March 2015. Retrieved 19 October 2015.
  9. ^ Jeremy Reimer (18 March 2008). "From BFS to ZFS: past, present and future of file systems". Ars Technica. Condé Nast Publications. Many people did that, and some of the results, such as the Professional File System (PFS) and Smart File System (SFS), are still used by Amiga fans to this day.
edit