A file system is a means to organize data expected to be retained after a program terminates by providing procedures to store, retrieve and update data, as well as manage the available space on the device(s) which contain it. File system formats
define the way that data file is stored on storage media and they affects a file system's structure. A file system organizes data in an efficient manner and is tuned to the specific characteristics of the device. File systems allocate space in a granular manner,
usually multiple physical units on the device. The file system is responsible for organizing files and directories and
keeping track of which areas of the media belong to which file and which are not being used.
CD-ROM File System (implemented in the \Windows\System32\Drivers\Cdfs.sys file), or CDFS, is a read-only file system driver that supports a superset of the ISO-9660 format as well as a superset of the Joliet disk format. While the ISO-9660
format is relatively simple and has limitations such as ASCII uppercase names with a maximum length of 32 characters, Joliet is more flexible and supports Unicode names of arbitrary length. If structures for both formats are present on a disk (to offer maximum
compatibility), CDFS uses the Joliet format CDFS has a couple of restrictions: a
maximum file size of 4 GB and a maximum of 65535 directories. CDFS is a relatively simple format that was defined in 1988 as the read only formatting standard for CD-ROM media. CDFS is considered a legacy format
because the industry has adopted the Universal Disk Format (UDF) as the standard for optical media.
Back to top
Universal Disk Format (UDF) is an implementation of the specification known as ISO/IEC 13346 and ECMA-167 and is an open vendor-neutral file system for computer data storage for a broad range of media. In practice, it has been most widely used for DVDs and
newer optical disc formats, supplanting ISO 9660. Due to its design, it is very well suited for incremental updates on both recordable or (re)writable optical media. UDF is developed and maintained by the Optical Storage Technology Association (OSTA). The
Windows UDF Driver (implemented in the \Windows\System32\Drivers\Udfs.sys file) supports UDF versions up to 2.60, providing read-write support for DVD-RAM, CD-R/RW, and DVD +-R/RW drives when using UDF 2.50 and read-only support when using
Back to top
The File Allocation Table (FAT) file system is supported primarily to enable upgrades from previous versions of Windows, for compatibility with other operating systems in multiboot systems and as a format for flash drives or memory cards. The name of each
FAT format includes a number that indicates the number of bits the format uses to identify clusters on a disk. The Windows FAT file system driver is implemented in the \Windows\System32\Drivers\Fastfat.sys file.
FAT12’s 12-bit cluster identifier limits a partition to storing a maximum of 2^12 (4,096) clusters; Windows uses cluster sizes from 512 bytes to 8 KB in size, which limits a FAT12 volume size to 32 MB (all FAT file system types reserve the
first two clusters and the last 16 clusters of a volume, so the number of usable clusters for a FAT12 volume, for instance, is slightly less than 4,096).
FAT16, with a 16-bit cluster identifier, can address 2^16 (65,536) clusters. On Windows, FAT16 cluster sizes range from 512 bytes (the sector size) to 64 KB, which limits FAT16 volume sizes to 4 GB. The cluster size Windows uses depends on
the size of a volume. If you format a volume that is less than 16 MB as FAT by using the
format command or the Microsoft Management Console Disk Management snap-in, Windows uses the FAT12 format instead of FAT16. A FAT volume is divided into several regions. The file allocation table (which gives the FAT file system format its name), has
one entry for each cluster on a volume; because the file allocation table is critical to the successful interpretation of a volume’s contents, the FAT format maintains two copies of the table so that if a file system driver or consistency-checking program
(such as Chkdsk) can’t access one (because of a bad disk sector, for example), it can read from the other. FAT16 is an older file system. It was widely used on Windows NT 4.0 and provides optimal performance on volumes that are less than 2 gigabytes
In Table 1 you can see the default cluster size corresponding to each volume size in FAT16.
Default Cluster Size
Table 1: Default FAT16 Cluster Sizes in Windows.
Table 2: Default FAT32 Cluster Sizes in Windows.
Designed by Microsoft, the Extended File Allocation Table file system (exFAT, also called FAT64) is an improvement over the traditional FAT file systems and is specifically designed for flash drives. The main goal of exFAT is to provide some of the advanced
functionality offered by NTFS, but without the metadata structure overhead and metadata logging that create write patterns not suited for many flash media devices. As the FAT64 name implies, the
file size limit is increased to 2^64, allowing files
up to 16 exabytes; this change is also matched by an increase in the maximum cluster size, which is currently implemented as 32 MB but can be as large as 2^255 sectors. exFAT also adds a bitmap that tracks free clusters, which improves the
performance of allocation and deletion operations. Finally, exFAT allows more than 1,000 files in a single directory; these characteristics result in increased scalability and support for large disk sizes. Additionally, exFAT implements certain features previously
available only in NTFS, such as support for access control lists (ACLs) and transactions (called Transaction-Safe FAT or TFAT).
The exFAT file system is implemented in the \Windows\System32\Drivers\exfat.sys file.
Back to top
New Technology File System (implemented in the \Windows\System32\Drivers\Ntfs.sys file), or NTFS, is the native file system format of Windows: NTFS uses
64-bit cluster numbers and can address volumes of up to 16 exaclusters; however, Windows limits the size of an NTFS volume to that addressable with 32-bit clusters, which is
slightly less than 256 TB (using 64-KB clusters; you can override the default when you format an NTFS volume). NTFS also supports
2^32–1 files per volume. The NTFS format allows for files that are 16 exabytes in size, but the implementation limits the
maximum file size to 16 TB. NTFS includes a number of advanced features, such as file and directory security, alternate data streams, disk quotas, sparse files, file compression, symbolic (soft) and hard links, support for
transactional semantics and encryption. One of its most significant features is recoverability: if a system is halted unexpectedly, the metadata of a FAT volume can be left in an inconsistent state, leading to the corruption of large amounts of file and directory
data; NTFS logs changes to metadata in a transactional manner so that file system structures can be repaired to a consistent state with no loss of file or directory structure information (file data can be lost, however). Additionally, the NTFS driver in Windows
also implements self-healing, a mechanism through which it makes most minor repairs to corruption of file system on-disk structures while Windows is running and without requiring a reboot.
In Table 3 you can see the default cluster size corresponding to each volume size in NTFS.
Table 3: Default NTFS Cluster Sizes in Windows.
This new file system was seen in the Windows 7 Alpha and again in Windows 8 Alphas, but was removed before the Beta was released.
Back to top
WinFS is the code name for a cancelled (as you can read in the MSDN Blog's post titled "WinFS Update" by Quentin Clark, WinFS Program Manager) data storage
and management system project based on relational databases, developed by Microsoft and first demonstrated in 2003 as an advanced storage subsystem for the Microsoft Windows operating system, designed for persistence and management of structured,
semi-structured as well as unstructured data. WinFS includes a relational database for storage of information and allows any type of information to be stored in it, provided there is a well defined schema for the type. Individual data items
could then be related together by relationships, which are either inferred by the system based on certain attributes or explicitly stated by the user. As the data has a well defined schema, any application can reuse the data; and using the relationships, related
data can be effectively organized as well as retrieved. Because the system knows the structure and intent of the information, it can be used to make complex queries that enable advanced searching through the data and aggregating various data items by exploiting
the relationships between them.
The next Windows release (Windows 8) will introduce a newly engineered file system, named ReFS, which stands for Resilient File System. It is built on the foundations of NTFS, so it maintains crucial compatibility while at the same time it has been architected
and engineered for a new generation of storage technologies and scenarios. In Windows 8, ReFS will be introduced only as part of Windows Server 8.
The current state of the evolution of ReFS along with a description of its key goals and features can be read in the "Building the next generation
file system for Windows: ReFS" post by Steven Sinofsky in the MSDN "Building Windows 8" Blog.
NOTE: this section provides links that are external to the TechNet Wiki.
Back to top
This article is also available in the following languages:
Added a "White Papers" section and a link within.
Thanks for your contribution, Rich.
This is a great article
good and useful collection, thanks
Great article and very useful.
Nice summary. Especially the work in progress file systems Might want to add a section or different wiki post on non-Windows file system for comparison. i.e. ext3, ext4, etc.