6 ms·
There are a couple of generations of filesystems in between FFS and ZFS. And for modern filesystems it's also worth looking at btrfs, Microsoft's Resilient File
by pjdesno 2y ago
There are a couple of generations of filesystems in between FFS and ZFS. And for modern filesystems it's also worth looking at btrfs, Microsoft's Resilient File System, and Apple APFS.
Also note that ext2 is basically a re-implementation of FFS, without the interleaving because it's designed for disks with integrated controllers.
- AdieuToLogic 2y ago> There are a couple of generations of filesystems in between FFS and ZFS. Quite true. I did not mean to imply ZFS was the immediate successor to FFS, but instead that it is a superior choice currently. > And for modern filesystems it's also worth looking at btrfs, Microsoft's Resilient File System, and Apple APFS. All good options and which to consider is applicable when running Linux, MS-Windows, and macOS respectively. If FreeBSD+ZFS is a possibility though... :-)
- deleted 2y ago[deleted]
- adrian_b 2y agoNext in date after FFS, I consider as one of the most innovative and influential filesystems the HPFS (High-Performance File System), which was introduced in November 1989, together with the OS/2 version 1.2 operating system. Among other new features, HPFS has introduced extended file attributes and B-tree directories (both features are ubiquitous in modern filesystems). Two very important filesystems that have been heavily influenced by HPFS have been Microsoft NTFS and Silicon Graphics XFS, both introduced in 1993. XFS combined ideas from HPFS with some from the earlier Silicon Graphics filesystem, Extent FS, which had been introduced in October 1988 and which had much better performance for big files than the Berkeley FFS (because file blocks were allocated sequentially whenever possible, instead of being addressed indirectly and scattered on the disk). Journaling in filesystems has been introduced by IBM, in JFS (Journaled FS, February 1990). An influential research report was "Beating the I/O Bottleneck: A Case for Log-Structured File Systems", by John K. Ousterhout & Fred Douglis, written in 1988-10 at Berkeley. A paper derived from it was presented at USENIX in 1990-06.
- kragen 2y agoDidn't the Oberon filesystem have B-tree directories before HPFS? And what do you mean by "extended file attributes"? Nowadays I interpret that phrase as meaning "any user-level file metadata that isn't part of 6th Edition Unix", such as ACLs or the immutability bit, but by that definition almost every pre-Unix filesystem had "extended file attributes". https://en.m.wikipedia.org/wiki/Extended_file_attributes https://en.m.wikipedia.org/wiki/Extended_file_attributes has a definition which sounds like it might be what you mean? It also sounds like you could easily implement it as a library, though, instead of including it in the filesystem.
- adrian_b 2y agoExtended file attributes can contain arbitrary data associated with the file, whatever the user chooses, unlike file metadata with fixed content, like file name, file size, file owner, time of last modification and so on. I am not aware of any earlier filesystem with extended file attributes. What you have mentioned are just examples of fixed file metadata, which are defined by the operating system and which cannot be defined or extended by the user. The only earlier similar feature is the resource fork of the Mac OS files, but that had a different purpose and it was accessed in a different way than extended file attributes, which are a set of name + value pairs, so they are accessed with a special get/set API, not with file read/write functions. Once a method for storing arbitrary file metadata exists, it can also be used to implement features like access control lists or to implement any of the legacy file metadata. The Oberon file system has been described very summarily in a paper published in 1989-09, i.e. 2 months before the commercial introduction of HPFS by IBM and Microsoft, which must have worked at HPFS for a few years before that. Therefore these 2 filesystems must have been developed completely independently and the idea of using B-tree directories, which both teams have presented as novel, must have occurred independently to them. While the Oberon filesystem has the merit of introducing independently and simultaneously the same improvement in directory implementation, its historical impact has been very reduced in comparison with HPFS, which had a significant user base and which became well known immediately, all over the world, influencing strongly all the filesystems developed after it.