|Professional File System
|'PFS\1', 'muAF', 'AFS\1' (RDB)
|Max volume size
|104 GB (101 GiB)
|Max filename length
|All bytes except NULL, ':' and '/'
|January 1, 1978 - 2157
|Amiga permissions, multiuser permissions
|No (provided at the block device level)
|AmigaOS, MorphOS, AROS
The Professional File System is a filesystem originally developed commercially for the Amiga, now distributed on Aminet with a 4-clause BSD license. It is a compatible successor of AmiFileSafe (AFS), with an emphasis on added reliability and speed compared to standard Amiga filesystems. It also features multi-user abilities like the older MuFS.
The device is split into two main areas. At the beginning of the device is the metadata section, which consists of a root block, and a generic array of blocks that can be allocated to store metadata. The rest of the device is another contiguous generic array of blocks that can be allocated to store data. The metadata section usually uses a few percent of the device, depending on the size of the device.
The metadata is stored as a tree of single blocks in the metadata section. The entire directory structure is recorded in the metadata, so the data section purely contains data from files. The metadata describes the location of data in files with extents of blocks, which makes the metadata quite compact.
When a metadata update occurs, the system looks at the block containing the metadata to be changed, and copies it to a newly allocated block from the metadata section, with the change made, then it recursively changes the metadata in the block that points to that block in the same way. This way, eventually the root block needs to be changed, which causes the atomic metadata update.
The filesystem is reasonably good at keeping files unfragmented, although there is a defragmentation tool available which will work on an online filesystem.
It was the first filesystem to introduce the concept of the Recycle Bin natively at filesystem-level to the Amiga, holding the last few deleted files in a hidden directory on the disk root.
PFS version 5.3 was developed in C and a small portion of assembly code by Michiel Pelt.
((cite journal)): CS1 maint: unfit URL (link)