Jump to content

List of file systems: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Tags: Reverted possible vandalism blanking Visual edit Mobile edit Mobile web edit
No edit summary
 
(30 intermediate revisions by 23 users not shown)
Line 4: Line 4:


== Disk file systems ==
== Disk file systems ==
Disk file systems are usually block-oriented. Files in a block-oriented file system are sequences of blocks, often featuring fully random-access read, write, and modify operations.
*


* [[Advanced Disc Filing System|ADFS]] – [[Acorn Computers Ltd|Acorn]]'s Advanced Disc filing system, successor to [[Disc Filing System|DFS]].
*
* [[AdvFS]] – Advanced File System, designed by [[Digital Equipment Corporation]] for their Digital UNIX (now [[Tru64 UNIX]]) operating system.
* [[Apple File System|APFS]] – Apple File System is a next-generation file system for Apple products.
* [[AtheOS File System|AthFS]] – [[AtheOS]] File System, a [[64-bit computing|64-bit]] [[Journaling file system|journaled]] filesystem now used by [[Syllable Desktop (operating system)|Syllable]]. Also called AFS.
* [[Boot File System|BFS]] – the Boot File System used on System V release 4.0 and UnixWare.
* [[Be File System|BFS]] – the Be File System used on [[BeOS]], occasionally misnamed as BeFS. Open source implementation called OpenBFS is used by the [[Haiku (operating system)|Haiku]] operating system.
* [[VM (operating system)#Shared File System|Byte File System]] (BFS) - file system used by [[z/VM]] for Unix applications
* [[Btrfs]] – is a [[copy-on-write]] file system for [[Linux]] announced by [[Oracle Corporation|Oracle]] in 2007 and published under the [[GNU General Public License]] (GPL).
* [[Veritas Cluster File System|CFS]] – The Cluster File System from Veritas, a Symantec company. It is the parallel access version of VxFS.
* [[CP/M]] file system — Native filesystem used in the CP/M (Control Program for Microcomputers) operating system which was first released in 1974.
* [[Disc Filing System|DFS]] – [[Acorn Computers Ltd|Acorn]]'s Disc filing system.
* [[Apple DOS|DOS 3.x]] – Original floppy operating system and file system developed for the [[Apple II]].
* [[Extent File System]] (EFS) – an older block filing system under [[IRIX]].
* [[Extended file system|ext]] – Extended file system, designed for [[Linux]] systems.
* [[ext2]] – Second extended file system, designed for [[Linux]] systems.
* [[ext3]] – A [[Journaling file system|journaled]] form of ext2.
* [[ext4]] – A follow-up for [[ext3]] and also a [[Journaling file system|journaled]] filesystem with support for [[extent (file systems)|extents]].
* [[ext3cow]] – A [[versioning file system]] form of ext3.
* [[File Allocation Table|FAT]] – File Allocation Table, initially used on [[DOS]] and [[Microsoft Windows]] and now widely used for portable USB storage and some other devices; [[FAT12]], [[FAT16]] and [[FAT32]] for 12-, [[16-bit|16-]] and [[32-bit]] table depths.
** [[Design of the FAT file system#VFAT|VFAT]] – Optional layer on [[Microsoft Windows]] FAT system to allow long (up to 255 character) filenames instead of only the [[8.3 filename]]s allowed in the plain FAT filesystem.
** [[FATX]] – A modified version of [[Microsoft Windows]] FAT system that is used on the original [[Xbox (console)|Xbox]] console.
* [[Amiga Fast File System|FFS (Amiga)]] – Fast File System, used on [[Amiga]] systems. This FS has evolved over time. Now counts FFS1, FFS Intl, FFS DCache, FFS2.
* [[Berkeley Fast File System|FFS]] – Fast File System, used on *[[BSD]] systems
* [[Fossil (file system)|Fossil]] – [[Plan 9 from Bell Labs]] snapshot archival file system.
* [[Files-11]] – [[OpenVMS]] file system; also used on some [[PDP-11]] systems; supports record-oriented files
* [[Flex machine]] file system
* [[HAMMER (file system)|HAMMER]] — clustered [[DragonFly BSD]] filesystem, production-ready since DragonFly 2.2 (2009)<ref name=lwn-hammer-2010>{{cite web
|url=https://lwn.net/Articles/384200/
|title=DragonFly BSD 2.6: towards a free clustering operating system
|author= Koen Vervloesem
|website=[[LWN.net]]
|date=2010-04-21 |access-date=2019-03-07
}}</ref><ref name=hammer_disk.h>{{cite web|url=http://bxr.su/d/sys/vfs/hammer/hammer_disk.h|title=hammer_disk.h|author=Matt Dillon|author-link=Matt Dillon (computer scientist)|website=BSD Cross Reference|publisher=[[DragonFly BSD]]|date=2017-09-23|access-date=2019-03-06}}</ref>
* [[HAMMER2]] — recommended as the default root filesystem in DragonFly since 5.2 release in 2018<ref name=hammer2-release52>{{cite web|url=https://www.dragonflybsd.org/release52/|title=DragonFly BSD 5.2|publisher=[[DragonFly BSD]]|date=2018-06-18|access-date=2019-03-06|quote=We can now recommend H2 as the default root filesystem in non-clustered mode.}}</ref><ref name=hammer2_disk.h>{{cite web|url=http://bxr.su/d/sys/vfs/hammer2/hammer2_disk.h|title=hammer2_disk.h|author=Matt Dillon|author-link=Matt Dillon (computer scientist)|website=BSD Cross Reference|publisher=[[DragonFly BSD]]|date=2018-05-05|access-date=2019-03-06}}</ref><ref name="hammer2_design">{{cite web|url=http://bxr.su/d/sys/vfs/hammer2/DESIGN|title=hammer2/DESIGN|author=Matt Dillon|author-link=Matt Dillon (computer scientist)|date=2018-12-09|website=BSD Cross Reference|publisher=[[DragonFly BSD]]|access-date=2019-03-06}}</ref>
* [[Hierarchical File System (IBM MVS)|HFS]] – Hierarchical File System in IBM's [[MVS]] from [[MVS#MVS/ESA|MVS/ESA OpenEdition]] through [[z/OS]] V2R4; not to be confused with Apple's HFS. IBM stated that [[z/OS]] users should migrate from HFS to [[zFS (z/OS file system)|zFS]], and in z/OS V2R5 dropped support for HFS.
* [[Hierarchical File System (Apple)|HFS]] – Hierarchical File System, in use until HFS+ was introduced on Mac OS 8.1. Also known as Mac OS Standard format. Successor to Macintosh File System (MFS) & predecessor to HFS+; not to be confused with IBM's HFS provided with [[z/OS]]
* [[HFS Plus|HFS+]] – Updated version of Apple's HFS, Hierarchical File System, supported on Mac OS 8.1 & above, including macOS. Supports file system journaling, enabling recovery of data after a system crash. Also referred to as 'Mac OS Extended format or HFS Plus
* [[High Performance File System|HPFS]] – High Performance File System, used on [[OS/2]]
* [[High Throughput File System|HTFS]] – High Throughput Filesystem, used on [[SCO OpenServer]]
* [[ISO 9660]] – Used on [[CD-ROM]] and [[DVD|DVD-ROM]] discs ([[Rock Ridge]] and [[Joliet (file system)|Joliet]] are extensions to this)
* [[IBM Journaled File System 2 (JFS2)|JFS]] – [[IBM]] [[Journaling file system]], provided in [[Linux]], [[OS/2]], and [[AIX operating system|AIX]]. Supports [[extent (file systems)|extents]].
* [[Log-structured File System (BSD)|LFS]] – 4.4BSD implementation of a [[log-structured file system]]
* [[Macintosh File System|MFS]] – Macintosh File System, used on early [[Classic Mac OS]] systems. Succeeded by Hierarchical File System (HFS).
* [[Next3]] – A form of [[ext3]] with snapshots support.<ref name="next3">{{cite web|last=Corbet|first=Jonathan|title=The Next3 filesystem|url=https://lwn.net/Articles/387231/|publisher=LWN}}</ref>
* [[TiVo Media File System|MFS]] – TiVo's Media File System, a proprietary fault tolerant format used on [[TiVo]] hard drives for real time recording from live TV.
* [[Minix file system]] – Used on [[Minix]] systems
* [[NILFS]] – Linux implementation of a [[log-structured file system]]
* [[NTFS]] – (New Technology File System) Used on [[Microsoft]]'s [[Windows NT]]-based operating systems
* [[NeXT]] - [[NeXTstation]] and [[NeXTcube]] file system
* [[NetWare File System]] – The original [[Novell NetWare|NetWare]] 2.x–5.x file system, used optionally by later versions.
* [[Novell Storage Services|NSS]] – Novell Storage Services. This is a new 64-bit [[journaling file system]] using a balanced tree algorithm. Used in [[Novell NetWare|NetWare]] versions 5.0-up and recently ported to [[Linux]].
* [[One File System|OneFS]] – One File System. This is a fully journaled, distributed file system used by [[Isilon Systems|Isilon]]. OneFS uses FlexProtect and [[Reed–Solomon error correction|Reed–Solomon]] encodings to support up to four simultaneous disk failures.
* [[Amiga Old File System|OFS]] – Old File System, on Amiga. Good for floppies, but fairly useless on hard drives.
* [[OS-9]] file system
* [[Professional File System|PFS]] – and PFS2, PFS3, etc. Technically interesting file system available for the [[Amiga]], performs very well under a lot of circumstances.
* [[Apple ProDOS|ProDOS]] – Operating system and file system successor to [[Apple Inc.|DOS 3.x]], for use on [[Apple II series]] computers, including the [[Apple IIGS|IIgs]]
* [[Qnx4fs]] – File system that is used in [[QNX]] version 4 and 6.
* [[ReFS|ReFS (Resilient File System)]] – File system by [[Microsoft]] with a particular focus on data resilience in server environments.
* [[ReiserFS]] – File system that uses [[journaling file system|journaling]]
* [[Reiser4]] – File system that uses [[journaling file system|journaling]], newest version of ReiserFS
* [[Reliance (file system)|Reliance]] – Datalight's transactional file system for high reliability applications
* [[Reliance Nitro]] – Tree-based transactional, [[copy-on-write]] file system developed for high-performance embedded systems, from Datalight (Acquired by [[Tuxera]] in 2019)<ref name=":0">{{Cite web |last=Tuxera |date=2019-06-05 |title=Tuxera acquires mission-critical embedded flash storage leader Datalight |url=https://www.tuxera.com/blog/tuxera-acquires-mission-critical-embedded-flash-storage-leader-datalight/ |access-date=2024-06-28 |website=Tuxera |language=en-US}}</ref>
* [[Remote File System|RFS]] – Native filesystem for [[RTEMS]]<ref name="rfs">{{cite web|title=RTEMS File System|url=http://www.rtems.org/wiki/index.php/RTEMS_File_System|access-date=20 April 2013}}</ref>
* [[SkyFS]] – Developed for [[SkyOS]] to replace BFS as the operating system's main file system. It is based on BFS, but contains many new features.
* [[Smart File System|SFS]] – Smart File System, [[journaling file system]] available for the Amiga platforms.
* [[Soup (Apple)]] – the "file system" for [[Newton (platform)|Apple Newton Platform]], structured as a shallow database
* [[Tux3]] – An experimental versioning file system intended as a replacement for ext3
* [[Universal Disk Format|UDF]] – Packet-based file system for WORM/RW media such as CD-RW and DVD, now supports hard drives and flash memory as well.
* [[Unix File System|UFS]] – Unix File System, used on [[Solaris (operating system)|Solaris]] and older [[BSD]] systems
* [[Unix File System|UFS2]] – Unix File System, used on newer [[BSD]] systems
* [[Veritas File System|VxFS]] [[Veritas Software|Veritas]] file system, first commercial [[journaling file system]]{{Citation needed|date=September 2007}}; [[HP-UX]], [[Solaris (operating system)|Solaris]], [[Linux]], [[AIX operating system|AIX]], [[UnixWare]]
*[[Volume Table of Contents|VTOC]] (Volume Table Of Contents) - Data structure on IBM mainframe [[direct-access storage device]]s (DASD) such as disk drives that provides a way of locating the data sets that reside on the [[DASD]] volume.
* [[XFS]] – Used on [[Silicon Graphics|SGI]] [[IRIX]] and [[Linux]] systems
* [[zFS (z/OS file system)|zFS]] – [[z/OS]] File System; not to be confused with other file systems named zFS or ZFS.
* [[zFS (IBM file system project)|zFS]] - an IBM research project to develop a distributed, decentralized file system; not to be confused with other file systems named zFS or ZFS.
* [[ZFS]]{{snd}} a combined file system and logical volume manager designed by [[Sun Microsystems]]

=== File systems with built-in fault-tolerance ===
These file systems have built-in checksumming and either mirroring or parity for extra redundancy on one or several block devices:
* [[Bcachefs]] – Full data and metadata checksumming,<ref>{{cite web|title=Bcachefs main site|last1=Overstreet|first1=Kent|url=https://bcachefs.org/}}</ref><ref>{{cite web|title=LWN - An update on bcachefs|last1=Edge|first1=Jake|url=https://lwn.net/Articles/755276/}}</ref> [[bcache]] is the bottom half of the filesystem. Included in Linux kernel since 6.7<ref>{{cite web|title=Bcachefs merged in linux 6.7|url=https://www.phoronix.com/news/Bcachefs-Merged-Linux-6.7}}</ref><ref>{{cite web|title=Bcachefs on Patreon|last1=Overstreet|first1=Kent|url=https://www.patreon.com/bcachefs/}}</ref>
* [[Btrfs]] – A file system based on [[B-Tree]]s, initially designed at [[Oracle Corporation]].
* [[HAMMER (file system)|HAMMER]] and [[HAMMER2]] – [[DragonFly BSD]]'s primary filesystems, created by [[Matt Dillon (computer scientist)|Matt Dillon]].<ref name=lwn-hammer-2010/><ref name=hammer_disk.h/><ref name=hammer2_disk.h/><ref name=hammer2_design/>
* [[NOVA_(filesystem)|NOVA]] – The "non-volatile memory accelerated" file system for persistent main memory.
* [[ReFS|ReFS (Resilient File System)]] – A file system by [[Microsoft]] with built-in resiliency features.
* [[Reliance (file system)|Reliance]] – A transactional file system with [[cyclic redundancy check|CRCs]], created by Datalight.
* [[Reliance Nitro]] – A tree-based transactional, [[copy-on-write]] file system with CRCs, developed for high performance and reliability in embedded systems, from Datalight (Acquired by [[Tuxera]] in 2019)<ref name=":0" />.
* [[ZFS]] – Has checksums for all data; important metadata is always redundant, additional redundancy levels are user-configurable; [[copy-on-write]] and transactional writing ensure metadata consistency; corrupted data can be automatically repaired if a redundant copy is available. Created by [[Sun Microsystems]] for use on [[Solaris (operating system)|Solaris]] 10 and [[OpenSolaris]], ported to [[FreeBSD]] 7.0, [[NetBSD]] (as of August 2009), [[Linux]] and to [[Filesystem in Userspace|FUSE]] (not to be confused with the two zFSes from [[IBM]])

=== File systems optimized for flash memory, solid state media ===
{{Main article|Flash file system}}

Solid state media, such as [[flash memory]], are similar to disks in their interfaces, but have different problems. At low level, they require special handling such as [[wear leveling]] and different [[error detection and correction]] algorithms. Typically a device such as a [[solid-state drive]] handles such operations internally and therefore a regular file system can be used. However, for certain specialized installations (embedded systems, industrial applications) a file system optimized for plain flash memory is advantageous.

* [[APFS]] – Apple File System is a next-generation file system for Apple products.
* [[CHFS]] – a [[NetBSD]] filesystem for [[embedded system]]s optimised for raw flash media.
* [[exFAT]] – [[Microsoft]] proprietary system intended for flash cards (see also [[XCFiles]], an exFAT implementation for [[Wind River Systems|Wind River]] [[VxWorks]] and other embedded operating systems).
* [[ExtremeFFS]] – internal filesystem for SSDs.
* [[F2FS]] – Flash-Friendly File System. An open source Linux file system introduced by [[Samsung]] in 2012.<ref>{{cite web |url=https://www.phoronix.com/scan.php?page=news_item&px=MTE5OTY |title=Samsung Introduces New Linux File-System: F2FS |publisher=phoronix.com |author=Michael Larabel |date=2011-10-05 |access-date=2012-12-07}}</ref>
* [[Flash memory#Flash file systems|FFS2]] (presumably preceded by FFS1), one of the earliest flash file systems. Developed and patented by [[Microsoft]] in the early 1990s.<ref>{{cite web|url=http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=1&f=G&l=50&co1=AND&d=PTXT&s1=5392427.PN.&OS=PN/5392427&RS=PN/5392427 |title=United States Patent: 5392427 |publisher=Patft.uspto.gov |access-date=2012-06-15}}</ref>
* [[JFFS]] – original log structured Linux file system for NOR flash media.
* [[JFFS2]] – successor of JFFS, for [[NAND flash#NAND flash|NAND]] and [[NOR flash]].
* [[LSFS]] – a [[Log-structured file system]] with writable snapshots and inline data deduplication created by [[StarWind Software]]. Uses DRAM and flash to cache spinning disks.
* [[LogFS]] – intended to replace JFFS2, better scalability. No longer under active development.<ref>{{cite web |url=https://lkml.org/lkml/2016/9/11/58|title=Linux Kernel Mailing List: logfs: remove from tree|access-date=2017-03-31}}</ref>
* [[NILFS]] – a log-structured file system for Linux with continuous snapshots.
* [[Non-Volatile File System]] – the system for [[flash memory]] introduced by [[Palm, Inc.]]
* [[NOVA (filesystem)|NOVA]] – the "non-volatile memory accelerated" file system for persistent main memory.
* [[One File System|OneFS]] – a filesystem utilized by [[Isilon Systems|Isilon]]. It supports selective placement of meta-data directly onto flash SSD.
* [https://www.tuxera.com/products/reliance-velocity-flash-file-system/ Reliance Velocity] - a proprietary flash file system by [[Tuxera]] with high resilience (fail-safe technology) and built-in data integrity. This file system is best suited for embedded applications requiring heavy data workloads over long-term operations. Reliance Velocity can used for all block based media like [[MultiMediaCard|eMMC]], [[Universal Flash Storage|UFS]], eSD, [[SD card]], [[CompactFlash|CF card]], and [[Solid-state drive|SSD]]. It is compatible for [[Linux]], [[Android (operating system)|Android]] and [[QNX]] with portability to other embedded operating systems.
* [https://www.tuxera.com/products/reliance-edge/ Reliance Edge] - a proprietary file system by [[Tuxera]] for resource-constrained embedded systems. It has built-in [[data integrity]] with [[copy-on-write]] transactional technology and [[Deterministic algorithm|deterministic]] operations. This file system can be used for block based media and is configurable for Small [[POSIX]], Full POSIX and can be ported to many [[Real-time operating system|RTOS]] environments. Tuxera has a certified version of this file system called [https://www.tuxera.com/products/reliance-assure/ Reliance Assure]. The source code of Reliance Assure is complaint to [[MISRA C]] and developed following the [[Automotive SPICE|ASPICE]] framework.
* [[Segger Microcontroller Systems]] emFile – filesystem for deeply embedded applications which supports both NAND and NOR flash. Wear leveling, fast read and write, and very low RAM usage.
* [[SPIFFS]] – SPI Flash File System, a wear-leveling filesystem intended for small NOR flash devices.
* [[Transaction-Safe FAT File System|TFAT]] – a transactional version of the FAT filesystem.
* [[TrueFFS]] – internal file system for SSDs, implementing error correction, bad block re-mapping and wear-leveling.
* [[UBIFS]] – successor of JFFS2, optimized to utilize [[NAND flash#NAND flash|NAND]] and [[NOR flash]].
* [[Write Anywhere File Layout]] (WAFL) – an internal file system utilized by [[NetApp]] within their DataONTAP OS, originally optimized to use non-volatile DRAM. WAFL uses [[Non-standard RAID levels#RAID-DP|RAID-DP]] to protect against multiple disk failures and NVRAM for transaction log replays.
* [[YAFFS]] – a log-structured file system designed for NAND flash, but also used with NOR flash.
*[https://github.com/ARMmbed/littlefs LittleFS] – a little fail-safe filesystem designed for microcontrollers.
* [[JesFS]] – Jo's embedded serial FileSystem.<ref>{{cite web |url=https://github.com/joembedded/JesFs|title=Jo's Embedded Serial File System (for Standard Serial NOR-Flash)|website=[[GitHub]]|date=2019-06-18}}</ref> A very small footprint and robust filesystem, designed for very small microcontroller (16/32 bit). Open Source and licensed under GPL v3.

=== Record-oriented file systems ===
In [[Record-oriented filesystem|record-oriented file systems]] files are stored as a collection of [[record (computer science)|records]]. They are typically associated with [[Mainframe computer|mainframe]] and [[minicomputer]] operating systems. Programs read and write whole records, rather than bytes or arbitrary byte ranges, and can seek to a record boundary but not within records. The more sophisticated record-oriented file systems have more in common with simple [[database]]s than with other file systems.

* [[CMS file system]] – The native file system of the [[Conversational Monitor System]] component of [[VM/370]]
* [[Files-11]] – early versions were record-oriented; support for "streams" was added later
* [[Michigan Terminal System]] (MTS) – provides "line files" where record lengths and line numbers are associated as metadata with each record in the file, lines can be added, replaced, updated with the same or different length records, and deleted anywhere in the file without the need to read and rewrite the entire file.<ref>{{cite journal|title=A file system for a general-purpose time-sharing environment|first=G. C.|last=Pirkola|journal=Proceedings of the IEEE|date=June 1975|volume=63|issue=6|pages=918–924|issn=0018-9219|doi=10.1109/PROC.1975.9856|s2cid=12982770}}</ref>
* [[OS4000]] for GEC's OS4000 operating system, on the [[GEC 4000 series]] minicomputers
* [[OS4000]] for GEC's OS4000 operating system, on the [[GEC 4000 series]] minicomputers
* A [[FAT12]] and [[FAT16]] (and [[FAT32]]) extension to support database-like file types ''random file'', ''direct file'', ''keyed file'' and ''sequential file'' in Digital Research [[FlexOS]], IBM [[4680 OS]] and Toshiba [[4690 OS]].<ref name="IBM_4690_Programming_Guide">IBM. ''4690 OS Programming Guide Version 5.2'', IBM document SC30-4137-01, 2007-12-06 ([ftp://ftp.software.ibm.com/software/retail/pubs/sw/opsys/4690/ver5r2/bsi1_PG_mst.pdf]).</ref> The record size is stored on a file-by-file basis in [[Design of the FAT file system#DIR OFS 10h|special entries]] in the directory table.<ref name="Caldera_1997_DOSSRC">Caldera (1997). ''Caldera OpenDOS Machine Readable Source Kit 7.01''. The FDOS.EQU file in the machine readable source kit has equates for the corresponding directory entries.</ref>
* A [[FAT12]] and [[FAT16]] (and [[FAT32]]) extension to support database-like file types ''random file'', ''direct file'', ''keyed file'' and ''sequential file'' in Digital Research [[FlexOS]], IBM [[4680 OS]] and Toshiba [[4690 OS]].<ref name="IBM_4690_Programming_Guide">IBM. ''4690 OS Programming Guide Version 5.2'', IBM document SC30-4137-01, 2007-12-06 ([ftp://ftp.software.ibm.com/software/retail/pubs/sw/opsys/4690/ver5r2/bsi1_PG_mst.pdf]).</ref> The record size is stored on a file-by-file basis in [[Design of the FAT file system#DIR OFS 10h|special entries]] in the directory table.<ref name="Caldera_1997_DOSSRC">Caldera (1997). ''Caldera OpenDOS Machine Readable Source Kit 7.01''. The FDOS.EQU file in the machine readable source kit has equates for the corresponding directory entries.</ref>
Line 61: Line 185:
* [[Coda (file system)|Coda]] from [[Carnegie Mellon University]] focuses on bandwidth-adaptive operation (including disconnected operation) using a client-side cache for mobile computing. It is a descendant of AFS-2. It is available for [[Linux]] under the [[GNU General Public License|GPL]].
* [[Coda (file system)|Coda]] from [[Carnegie Mellon University]] focuses on bandwidth-adaptive operation (including disconnected operation) using a client-side cache for mobile computing. It is a descendant of AFS-2. It is available for [[Linux]] under the [[GNU General Public License|GPL]].
* [[Distributed File System (Microsoft)|Distributed File System]] (Dfs) from [[Microsoft]] focuses on location transparency and [[high availability]]. Available for [[Microsoft Windows|Windows]] under a [[proprietary software]] license.
* [[Distributed File System (Microsoft)|Distributed File System]] (Dfs) from [[Microsoft]] focuses on location transparency and [[high availability]]. Available for [[Microsoft Windows|Windows]] under a [[proprietary software]] license.
* [[HAMMER (file system)|HAMMER]] and [[HAMMER2]] – [[DragonFly BSD]]'s filesystems for clustered storage, created by [[Matt Dillon (computer scientist)|Matt Dillon]].<ref name="lwn-hammer-2010">{{cite web |author=Koen Vervloesem |date=2010-04-21 |title=DragonFly BSD 2.6: towards a free clustering operating system |url=https://lwn.net/Articles/384200/ |access-date=2019-03-07 |website=[[LWN.net]]}}</ref><ref name="hammer2_design">{{cite web |author=Matt Dillon |author-link=Matt Dillon (computer scientist) |date=2018-12-09 |title=hammer2/DESIGN |url=http://bxr.su/d/sys/vfs/hammer2/DESIGN |access-date=2019-03-06 |website=BSD Cross Reference |publisher=[[DragonFly BSD]]}}</ref>
* [[HAMMER (file system)|HAMMER]] and [[HAMMER2]] – [[DragonFly BSD]]'s filesystems for clustered storage, created by [[Matt Dillon (computer scientist)|Matt Dillon]].<ref name=lwn-hammer-2010/><ref name=hammer2_design/>
* [[InterMezzo (file system)|InterMezzo]] from [[Cluster File Systems]] uses synchronization over [[HTTP]]. Available for [[Linux]] under [[GNU General Public License|GPL]] but no longer in development since the developers are working on [[Lustre (file system)|Lustre]].
* [[InterMezzo (file system)|InterMezzo]] from [[Cluster File Systems]] uses synchronization over [[HTTP]]. Available for [[Linux]] under [[GNU General Public License|GPL]] but no longer in development since the developers are working on [[Lustre (file system)|Lustre]].
* [[LizardFS]] a networking, distributed file system based on MooseFS<ref>[https://lizardfs.org LizardFS.org]</ref>
* [[LizardFS]] a networking, distributed file system based on MooseFS<ref>[https://lizardfs.org LizardFS.org]</ref>
Line 68: Line 192:
* [[Tahoe-LAFS]] is an open source secure, decentralized, fault-tolerant filesystem utilizing encryption as the basis for a least-authority replicated design.
* [[Tahoe-LAFS]] is an open source secure, decentralized, fault-tolerant filesystem utilizing encryption as the basis for a least-authority replicated design.
* A [[FAT12]] and [[FAT16]] (and [[FAT32]]) extension to support automatic file distribution across nodes with extra attributes like ''local'', ''mirror on update'', ''mirror on close'', ''compound on update'', ''compound on close'' in IBM [[4680 OS]] and Toshiba [[4690 OS]]. The distribution attributes are stored on a file-by-file basis in [[Design of the FAT file system#DIR|special entries]] in the directory table.<ref name="IBM_4690_OS_Distribution_Attributes_1">IBM (2003). ''Information about 4690&nbsp;OS unique file distribution attributes'', IBM document R1001487, 2003-07-30. ({{cite web |url=http://www-01.ibm.com/support/docview.wss?uid=pos1R1001487 |title=IBM Information about 4690 OS unique file distribution attributes - United States |access-date=2014-05-20 |url-status=dead |archive-url=https://web.archive.org/web/20140521070339/http://www-01.ibm.com/support/docview.wss?uid=pos1R1001487 |archive-date=2014-05-21 }}): "[...] file types are stored in the "Reserved bits" portion of the PC-DOS file directory structure [...] only 4690 respects and preserves these attributes. Various non-4690 operating systems take different actions if these bits are turned on [...] when copying from a diskette created on a 4690 system. [...] PC-DOS and Windows 2000 Professional will copy the file without error and zero the bits. OS/2 [...] 1.2 [...] will refuse to copy the file unless [...] first run CHKDSK /F on the file. After [...] CHKDSK, it will copy the file and zero the bits. [...] when [...] copy [...] back to the 4690 system, [...] file will copy as a local file."</ref><ref name="IBM_4690_OS_Distribution_Attributes_2">IBM. ''4690 save and restore file distribution attributes''. IBM document R1000622, 2010-08-31 ({{cite web |url=http://www-01.ibm.com/support/docview.wss?uid=pos1R1000622 |title=IBM 4690 save and restore file distribution attributes - United States |access-date=2014-05-20 |url-status=dead |archive-url=https://web.archive.org/web/20140521070536/http://www-01.ibm.com/support/docview.wss?uid=pos1R1000622 |archive-date=2014-05-21 }}).</ref>
* A [[FAT12]] and [[FAT16]] (and [[FAT32]]) extension to support automatic file distribution across nodes with extra attributes like ''local'', ''mirror on update'', ''mirror on close'', ''compound on update'', ''compound on close'' in IBM [[4680 OS]] and Toshiba [[4690 OS]]. The distribution attributes are stored on a file-by-file basis in [[Design of the FAT file system#DIR|special entries]] in the directory table.<ref name="IBM_4690_OS_Distribution_Attributes_1">IBM (2003). ''Information about 4690&nbsp;OS unique file distribution attributes'', IBM document R1001487, 2003-07-30. ({{cite web |url=http://www-01.ibm.com/support/docview.wss?uid=pos1R1001487 |title=IBM Information about 4690 OS unique file distribution attributes - United States |access-date=2014-05-20 |url-status=dead |archive-url=https://web.archive.org/web/20140521070339/http://www-01.ibm.com/support/docview.wss?uid=pos1R1001487 |archive-date=2014-05-21 }}): "[...] file types are stored in the "Reserved bits" portion of the PC-DOS file directory structure [...] only 4690 respects and preserves these attributes. Various non-4690 operating systems take different actions if these bits are turned on [...] when copying from a diskette created on a 4690 system. [...] PC-DOS and Windows 2000 Professional will copy the file without error and zero the bits. OS/2 [...] 1.2 [...] will refuse to copy the file unless [...] first run CHKDSK /F on the file. After [...] CHKDSK, it will copy the file and zero the bits. [...] when [...] copy [...] back to the 4690 system, [...] file will copy as a local file."</ref><ref name="IBM_4690_OS_Distribution_Attributes_2">IBM. ''4690 save and restore file distribution attributes''. IBM document R1000622, 2010-08-31 ({{cite web |url=http://www-01.ibm.com/support/docview.wss?uid=pos1R1000622 |title=IBM 4690 save and restore file distribution attributes - United States |access-date=2014-05-20 |url-status=dead |archive-url=https://web.archive.org/web/20140521070536/http://www-01.ibm.com/support/docview.wss?uid=pos1R1000622 |archive-date=2014-05-21 }}).</ref>
* [[OpenHarmony]] Distributed File System (HMDFS) used for [[Huawei]]'s [[HarmonyOS]] with [[HarmonyOS NEXT]] base and [[OpenHarmony]]-based operating systems, alongside [[EulerOS|openEuler]] server OS that is a cross-device file access where devices can read and edit files on transparently when the two devices are connected to the same network with [[Access token manager]]. Multiple embedded devices connected to the network can automatically synchronise file data with the edge server.<ref>{{Cite web |title=distributed-fs-overview |url=https://docs.openeuler.org/en/docs/22.03_LTS_SP3/docs/Distributed/distributed-fs-overview.html |access-date=2024-05-23 |website=docs.openeuler.org}}</ref>



=== Distributed parallel file systems ===
=== Distributed parallel file systems ===
Line 74: Line 200:
Some of the distributed parallel file systems use an [[object storage device]] (OSD) (in Lustre called OST) for chunks of data together with centralized [[metadata]] servers.
Some of the distributed parallel file systems use an [[object storage device]] (OSD) (in Lustre called OST) for chunks of data together with centralized [[metadata]] servers.


*[[BeeGFS|BeeGFS]] is a hardware-independent parallel file system that features distributed metadata and striping of files across multiple targets, such as NVMe devices or logical volumes.
*[[Lustre (file system)|Lustre]] is an [[Open-source software|open-source]] high-performance distributed parallel file system for Linux, used on many of the largest computers in the world.
*[[Lustre (file system)|Lustre]] is an [[Open-source software|open-source]] high-performance distributed parallel file system for Linux, used on many of the largest computers in the world.
*[[Parallel Virtual File System]] (PVFS, PVFS2, [[OrangeFS]]). Developed to store virtual system images, with a focus on non-shared writing optimizations. Available for [[Linux]] under [[GNU General Public License|GPL]].
*[[Parallel Virtual File System]] (PVFS, PVFS2, [[OrangeFS]]). Developed to store virtual system images, with a focus on non-shared writing optimizations. Available for [[Linux]] under [[GNU General Public License|GPL]].
Line 132: Line 259:
|-
|-
| [[Gfarm file system]]
| [[Gfarm file system]]
| [http://oss-tsukuba.org/en/ NPO Tsukuba OSS Technical Support Center]
| <!--By--> Asia Pacific Grid
| [[X11 License]]
| [[X11 License]]
| [[Linux]], [[macOS]], [[FreeBSD]], [[NetBSD]] and [[Solaris (operating system)|Solaris]]
| [[Linux]], [[macOS]], [[FreeBSD]], [[NetBSD]] and [[Solaris (operating system)|Solaris]]
| Uses [[OpenLDAP]] or [[PostgreSQL]] for metadata and [[FUSE (Linux)|FUSE]] or [[Linux Userland Filesystem|LUFS]] for mounting.
| Uses [[PostgreSQL]] for metadata and [[FUSE (Linux)|FUSE]] for mounting.
|-
|-
| [[GlusterFS]]
| [[GlusterFS]]
Line 214: Line 341:
| [[Linux]], [[macOS]], [[FreeBSD]]
| [[Linux]], [[macOS]], [[FreeBSD]]
| A [[POSIX]]-compliant, high-performance, [[Parallel File System|parallel filesystem]] used by [[High Performance Computing|HPC]] clusters. It uses [[erasure code|erasure coding]] and snapshots for data protection, is based upon a [[Scale out|scale-out]] [[Object storage|object store]], and is focused on transparent failure recovery and ease of use.
| A [[POSIX]]-compliant, high-performance, [[Parallel File System|parallel filesystem]] used by [[High Performance Computing|HPC]] clusters. It uses [[erasure code|erasure coding]] and snapshots for data protection, is based upon a [[Scale out|scale-out]] [[Object storage|object store]], and is focused on transparent failure recovery and ease of use.
|-
|[https://www.quobyte.com/editions-features/ Quobyte DCFS]
|[https://www.quobyte.com/ Quobyte]
|[[Proprietary software|Proprietary]]
|[[Linux]], [[macOS]], [[FreeBSD]]
|A fault-tolerant, [[Parallel File System|parallel]] [[POSIX]] file system, with block (VMs) and object (S3) interfaces, and advanced enterprise features like [[Multitenancy|multi-tenancy]], strong authentication, encryption. [[Split-brain (computing)|Split-brain]] safe fault-tolerance is achieved through [[Paxos (computer science)|Paxos]]-based [[leader election]] and [[Erasure code|erasure coding]].
|-
|-
| [[RozoFS]]
| [[RozoFS]]
Line 232: Line 365:
| [[Microsoft Windows|Windows]], [[Linux]], [[macOS]]
| [[Microsoft Windows|Windows]], [[Linux]], [[macOS]]
| A secure, decentralized, fault-tolerant, [[peer-to-peer]] [[distributed data store]] and [[distributed file system]].
| A secure, decentralized, fault-tolerant, [[peer-to-peer]] [[distributed data store]] and [[distributed file system]].
|-
| [https://github.com/storj/ Storj]
| Storj Labs
| [[Affero General Public License]] v3<ref>{{cite web|url=https://github.com/storj/storj/blob/main/README.md |title=README.md in github.com/storj/storj – Storj |publisher=github.com |access-date=2023-06-12}}</ref>
| [[Linux]]
| A [[cooperative storage cloud]] platform for secure and decentralized data and object storage. Storage nodes can be run and operated by diverse entities.
|-
|-
| [[XtreemFS]]
| [[XtreemFS]]
Line 257: Line 384:
Some of these may be called [[cooperative storage cloud]].
Some of these may be called [[cooperative storage cloud]].


* [[Cleversafe]] uses Cauchy [[Reed–Solomon error correction|Reed–Solomon]] [[information dispersal algorithms]] to separate data into unrecognizable slices and distribute them, via secure Internet connections, to multiple storage locations.
* [[IBM Cloud Object Storage]] uses Cauchy [[Reed–Solomon error correction|Reed–Solomon]] [[information dispersal algorithms]] to separate data into unrecognizable slices and distribute them, via secure Internet connections, to multiple storage locations.
* [[Scality]] is a distributed filesystem using the [[Chord (peer-to-peer)|Chord]] peer-to-peer protocol.
* [[Scality]] is a distributed filesystem using the [[Chord (peer-to-peer)|Chord]] peer-to-peer protocol.
* [[IPFS]] InterPlanetary File System is p2p, worldwide distributed content-addressable, file-system.
* [[IPFS]] InterPlanetary File System is p2p, worldwide distributed content-addressable, file-system.
Line 273: Line 400:
* [[Freenet]] – Decentralized, censorship-resistant
* [[Freenet]] – Decentralized, censorship-resistant
* [[FTPFS]] (FTP access)
* [[FTPFS]] (FTP access)
* [[GmailFS]] (Google Mail File System)
* GmailFS (Google Mail File System)
* GridFS – GridFS is a specification for storing and retrieving files that exceed the BSON-document size limit of 16 MB for [[MongoDB]].
* GridFS – GridFS is a specification for storing and retrieving files that exceed the BSON-document size limit of 16 MB for [[MongoDB]].
* [[lnfs]] (long names)
* [[lnfs]] (long names)
* [[LTFS]] (Linear Tape File System for LTO and Enterprise tape)
* [[LTFS]] (Linear Tape File System for LTO and Enterprise tape)
* [[MultiVersion File System|MVFS]] – MultiVersion File System, proprietary, used by [[Rational ClearCase]].
* [[MultiVersion File System|MVFS]] – MultiVersion File System, proprietary, used by [[IBM DevOps Code ClearCase]].
* [https://nexustorage.com Nexfs] Combines Block, File, Object and Cloud storage into a single pool of auto-tiering POSIX compatible storage.
* [https://nexustorage.com Nexfs] Combines Block, File, Object and Cloud storage into a single pool of auto-tiering POSIX compatible storage.
* [[OverlayFS]] – A [[union mount]] [[filesystem]] implementation for [[Linux]]. Used mainly by [[Docker (software)|Docker]] for its image layers.
* [[OverlayFS]] – A [[union mount]] [[filesystem]] implementation for [[Linux]]. Used mainly by [[Docker (software)|Docker]] for its image layers.
Line 284: Line 411:
* [[UMSDOS]], [[UVFAT]] – FAT file systems extended to store permissions and metadata (and in the case of UVFAT, [[VFAT]] long file names), used for Linux
* [[UMSDOS]], [[UVFAT]] – FAT file systems extended to store permissions and metadata (and in the case of UVFAT, [[VFAT]] long file names), used for Linux
* [[UnionFS]] – stackable unification file system, which can appear to merge the contents of several directories (branches), while keeping their physical content separate
* [[UnionFS]] – stackable unification file system, which can appear to merge the contents of several directories (branches), while keeping their physical content separate
* [[Venti]] – Plan 9 de-duplicated storage used by [[Fossil (file system)|Fossil]].
* [[Venti (software)|Venti]] – Plan 9 de-duplicated storage used by [[Fossil (file system)|Fossil]].


=== Pseudo file systems ===
=== Pseudo file systems ===
Line 298: Line 425:


=== Encrypted file systems ===
=== Encrypted file systems ===

{{See also|Rubberhose (file system)}}

* [[eCryptfs]] – a stacked cryptographic file system in the Linux kernel since 2.6.19
* [[eCryptfs]] – a stacked cryptographic file system in the Linux kernel since 2.6.19
* [[SSHFS|Secure Shell File System]] (SSHFS) – locally mount a remote directory on a server using only a [[secure shell]] login.
* [[EncFS]], GPL [[Disk encryption software|Encrypted file system]] in user-space
* [[EncFS]], GPL [[Disk encryption software|Encrypted file system]] in user-space
* [[MaruTukku|Rubberhose filesystem]]
* [[Encrypting File System|EFS]] – an encrypted file system for [[Microsoft Windows]] systems and [[AIX operating system|AIX]]. An extension of [[NTFS]]
* [[Encrypting File System|EFS]] – an encrypted file system for [[Microsoft Windows]] systems and [[AIX operating system|AIX]]. An extension of [[NTFS]]
* [[ZFS]], with encryption support.
* [[ZFS]], with encryption support.
Line 311: Line 439:
* [[Linux Userland Filesystem|LUFS]] (Linux userland file system – seems to be abandoned in favour of [[FUSE (linux)|FUSE]])
* [[Linux Userland Filesystem|LUFS]] (Linux userland file system – seems to be abandoned in favour of [[FUSE (linux)|FUSE]])
* [[Pass-to-Userspace Framework File Fystem|PUFFS]] (Userspace filesystem for NetBSD, including a compatibility layer called '''librefuse''' for porting existing FUSE-based applications)
* [[Pass-to-Userspace Framework File Fystem|PUFFS]] (Userspace filesystem for NetBSD, including a compatibility layer called '''librefuse''' for porting existing FUSE-based applications)
* [[SSHFS|Secure Shell File System]] (SSHFS) – locally mount a remote directory on a server using only a [[secure shell]] login.
* [[Virtual file system|VFS]] Virtual Filesystem
* [[Virtual file system|VFS]] Virtual Filesystem



Latest revision as of 18:55, 1 July 2024

The following lists identify, characterize, and link to more thorough information on file systems. Many older operating systems support only their one "native" file system, which does not bear any name apart from the name of the operating system itself.

Disk file systems[edit]

Disk file systems are usually block-oriented. Files in a block-oriented file system are sequences of blocks, often featuring fully random-access read, write, and modify operations.

  • ADFSAcorn's Advanced Disc filing system, successor to DFS.
  • AdvFS – Advanced File System, designed by Digital Equipment Corporation for their Digital UNIX (now Tru64 UNIX) operating system.
  • APFS – Apple File System is a next-generation file system for Apple products.
  • AthFSAtheOS File System, a 64-bit journaled filesystem now used by Syllable. Also called AFS.
  • BFS – the Boot File System used on System V release 4.0 and UnixWare.
  • BFS – the Be File System used on BeOS, occasionally misnamed as BeFS. Open source implementation called OpenBFS is used by the Haiku operating system.
  • Byte File System (BFS) - file system used by z/VM for Unix applications
  • Btrfs – is a copy-on-write file system for Linux announced by Oracle in 2007 and published under the GNU General Public License (GPL).
  • CFS – The Cluster File System from Veritas, a Symantec company. It is the parallel access version of VxFS.
  • CP/M file system — Native filesystem used in the CP/M (Control Program for Microcomputers) operating system which was first released in 1974.
  • DFSAcorn's Disc filing system.
  • DOS 3.x – Original floppy operating system and file system developed for the Apple II.
  • Extent File System (EFS) – an older block filing system under IRIX.
  • ext – Extended file system, designed for Linux systems.
  • ext2 – Second extended file system, designed for Linux systems.
  • ext3 – A journaled form of ext2.
  • ext4 – A follow-up for ext3 and also a journaled filesystem with support for extents.
  • ext3cow – A versioning file system form of ext3.
  • FAT – File Allocation Table, initially used on DOS and Microsoft Windows and now widely used for portable USB storage and some other devices; FAT12, FAT16 and FAT32 for 12-, 16- and 32-bit table depths.
  • FFS (Amiga) – Fast File System, used on Amiga systems. This FS has evolved over time. Now counts FFS1, FFS Intl, FFS DCache, FFS2.
  • FFS – Fast File System, used on *BSD systems
  • FossilPlan 9 from Bell Labs snapshot archival file system.
  • Files-11OpenVMS file system; also used on some PDP-11 systems; supports record-oriented files
  • Flex machine file system
  • HAMMER — clustered DragonFly BSD filesystem, production-ready since DragonFly 2.2 (2009)[1][2]
  • HAMMER2 — recommended as the default root filesystem in DragonFly since 5.2 release in 2018[3][4][5]
  • HFS – Hierarchical File System in IBM's MVS from MVS/ESA OpenEdition through z/OS V2R4; not to be confused with Apple's HFS. IBM stated that z/OS users should migrate from HFS to zFS, and in z/OS V2R5 dropped support for HFS.
  • HFS – Hierarchical File System, in use until HFS+ was introduced on Mac OS 8.1. Also known as Mac OS Standard format. Successor to Macintosh File System (MFS) & predecessor to HFS+; not to be confused with IBM's HFS provided with z/OS
  • HFS+ – Updated version of Apple's HFS, Hierarchical File System, supported on Mac OS 8.1 & above, including macOS. Supports file system journaling, enabling recovery of data after a system crash. Also referred to as 'Mac OS Extended format or HFS Plus
  • HPFS – High Performance File System, used on OS/2
  • HTFS – High Throughput Filesystem, used on SCO OpenServer
  • ISO 9660 – Used on CD-ROM and DVD-ROM discs (Rock Ridge and Joliet are extensions to this)
  • JFSIBM Journaling file system, provided in Linux, OS/2, and AIX. Supports extents.
  • LFS – 4.4BSD implementation of a log-structured file system
  • MFS – Macintosh File System, used on early Classic Mac OS systems. Succeeded by Hierarchical File System (HFS).
  • Next3 – A form of ext3 with snapshots support.[6]
  • MFS – TiVo's Media File System, a proprietary fault tolerant format used on TiVo hard drives for real time recording from live TV.
  • Minix file system – Used on Minix systems
  • NILFS – Linux implementation of a log-structured file system
  • NTFS – (New Technology File System) Used on Microsoft's Windows NT-based operating systems
  • NeXT - NeXTstation and NeXTcube file system
  • NetWare File System – The original NetWare 2.x–5.x file system, used optionally by later versions.
  • NSS – Novell Storage Services. This is a new 64-bit journaling file system using a balanced tree algorithm. Used in NetWare versions 5.0-up and recently ported to Linux.
  • OneFS – One File System. This is a fully journaled, distributed file system used by Isilon. OneFS uses FlexProtect and Reed–Solomon encodings to support up to four simultaneous disk failures.
  • OFS – Old File System, on Amiga. Good for floppies, but fairly useless on hard drives.
  • OS-9 file system
  • PFS – and PFS2, PFS3, etc. Technically interesting file system available for the Amiga, performs very well under a lot of circumstances.
  • ProDOS – Operating system and file system successor to DOS 3.x, for use on Apple II series computers, including the IIgs
  • Qnx4fs – File system that is used in QNX version 4 and 6.
  • ReFS (Resilient File System) – File system by Microsoft with a particular focus on data resilience in server environments.
  • ReiserFS – File system that uses journaling
  • Reiser4 – File system that uses journaling, newest version of ReiserFS
  • Reliance – Datalight's transactional file system for high reliability applications
  • Reliance Nitro – Tree-based transactional, copy-on-write file system developed for high-performance embedded systems, from Datalight (Acquired by Tuxera in 2019)[7]
  • RFS – Native filesystem for RTEMS[8]
  • SkyFS – Developed for SkyOS to replace BFS as the operating system's main file system. It is based on BFS, but contains many new features.
  • SFS – Smart File System, journaling file system available for the Amiga platforms.
  • Soup (Apple) – the "file system" for Apple Newton Platform, structured as a shallow database
  • Tux3 – An experimental versioning file system intended as a replacement for ext3
  • UDF – Packet-based file system for WORM/RW media such as CD-RW and DVD, now supports hard drives and flash memory as well.
  • UFS – Unix File System, used on Solaris and older BSD systems
  • UFS2 – Unix File System, used on newer BSD systems
  • VxFS Veritas file system, first commercial journaling file system[citation needed]; HP-UX, Solaris, Linux, AIX, UnixWare
  • VTOC (Volume Table Of Contents) - Data structure on IBM mainframe direct-access storage devices (DASD) such as disk drives that provides a way of locating the data sets that reside on the DASD volume.
  • XFS – Used on SGI IRIX and Linux systems
  • zFSz/OS File System; not to be confused with other file systems named zFS or ZFS.
  • zFS - an IBM research project to develop a distributed, decentralized file system; not to be confused with other file systems named zFS or ZFS.
  • ZFS – a combined file system and logical volume manager designed by Sun Microsystems

File systems with built-in fault-tolerance[edit]

These file systems have built-in checksumming and either mirroring or parity for extra redundancy on one or several block devices:

File systems optimized for flash memory, solid state media[edit]

Solid state media, such as flash memory, are similar to disks in their interfaces, but have different problems. At low level, they require special handling such as wear leveling and different error detection and correction algorithms. Typically a device such as a solid-state drive handles such operations internally and therefore a regular file system can be used. However, for certain specialized installations (embedded systems, industrial applications) a file system optimized for plain flash memory is advantageous.

  • APFS – Apple File System is a next-generation file system for Apple products.
  • CHFS – a NetBSD filesystem for embedded systems optimised for raw flash media.
  • exFATMicrosoft proprietary system intended for flash cards (see also XCFiles, an exFAT implementation for Wind River VxWorks and other embedded operating systems).
  • ExtremeFFS – internal filesystem for SSDs.
  • F2FS – Flash-Friendly File System. An open source Linux file system introduced by Samsung in 2012.[13]
  • FFS2 (presumably preceded by FFS1), one of the earliest flash file systems. Developed and patented by Microsoft in the early 1990s.[14]
  • JFFS – original log structured Linux file system for NOR flash media.
  • JFFS2 – successor of JFFS, for NAND and NOR flash.
  • LSFS – a Log-structured file system with writable snapshots and inline data deduplication created by StarWind Software. Uses DRAM and flash to cache spinning disks.
  • LogFS – intended to replace JFFS2, better scalability. No longer under active development.[15]
  • NILFS – a log-structured file system for Linux with continuous snapshots.
  • Non-Volatile File System – the system for flash memory introduced by Palm, Inc.
  • NOVA – the "non-volatile memory accelerated" file system for persistent main memory.
  • OneFS – a filesystem utilized by Isilon. It supports selective placement of meta-data directly onto flash SSD.
  • Reliance Velocity - a proprietary flash file system by Tuxera with high resilience (fail-safe technology) and built-in data integrity. This file system is best suited for embedded applications requiring heavy data workloads over long-term operations. Reliance Velocity can used for all block based media like eMMC, UFS, eSD, SD card, CF card, and SSD. It is compatible for Linux, Android and QNX with portability to other embedded operating systems.
  • Reliance Edge - a proprietary file system by Tuxera for resource-constrained embedded systems. It has built-in data integrity with copy-on-write transactional technology and deterministic operations. This file system can be used for block based media and is configurable for Small POSIX, Full POSIX and can be ported to many RTOS environments. Tuxera has a certified version of this file system called Reliance Assure. The source code of Reliance Assure is complaint to MISRA C and developed following the ASPICE framework.
  • Segger Microcontroller Systems emFile – filesystem for deeply embedded applications which supports both NAND and NOR flash. Wear leveling, fast read and write, and very low RAM usage.
  • SPIFFS – SPI Flash File System, a wear-leveling filesystem intended for small NOR flash devices.
  • TFAT – a transactional version of the FAT filesystem.
  • TrueFFS – internal file system for SSDs, implementing error correction, bad block re-mapping and wear-leveling.
  • UBIFS – successor of JFFS2, optimized to utilize NAND and NOR flash.
  • Write Anywhere File Layout (WAFL) – an internal file system utilized by NetApp within their DataONTAP OS, originally optimized to use non-volatile DRAM. WAFL uses RAID-DP to protect against multiple disk failures and NVRAM for transaction log replays.
  • YAFFS – a log-structured file system designed for NAND flash, but also used with NOR flash.
  • LittleFS – a little fail-safe filesystem designed for microcontrollers.
  • JesFS – Jo's embedded serial FileSystem.[16] A very small footprint and robust filesystem, designed for very small microcontroller (16/32 bit). Open Source and licensed under GPL v3.

Record-oriented file systems[edit]

In record-oriented file systems files are stored as a collection of records. They are typically associated with mainframe and minicomputer operating systems. Programs read and write whole records, rather than bytes or arbitrary byte ranges, and can seek to a record boundary but not within records. The more sophisticated record-oriented file systems have more in common with simple databases than with other file systems.

Shared-disk file systems[edit]

Shared-disk file systems (also called shared-storage file systems, SAN file system, Clustered file system or even cluster file systems) are primarily used in a storage area network where all nodes directly access the block storage where the file system is located. This makes it possible for nodes to fail without affecting access to the file system from the other nodes. Shared-disk file systems are normally used in a high-availability cluster together with storage on hardware RAID. Shared-disk file systems normally do not scale over 64 or 128 nodes.

Shared-disk file systems may be symmetric where metadata is distributed among the nodes or asymmetric with centralized metadata servers.

Distributed file systems[edit]

Distributed file systems are also called network file systems. Many implementations have been made, they are location dependent and they have access control lists (ACLs), unless otherwise stated below.

Distributed fault-tolerant file systems[edit]

Distributed fault-tolerant replication of data between nodes (between servers or servers/clients) for high availability and offline (disconnected) operation.

  • Coda from Carnegie Mellon University focuses on bandwidth-adaptive operation (including disconnected operation) using a client-side cache for mobile computing. It is a descendant of AFS-2. It is available for Linux under the GPL.
  • Distributed File System (Dfs) from Microsoft focuses on location transparency and high availability. Available for Windows under a proprietary software license.
  • HAMMER and HAMMER2DragonFly BSD's filesystems for clustered storage, created by Matt Dillon.[1][5]
  • InterMezzo from Cluster File Systems uses synchronization over HTTP. Available for Linux under GPL but no longer in development since the developers are working on Lustre.
  • LizardFS a networking, distributed file system based on MooseFS[20]
  • Moose File System (MooseFS) is a networking, distributed file system. It spreads data over several physical locations (servers), which are visible to a user as one resource. Works on Linux, FreeBSD, NetBSD, OpenSolaris and macOS. Master server and chunkservers can also run on Solaris and Windows with Cygwin.
  • Scality is a distributed fault-tolerant filesystem.
  • Tahoe-LAFS is an open source secure, decentralized, fault-tolerant filesystem utilizing encryption as the basis for a least-authority replicated design.
  • A FAT12 and FAT16 (and FAT32) extension to support automatic file distribution across nodes with extra attributes like local, mirror on update, mirror on close, compound on update, compound on close in IBM 4680 OS and Toshiba 4690 OS. The distribution attributes are stored on a file-by-file basis in special entries in the directory table.[21][22]
  • OpenHarmony Distributed File System (HMDFS) used for Huawei's HarmonyOS with HarmonyOS NEXT base and OpenHarmony-based operating systems, alongside openEuler server OS that is a cross-device file access where devices can read and edit files on transparently when the two devices are connected to the same network with Access token manager. Multiple embedded devices connected to the network can automatically synchronise file data with the edge server.[23]


Distributed parallel file systems[edit]

Distributed parallel file systems stripe data over multiple servers for high performance. They are normally used in high-performance computing (HPC).

Some of the distributed parallel file systems use an object storage device (OSD) (in Lustre called OST) for chunks of data together with centralized metadata servers.

  • BeeGFS is a hardware-independent parallel file system that features distributed metadata and striping of files across multiple targets, such as NVMe devices or logical volumes.
  • Lustre is an open-source high-performance distributed parallel file system for Linux, used on many of the largest computers in the world.
  • Parallel Virtual File System (PVFS, PVFS2, OrangeFS). Developed to store virtual system images, with a focus on non-shared writing optimizations. Available for Linux under GPL.

Distributed parallel fault-tolerant file systems[edit]

Distributed file systems, which also are parallel and fault tolerant, stripe and replicate data over multiple servers for high performance and to maintain data integrity. Even if a server fails no data is lost. The file systems are used in both high-performance computing (HPC) and high-availability clusters.

All file systems listed here focus on high availability, scalability and high performance unless otherwise stated below.

Name By License OS Description
Alluxio UC Berkeley, Alluxio Apache License cross-platform An open-source virtual distributed file system (VDFS).
BeeGFS (formerly FhGFS) Fraunhofer Society GNU GPL v2 for client, other components are proprietary Linux A free to use file system with optional professional support, designed for easy usage and high performance, used on some of the fastest computer clusters in the world. BeeGFS allows replication of storage volumes with automatic failover and self-healing.
CephFS Inktank Storage, a company acquired by Red Hat GNU LGPL Linux kernel, FreeBSD via FUSE[24] A massively scalable object store. CephFS was merged into the Linux kernel in 2010. Ceph's foundation is the reliable autonomic distributed object store (RADOS), which provides object storage via programmatic interface and S3 or Swift REST APIs, block storage to QEMU/KVM/Linux hosts, and POSIX filesystem storage which can be mounted by Linux kernel and FUSE clients.
Chiron FS GNU GPL v3 It's a FUSE-based, transparent replication file system, layering on an existing file system and implementing at the file system level what RAID 1 does at the device level. A notably convenient consequence is the possibility of picking single target directories, without the need of replicating entire partitions. (The project has no visible activity after 2008, a status request in Oct. 2009 in the chironfs-forum is unanswered.)
CloudStore Kosmix Apache License Google File System workalike. Replaced by Quantcast File System (QFS)
dCache DESY and others proprietary (Free for non-commercial usage)[25] A write once filesystem, accessible via various protocols.
General Parallel File System (GPFS) IBM Proprietary AIX, Linux and Windows A POSIX-compliant, high-performance, parallel filesystem. Support synchronous replication between attached block storage, and asynchronous replication to remote filesystems. Also support erasure coding on dual homed SAS attached storage, and distributed over multiple storage nodes.
Gfarm file system NPO Tsukuba OSS Technical Support Center X11 License Linux, macOS, FreeBSD, NetBSD and Solaris Uses PostgreSQL for metadata and FUSE for mounting.
GlusterFS Gluster, a company acquired by Red Hat GNU GPL v3 Linux, NetBSD, FreeBSD, OpenSolaris A general purpose distributed file system for scalable storage. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. GlusterFS is the main component in Red Hat Storage Server.
Google File System (GFS) Google internal software Focus on fault tolerance, high throughput and scalability.
Hadoop Distributed File System Apache Software Foundation Apache License Cross-platform Open source GoogleFS clone.
IBRIX Fusion IBRIX Proprietary
JuiceFS Juicedata Apache License cross-platform An open-source POSIX-compliant file system built on top of Redis and object storage (e.g. Amazon S3), designed and optimized for cloud native environment.
LizardFS Skytechnology GNU GPL v3 cross-platform An open source, highly available POSIX-compliant file system that supports Windows clients.
Lustre originally developed by Cluster File Systems and currently supported by OpenSFS GNU GPL v2 & LGPL Linux A POSIX-compliant, high-performance filesystem used on a majority of systems in the Top-500 list of HPC systems. Lustre has high availability via storage failover.
MapR FS MapR Proprietary Linux Highly scalable, POSIX compliant, fault tolerant, read/write filesystem with a distributed, fault tolerant metadata service. It provides an HDFS and NFS interface to clients as well as a noSQL table interface and Apache Kafka compatible messaging system.
MooseFS Core Technology GNU GPL v2 and proprietary[26] cross-platform (Linux, NetBSD, FreeBSD, macOS, OpenSolaris) A fault tolerant, highly available and high performance scale-out network distributed file system. It spreads data over several physical commodity x86 servers, which are visible to the user as one namespace. For standard file operations MooseFS acts like any other Unix-like file systems.
ObjectiveFS Objective Security Corporation Proprietary Linux, macOS POSIX-compliant shared distributed filesystem. Uses object store as a backend. Runs on AWS S3, GCS and object store devices.
OneFS distributed file system Isilon Proprietary[27] FreeBSD BSD-based OS on dedicated Intel based hardware, serving NFS v3 and SMB/CIFS to Windows, macOS, Linux and other UNIX clients under a proprietary software.
OIO-FS OpenIO Proprietary Linux OIO-FS provides file-oriented access to OpenIO SDS object storage backend. It is based on FUSE technology and presents a POSIX file system to users. This access can be used locally, or over a network using NFS or SMB.[28]
PanFS Panasas Proprietary Linux, macOS, FreeBSD A POSIX-compliant, high-performance, parallel filesystem used by HPC clusters. It uses erasure coding and snapshots for data protection, is based upon a scale-out object store, and is focused on transparent failure recovery and ease of use.
Quobyte DCFS Quobyte Proprietary Linux, macOS, FreeBSD A fault-tolerant, parallel POSIX file system, with block (VMs) and object (S3) interfaces, and advanced enterprise features like multi-tenancy, strong authentication, encryption. Split-brain safe fault-tolerance is achieved through Paxos-based leader election and erasure coding.
RozoFS Rozo Systems GNU GPL v2 Linux A POSIX DFS focused on fault-tolerance and high-performance, based on the Mojette erasure code to reduce significantly the amount of redundancy (compared to plain replication).
Scality Scality ring Proprietary Linux A POSIX file system[citation needed] focused on high availability and performance. Also provides S3/REST/NFS interfaces.
Tahoe-LAFS Tahoe-LAFS Software Foundation GNU GPL v2+ and other[29] Windows, Linux, macOS A secure, decentralized, fault-tolerant, peer-to-peer distributed data store and distributed file system.
XtreemFS Contrail E.U. project, the German MoSGrid project and the German project "First We Take Berlin" BSD 3-Clause[30] Linux, Solaris, macOS, Windows A cross-platform file system for wide area networks. It replicates the data for fault tolerance and caches metadata and data to improve performance over high-latency links. SSL and X.509 certificates support makes XtreemFS usable over public networks. It also supports striping for usage in a cluster.

In development:

Peer-to-peer file systems[edit]

Some of these may be called cooperative storage cloud.

Special-purpose file systems[edit]

  • aufs an enhanced version of UnionFS stackable unification file system
  • AXFS (small footprint compressed read-only, with XIP)
  • Barracuda WebDAV plug-in. Secure Network File Server for embedded devices.
  • Boot File System is used on UnixWare to store files necessary for its boot process.
  • cdfs (reading and writing of CDs)
  • Compact Disc File System (reading and writing of CDs; experimental)
  • cfs (caching)
  • Cramfs (small footprint compressed read-only)
  • Davfs2 (WebDAV)
  • Freenet – Decentralized, censorship-resistant
  • FTPFS (FTP access)
  • GmailFS (Google Mail File System)
  • GridFS – GridFS is a specification for storing and retrieving files that exceed the BSON-document size limit of 16 MB for MongoDB.
  • lnfs (long names)
  • LTFS (Linear Tape File System for LTO and Enterprise tape)
  • MVFS – MultiVersion File System, proprietary, used by IBM DevOps Code ClearCase.
  • Nexfs Combines Block, File, Object and Cloud storage into a single pool of auto-tiering POSIX compatible storage.
  • OverlayFS – A union mount filesystem implementation for Linux. Used mainly by Docker for its image layers.
  • romfs
  • SquashFS (compressed read-only)
  • UMSDOS, UVFAT – FAT file systems extended to store permissions and metadata (and in the case of UVFAT, VFAT long file names), used for Linux
  • UnionFS – stackable unification file system, which can appear to merge the contents of several directories (branches), while keeping their physical content separate
  • Venti – Plan 9 de-duplicated storage used by Fossil.

Pseudo file systems[edit]

  • devfs – a virtual file system in Unix-like operating systems for managing device nodes on-the-fly
  • procfs – a pseudo-file system, used to access kernel information about processes
  • tmpfs – in-memory temporary file system (on Unix-like platforms)
  • sysfs – a virtual file system in Linux holding information about buses, devices, firmware, filesystems, etc.
  • debugfs – a virtual file system in Linux for accessing and controlling kernel debugging
  • configfs – a writable file system used to configure various kernel components of Linux
  • sysctlfs – allow accessing sysctl nodes via a file system; available on NetBSD via PUFFS,[31] FreeBSD kernel via a 3rd-party module,[32][33][34] and Linux as a part of Linux procfs.[35]
  • kernfs – a file system found on some BSD systems (notably NetBSD) that provides access to some kernel state variables; similar to sysctlfs, Linux procfs and Linux sysfs.
  • wikifs – a server application for Plan 9's virtual, wiki, file system

Encrypted file systems[edit]

File system interfaces[edit]

These are not really file systems; they allow access to file systems from an operating system standpoint.

  • FUSE (file system in userspace, like LUFS but better maintained)
  • LUFS (Linux userland file system – seems to be abandoned in favour of FUSE)
  • PUFFS (Userspace filesystem for NetBSD, including a compatibility layer called librefuse for porting existing FUSE-based applications)
  • Secure Shell File System (SSHFS) – locally mount a remote directory on a server using only a secure shell login.
  • VFS Virtual Filesystem

See also[edit]

References[edit]

  1. ^ a b c Koen Vervloesem (2010-04-21). "DragonFly BSD 2.6: towards a free clustering operating system". LWN.net. Retrieved 2019-03-07.
  2. ^ a b Matt Dillon (2017-09-23). "hammer_disk.h". BSD Cross Reference. DragonFly BSD. Retrieved 2019-03-06.
  3. ^ "DragonFly BSD 5.2". DragonFly BSD. 2018-06-18. Retrieved 2019-03-06. We can now recommend H2 as the default root filesystem in non-clustered mode.
  4. ^ a b Matt Dillon (2018-05-05). "hammer2_disk.h". BSD Cross Reference. DragonFly BSD. Retrieved 2019-03-06.
  5. ^ a b c Matt Dillon (2018-12-09). "hammer2/DESIGN". BSD Cross Reference. DragonFly BSD. Retrieved 2019-03-06.
  6. ^ Corbet, Jonathan. "The Next3 filesystem". LWN.
  7. ^ a b Tuxera (2019-06-05). "Tuxera acquires mission-critical embedded flash storage leader Datalight". Tuxera. Retrieved 2024-06-28.
  8. ^ "RTEMS File System". Retrieved 20 April 2013.
  9. ^ Overstreet, Kent. "Bcachefs main site".
  10. ^ Edge, Jake. "LWN - An update on bcachefs".
  11. ^ "Bcachefs merged in linux 6.7".
  12. ^ Overstreet, Kent. "Bcachefs on Patreon".
  13. ^ Michael Larabel (2011-10-05). "Samsung Introduces New Linux File-System: F2FS". phoronix.com. Retrieved 2012-12-07.
  14. ^ "United States Patent: 5392427". Patft.uspto.gov. Retrieved 2012-06-15.
  15. ^ "Linux Kernel Mailing List: logfs: remove from tree". Retrieved 2017-03-31.
  16. ^ "Jo's Embedded Serial File System (for Standard Serial NOR-Flash)". GitHub. 2019-06-18.
  17. ^ Pirkola, G. C. (June 1975). "A file system for a general-purpose time-sharing environment". Proceedings of the IEEE. 63 (6): 918–924. doi:10.1109/PROC.1975.9856. ISSN 0018-9219. S2CID 12982770.
  18. ^ IBM. 4690 OS Programming Guide Version 5.2, IBM document SC30-4137-01, 2007-12-06 ([1]).
  19. ^ Caldera (1997). Caldera OpenDOS Machine Readable Source Kit 7.01. The FDOS.EQU file in the machine readable source kit has equates for the corresponding directory entries.
  20. ^ LizardFS.org
  21. ^ IBM (2003). Information about 4690 OS unique file distribution attributes, IBM document R1001487, 2003-07-30. ("IBM Information about 4690 OS unique file distribution attributes - United States". Archived from the original on 2014-05-21. Retrieved 2014-05-20.): "[...] file types are stored in the "Reserved bits" portion of the PC-DOS file directory structure [...] only 4690 respects and preserves these attributes. Various non-4690 operating systems take different actions if these bits are turned on [...] when copying from a diskette created on a 4690 system. [...] PC-DOS and Windows 2000 Professional will copy the file without error and zero the bits. OS/2 [...] 1.2 [...] will refuse to copy the file unless [...] first run CHKDSK /F on the file. After [...] CHKDSK, it will copy the file and zero the bits. [...] when [...] copy [...] back to the 4690 system, [...] file will copy as a local file."
  22. ^ IBM. 4690 save and restore file distribution attributes. IBM document R1000622, 2010-08-31 ("IBM 4690 save and restore file distribution attributes - United States". Archived from the original on 2014-05-21. Retrieved 2014-05-20.).
  23. ^ "distributed-fs-overview". docs.openeuler.org. Retrieved 2024-05-23.
  24. ^ "net/ceph14: Ceph delivers object, block, and file storage in a unified system". FreshPorts. Retrieved 2021-07-11.
  25. ^ "dCache Software License".
  26. ^ "MooseFS".
  27. ^ "OneFS 8.1 eLicensing and remote support changes".
  28. ^ "Features of OIO-FS — OpenIO SDS 18.10 Object Storage documentation". docs.openio.io. Retrieved 2018-12-20.
  29. ^ "about.rst in trunk/docs – tahoe-lafs". Tahoe-lafs.org. Retrieved 2014-02-09.
  30. ^ "XtreemFS - License".
  31. ^ "mount_sysctlfs(8)". NetBSD Manual Pages. 2010-04-11. Retrieved 2021-07-10.
  32. ^ Pawel Jakub Dawidek (2002-12-24). "sysctlfs.README". Archived from the original (text/plain) on 2005-02-23. Retrieved 2021-07-10.
  33. ^ Pawel Jakub Dawidek (2002-12-24). "Re: Hmm, sysctlfs". Retrieved 2021-07-10.
  34. ^ "Hacking FreeBSD / sysctlfs / [9a7ced]". SourceForge. Retrieved 2021-07-10.
  35. ^ Terrehon Bowden; Bodo Bauer; Shen Feng. "Chapter 2: Modifying System Parameters - The /proc Filesystem". The Linux Kernel. Retrieved 2021-07-10.

External links[edit]