Professional File System
Lua error in package.lua at line 80: module 'strict' not found.
Lua error in package.lua at line 80: module 'strict' not found.
Developer(s) | Michiel Pelt |
---|---|
Full name | Professional File System |
Introduced | 1995 with AmigaOS |
Partition identifier | 'PFS\1', 'muAF', 'AFS\1' (RDB) |
Limits | |
Max. volume size | 137 GB |
Max. filename length | 107 characters |
Allowed characters in filenames | All bytes except NULL, ':' and '/' |
Features | |
Dates recorded | modification (mtime) |
Date range | January 1, 1978 - 2157 |
Date resolution | 1/50s |
Attributes | filenote |
File system permissions | Amiga permissions, multiuser permissions |
Transparent compression | No |
Transparent encryption | No (provided at the block device level) |
Data deduplication | No |
Other | |
Supported operating systems | AmigaOS, MorphOS |
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.[1] It also features multi-user abilities like the older MuFS.[1]
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[citation needed] filesystem.[1]
It was the first[citation needed] 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.[1]
PFS version 5.3 was developed in C and a small portion of assembly code by Michiel Pelt.