{"id":72100,"date":"2025-08-06T23:24:50","date_gmt":"2025-08-07T02:24:50","guid":{"rendered":"https:\/\/a3aengenharia.com\/en-us\/content\/technical-articles\/what-are-file-systems-filesystem\/"},"modified":"2026-04-29T08:58:27","modified_gmt":"2026-04-29T11:58:27","slug":"what-are-file-systems-filesystem","status":"publish","type":"articles","link":"https:\/\/a3aengenharia.com\/en-us\/content\/technical-articles\/what-are-file-systems-filesystem\/","title":{"rendered":"What Are File Systems (Filesystem)?"},"content":{"rendered":"\n<p>The file system (filesystem) is a logical structure and a set of algorithms, methods, and conventions responsible for the organisation, storage, retrieval, management, and protection of persistent data on secondary memory devices, such as hard drives, SSDs, optical media, and other non-volatile storage media.<\/p>\n\n\n\n<p>At an abstract level, the file system defines the rules according to which data is named, organised into logical units (files), and grouped into directories (or folders), while also controlling the operations of creation, deletion, reading, writing, and manipulation of attributes and permissions associated with these objects. It thus provides a uniform and standardised interface between the operating system and the underlying storage hardware, hiding the physical peculiarities of devices and exposing a logical model that is understandable to users and applications.<\/p>\n\n\n\n<p>Technically, a file system is composed of:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Metadata structures<\/strong> (such as superblocks, inodes, FATs, MFTs), which store control and management information (e.g. physical location, size, timestamps, permissions, links).<\/li>\n\n\n\n<li><strong>Allocation and space-mapping mechanisms<\/strong>, which define how data is physically arranged in the blocks or sectors of the device.<\/li>\n\n\n\n<li><strong>Directory structures and indexes<\/strong>, which implement efficient search and navigation mechanisms.<\/li>\n\n\n\n<li><strong>Integrity, security, and fault-tolerance policies<\/strong>, such as journaling, checksums, and access control.<\/li>\n<\/ul>\n\n\n\n<p>In the context of modern operating systems, the file system is implemented as an intermediate layer \u2014 generally called the <em>Virtual File System (VFS)<\/em> \u2014 which abstracts the multiplicity of supported file systems, allowing the OS kernel to handle various formats and devices in a transparent, interoperable, and extensible manner.<\/p>\n\n\n\n<p>Therefore, the file system not only enables persistent storage and rational organisation of data, but also imposes access rules, protection mechanisms, and optimisation strategies that directly influence the efficiency, reliability, and security of contemporary computing systems.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-function-and-purpose-of-the-file-system-in-the-operating-system-context\">Function and Purpose of the File System in the Operating System Context<\/h2>\n\n\n\n<p>The <strong>file system<\/strong> plays a fundamental role in the architecture of operating systems by providing the mechanisms required for the abstraction, organisation, persistent storage, and efficient management of data on secondary memory devices.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-abstraction-of-physical-storage\">Abstraction of Physical Storage<\/h3>\n\n\n\n<p>The operating system uses the file system to hide physical details of storage hardware (e.g. sectors, cylinders, blocks, mechanical latencies) and to present users and applications with a logical, uniform, and hierarchical view of data composed of files and directories. This abstraction allows multiple storage devices and technologies to be accessed transparently.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-data-organisation-and-structuring\">Data Organisation and Structuring<\/h3>\n\n\n\n<p>Through the file system, the operating system provides methods for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Naming files and directories<\/strong> (symbolic identifiers);<\/li>\n\n\n\n<li><strong>Hierarchical structuring<\/strong> (directories, subdirectories, absolute and relative paths);<\/li>\n\n\n\n<li><strong>Metadata association<\/strong> (size, permissions, timestamps, owner);<\/li>\n\n\n\n<li><strong>Management of free space and fragmentation<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-access-management-and-concurrency-control\">Access Management and Concurrency Control<\/h3>\n\n\n\n<p>The file system implements access control mechanisms (ACLs, POSIX permissions, etc.), ensuring data isolation, integrity, and confidentiality. In addition, it provides support for concurrency, locking, and synchronisation of read\/write operations, which are essential in multi-user and multitasking environments.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-data-persistence-and-integrity\">Data Persistence and Integrity<\/h3>\n\n\n\n<p>The file system is responsible for ensuring that data remains durably stored, even after shutdowns or failures. Techniques such as journaling, checksums, transaction logs, and recovery policies are employed to mitigate loss and corruption.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-interface-for-users-and-applications\">Interface for Users and Applications<\/h3>\n\n\n\n<p>The operating system provides, through the file system, programming interfaces (syscalls) and utility commands for the creation, reading, writing, deletion, and manipulation of files and directories. This standardised interface enables the development of applications that are independent of the underlying storage hardware.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-resource-multiplexing-and-sharing\">Resource Multiplexing and Sharing<\/h3>\n\n\n\n<p>It allows multiple users and processes to access the same files and devices in a controlled and secure manner, enabling resources such as network sharing, external volume mounting, usage quotas, and versioning.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Difference Between Partition, Volume, and Filesystem<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Partition<\/strong><\/h3>\n\n\n\n<p>A <strong>partition<\/strong> is a logical subdivision of a physical storage device (such as a hard disk or SSD). Through a partitioning scheme (e.g. MBR, GPT), the total space of the device is segmented into independent areas, each delimited by a defined start and end at the physical disk address.<br>Each partition operates in an isolated manner: it may host different file systems, be intended for distinct functions (OS, swap, data, recovery), or even remain unformatted. Partitioning aims to organise, protect, and enable multiple environments within the same physical device, while also facilitating data management and recovery.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Volume<\/strong><\/h3>\n\n\n\n<p>A <strong>volume<\/strong> is a logical abstraction, generally implemented and managed by the operating system, which represents a storage unit usable by the user.<br>A volume may correspond directly to a physical partition, but it may also be formed by multiple aggregated partitions (for example, via LVM \u2013 Logical Volume Manager, RAID, or distributed file systems), or even be only a fraction of a partition.<br>In short, the volume is the entity that the operating system mounts and makes available for reading and writing, and it may receive a letter (e.g. C: in Windows) or be mounted in a directory (e.g. \/home in Linux).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Filesystem (File System)<\/strong><\/h3>\n\n\n\n<p>The <strong>file system<\/strong> is the logical structure and the set of methods that define how data is organised, stored, and accessed within a volume. It is the file system that dictates the arrangement of files, directories, metadata, allocation mechanisms, protection, integrity, and data recovery.<br>In practical terms, for a volume (or partition) to be usable for file storage, it must be \u201cformatted\u201d with a specific file system (e.g. NTFS, ext4, FAT32).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Relationship Among Them<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A <strong>physical device<\/strong> may contain one or more <strong>partitions<\/strong>.<\/li>\n\n\n\n<li>Each <strong>partition<\/strong> may be associated with one or more <strong>volumes<\/strong>, depending on the adopted logical management scheme.<\/li>\n\n\n\n<li>Each <strong>volume<\/strong> must be formatted with a <strong>file system<\/strong> in order to store and organise data in a structured manner.<\/li>\n<\/ul>\n\n\n\n<p><strong>Practical Example:<\/strong><br>On a 1 TB hard drive, one may create three partitions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>One of 200 GB (OS), formatted with NTFS, which will be volume C:;<\/li>\n\n\n\n<li>One of 700 GB (data), formatted with exFAT, which will be volume D:;<\/li>\n\n\n\n<li>One of 100 GB for swap, without a file system, used by the OS.<\/li>\n<\/ul>\n\n\n\n<p>In advanced environments, a logical volume may encompass multiple partitions from different disks (RAID, LVM), and be presented as a single mount point.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-types-of-file-systems\">Types of File Systems<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-classic-file-systems\">Classic File Systems<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">FAT12, FAT16, FAT32<\/h4>\n\n\n\n<p>The <strong>FAT<\/strong> (File Allocation Table) family was originally developed by Microsoft in the 1970s\u201380s for MS-DOS systems. It uses an allocation table to map data blocks and control free disk space.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>FAT12<\/strong> was intended for floppy disks, supporting only a few megabytes.<\/li>\n\n\n\n<li><strong>FAT16<\/strong> allowed addressing of up to 2 GB.<\/li>\n\n\n\n<li><strong>FAT32<\/strong> expanded support to volumes of up to 2 TB and files of up to 4 GB, becoming a standard in removable media (USB drives, SD cards).<br>FAT does not provide security features, journaling, or advanced permission control, making it limited in multi-user or critical environments.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">NTFS<\/h4>\n\n\n\n<p><strong>NTFS<\/strong> (New Technology File System), introduced in Windows NT, features a record-based architecture (MFT \u2013 Master File Table), support for journaling, compression, encryption (EFS), granular permissions (ACLs), disk quotas, and automatic recovery.<br>NTFS supports large files and volumes, symbolic links, alternate streams, and integration with Active Directory. It is the standard file system for modern Windows systems.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">ext2, ext3, ext4<\/h4>\n\n\n\n<p>The <strong>ext<\/strong> (extended file system) family was developed for Linux:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ext2<\/strong>: simple, efficient, without journaling.<\/li>\n\n\n\n<li><strong>ext3<\/strong>: added journaling for greater resilience to failures.<\/li>\n\n\n\n<li><strong>ext4<\/strong>: increased maximum file\/volume sizes, improved performance, and added support for delayed allocation, extents, integrity checking, and extended timestamps.<br>ext4 is widely adopted in Linux distributions due to its stability and robustness.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">HFS\/HFS+<\/h4>\n\n\n\n<p><strong>HFS<\/strong> (Hierarchical File System) was Apple\u2019s file system for classic Mac OS. <strong>HFS+<\/strong> (or Mac OS Extended) brought improvements such as support for long names, larger files, and journaling. Both were optimised for magnetic hard drives and were replaced by APFS in more recent versions of macOS.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">exFAT<\/h4>\n\n\n\n<p><strong>exFAT<\/strong> (Extended File Allocation Table) is aimed at high-capacity removable media, overcoming FAT32 limitations. It supports large volumes and files, fast allocation, and is compatible with Windows, macOS, and embedded systems, becoming the standard in SDXC cards and portable devices.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-modern-file-systems\">Modern File Systems<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Btrfs<\/h4>\n\n\n\n<p><strong>Btrfs<\/strong> (B-tree file system), developed for Linux, incorporates advanced features such as snapshots, checksums for data and metadata, online balancing, native compression, integrated RAID, and dynamic volume expansion. Its design is aimed at high integrity, flexibility, and simplified administration.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">ZFS<\/h4>\n\n\n\n<p><strong>ZFS<\/strong> (Zettabyte File System), created by Sun Microsystems, is notable for its support for large volumes and files, integrity through checksums, deduplication, snapshots, compression, RAID-Z, self-repair, and unified management of volumes and filesystems. It is used in mission-critical environments, enterprise storage, and servers.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">XFS<\/h4>\n\n\n\n<p>Developed by SGI for UNIX, <strong>XFS<\/strong> is optimised for performance with large files and parallel operations. It supports journaling, online expansion, dynamic allocation, quotas, and is frequently used in high-performance servers and data storage solutions.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">APFS<\/h4>\n\n\n\n<p><strong>APFS<\/strong> (Apple File System) replaced HFS+ in the Apple ecosystem. It is designed for SSDs and flash storage, offering native encryption, snapshots, clones, efficient space management, and high performance in simultaneous operations. It is the standard on macOS, iOS, and related devices.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-file-systems-for-specific-devices\">File Systems for Specific Devices<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Flash (F2FS, JFFS2)<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>F2FS<\/strong> (Flash-Friendly File System) was created to optimise the performance of NAND flash-based devices, such as SSDs and SD cards, reducing write amplification and managing the internal structure of flash memory.<\/li>\n\n\n\n<li><strong>JFFS2<\/strong> (Journaling Flash File System v2) is used in embedded systems and NOR\/NAND memories, with a focus on fault tolerance and efficient management of erasable blocks.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">SD Cards, USB Drives<\/h4>\n\n\n\n<p>In removable media, systems such as FAT32, exFAT, and F2FS prevail due to their broad compatibility across operating systems and the typical access profile (small files, frequent read\/write operations).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-network-file-systems\">Network File Systems<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">NFS<\/h4>\n\n\n\n<p><strong>NFS<\/strong> (Network File System), created by Sun Microsystems, allows UNIX and Linux systems to share directories and files over the network, providing transparency in remote mounting, support for multiple clients, and integration with authentication and permissions.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">SMB\/CIFS<\/h4>\n\n\n\n<p><strong>SMB<\/strong> (Server Message Block), and its evolved version <strong>CIFS<\/strong> (Common Internet File System), is widely used in Windows environments for file and printer sharing, as well as interprocess communication on local and corporate networks.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Lustre, GlusterFS, CephFS<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lustre<\/strong>: a distributed file system for HPC (High Performance Computing) environments, scaling to thousands of nodes and petabytes of data.<\/li>\n\n\n\n<li><strong>GlusterFS<\/strong>: a distributed filesystem based on aggregation of network volumes for horizontal scalability.<\/li>\n\n\n\n<li><strong>CephFS<\/strong>: part of the Ceph project, it offers a distributed filesystem with high availability, automatic replication, fault tolerance, and integration with object storage.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-performance-robustness-and-security\">Performance, Robustness, and Security<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-performance-benchmarks-latency-and-throughput\">Performance: Benchmarks, Latency, and Throughput<\/h3>\n\n\n\n<p>The performance of a file system is evaluated through metrics such as <strong>latency<\/strong> (response time for I\/O operations) and <strong>throughput<\/strong> (data transfer rate, usually expressed in MB\/s or IOPS \u2013 Input\/Output Operations per Second).<br>Factors that impact performance include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Block allocation strategies<\/strong>;<\/li>\n\n\n\n<li><strong>Block size<\/strong> and cache policy;<\/li>\n\n\n\n<li><strong>Journaling<\/strong> and redundancy techniques;<\/li>\n\n\n\n<li><strong>Parallelism<\/strong> in operations and support for multiple threads\/processes.<\/li>\n<\/ul>\n\n\n\n<p>Specific <strong>benchmarks<\/strong>, such as fio, bonnie++, iozone, and vdbench, are used to measure performance under different access patterns (sequential, random, read, write).<br>Modern file systems, such as XFS and ZFS, optimise operations for heavy workloads by providing parallelism and efficient management of caches and buffers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-resilience-journaling-checksums-and-self-healing\">Resilience: Journaling, Checksums, and Self-Healing<\/h3>\n\n\n\n<p><strong>Resilience<\/strong> refers to the file system\u2019s ability to withstand and recover from failures, ensuring data integrity and availability.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Journaling<\/strong>: A mechanism that records metadata operations (and, in some cases, data) before they are actually committed to disk. In the event of an abrupt failure (e.g. power outage), the journal is used to restore the consistent state of the system. NTFS, ext3\/ext4, XFS, and ReFS use journaling to prevent corruption.<\/li>\n\n\n\n<li><strong>Checksums<\/strong>: Cryptographic checks (e.g. CRC, hash) applied to data and metadata for detection of silent corruption, especially in systems such as ZFS and Btrfs.<\/li>\n\n\n\n<li><strong>Self-healing<\/strong>: Systems such as ZFS and Btrfs detect discrepancies using checksums and, in redundant environments (RAID), can automatically reconstruct corrupted data from healthy copies, enabling \u201cself-healing\u201d.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-security-permissions-acls-encryption-and-logs\">Security: Permissions, ACLs, Encryption, and Logs<\/h3>\n\n\n\n<p><strong>Security<\/strong> in file systems includes mechanisms to control access, ensure confidentiality, authentication, integrity, and traceability of operations.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Traditional permissions<\/strong>: User\/group-based models (Unix-like: rwx) that restrict access to files and directories.<\/li>\n\n\n\n<li><strong>ACLs (Access Control Lists)<\/strong>: Allow greater granularity, specifying detailed permissions for multiple users or groups on individual objects.<\/li>\n\n\n\n<li><strong>Encryption<\/strong>: It may be applied at different levels:\n<ul class=\"wp-block-list\">\n<li><strong>Transparent at the file system level<\/strong> (e.g. NTFS EFS, APFS, ext4 with e4crypt);<\/li>\n\n\n\n<li><strong>At the block\/disk level<\/strong> (LUKS, BitLocker, FileVault);<\/li>\n\n\n\n<li><strong>On specific files<\/strong>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Logs and auditing<\/strong>: Systems may record critical operations (creation, deletion, access, permission changes) in logs for auditing, forensic, and compliance purposes. Tools such as auditd (Linux), Event Viewer (Windows), and syslog are used for monitoring.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">7.4 <strong>Recovery and Forensics in File Systems<\/strong><\/h3>\n\n\n\n<p>The ability to perform <strong>recovery<\/strong> and <strong>forensic analysis<\/strong> is vital in corporate and critical environments:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Recovery tools<\/strong>: Used to recover deleted files, restore partitions, and repair corrupted metadata (e.g. TestDisk, PhotoRec, extundelete, chkdsk, fsck).<\/li>\n\n\n\n<li><strong>Snapshots and backups<\/strong>: Snapshots (point-in-time copies of the state of the file system) and backup routines facilitate fast restoration after failures, corruption, or attacks (e.g. ransomware).<\/li>\n\n\n\n<li><strong>Digital forensics<\/strong>: Detailed analysis of metadata, logs, timestamp records, and traces left by disk operations makes it possible to reconstruct security incident scenarios, investigate unauthorised access, and recover digital evidence.<\/li>\n<\/ul>\n\n","protected":false},"excerpt":{"rendered":"<p>A technical overview of file systems, including functions, structures, types, partitions, volumes, performance, resilience, security, recovery, and forensics.<\/p>\n","protected":false},"author":0,"featured_media":32224,"parent":0,"template":"","meta":{"_a3a_post_lang":"en-us","_a3a_translation_group_id":"743604de-b2b2-4cee-ac5d-ec3dc52165c7","_a3a_i18n_canonical_slug":"what-are-file-systems-filesystem"},"categories":[],"class_list":["post-72100","articles","type-articles","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/articles\/72100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/articles"}],"about":[{"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/types\/articles"}],"version-history":[{"count":1,"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/articles\/72100\/revisions"}],"predecessor-version":[{"id":72101,"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/articles\/72100\/revisions\/72101"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/media\/32224"}],"wp:attachment":[{"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/media?parent=72100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/a3aengenharia.com\/en-us\/wp-json\/wp\/v2\/categories?post=72100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}