File System in Windows
Executive Summary
File system in computing system control how data is stored and retrieved. In other terms, it is the process and data structure employed by the operating system to maintain control of files on a disk or partition. File system separates pieces of data and assigns the names such that it is easily identified and isolated. Data would be one large body with no file system to dictate the starting and the ending of a data stream. Any file on a computer is stored on a medium with a specified capacity. Every storage system is linear spaces with both writing and reading of digital data. Each piece of information has an offset address where it is referenced. Storage can be viewed as a grid with a numbered cell set. Each file placed in the store has its own cells.
In general, computer storage uses a sector-by-sector and in-sector offset pair to reference any byte of storage information. The sector is a collection of bytes, the minimum addressable physical storage unit. This scheme is used to simplify the storage address and to use a smaller number to refer to some portion of the information stored. Files are typically stored from the start of the sector and occupy entire areas to omit the vpart of the address. In order to satisfy the varied needs of users, such as storage capacity, consistency and reliability, a variety of file systems have been built in order to be able to fulfil various requirements more efficiently.
Introduction
A file system is a process that manages how and where data on a storage disk, typically a hard disk drive (HDD), is stored, accessed and managed. A logical disk component manages a disk’s internal operations as it relates to a computer and is abstract to a human user. Overall, the file system is a standardized description of the information and a collection of metadata identifying the information. It is added to the storage during the format operation. A file system is used for all storage purposes and is part of a separate storage unit – a disk partition. Typically, a file system is operating blocks, not sectors. File system blocks are groups of areas that simplify the addressing of data. Modern file systems usually use block sizes from 1 – 128 sectors. Files are typically located at the beginning of a file and take up space.
Continuous write/delete activities trigger the fragmentation of a file system. File, therefore, are not treated as the whole unit but are split into parts. For instance, files with a size of about four blocks each are wholly occupied by storage. The user needs to store a file that will take up to eight blocks and thus remove the first and last files. Through doing so, he or she will free up the room of eight blocks, but the first section will be placed near the start of the storage, during the second – the end of the storage. In this case, the 8-block file is split into two sections, and the free space “doors” is used. Data about both the fragments are part of a single file stored in the file system. In addition to user files, the file system also includes its own settings, domain descriptors, domain names and directory hierarchy. This can also store security information, extended attributes and other parameters.
Windows File System
There are two major file systems employed by Microsoft Windows. New Technology File System (NTFS) is the most modern version and primarily used as default by the operating system (Base, 2020). The second file system is the File Allocation Table (FAT). FAT was inherited from DOS, and it has the later extension exFAT. Moreover, Microsoft has a new file system for Windows servers from Windows server 2012.
- FAT
File Allocation Table is one of the simplistic file system types that has been used since the 1980s. FAT comprises of the file system descriptor sector, the file system block allocation table, and the primary disk space for the disk of files and directories. FAT files are stored in directories. That directory is a 32-byte record sequence, each of which specifies a file or expanded file properties. The file log assigns the first section of the file to the user (Pot, 2020). The next block can be found in the block allocation table by using it as a link list. The Block Allocation Table includes a series of block descriptors. A zero value means that the block is not used, while a non-zero block applies to the next block of the file or a unique value at the end of the file.
FAT initially had three, which included FAT12, FAT16 and FAT32. The number in each FAT file system represents the number of bits in the enumerated file system block (Wijayaratne et al., 2016). FAT12 uses up to 4096 block references, FAT16 uses up to 65536 reference blocks while FAT32 uses a reference up to 4294967296 reference blocks. In addition, the actual maximum count of reference blocks is less but depends on the file system drivers.
FAT12 and FAT16 had an extensive application on floppy disks and are not mostly used lately. FAT32 is widely used in several items, like USB sticks and memory cards. Digital cameras, smartphones and other portable devices support FAT32 file system. FAT32 can be used on Windows-compatible external drives or disk partitions with a size of fewer than 32 GB and does not require files with a capacity of more than 4 GB to be generated. , exFAT has been released, which has no practical restrictions on file sizes or partitions to fix this problem.
- NTFS
Microsoft Windows introduced the New Technology File System in 1993 with NT and currently is the most common for computers running on Windows. Moreover, this file system is the most commonly used by Windows servers (Lin, 2018).
Thanks to journaling, the file system is very stable and supports other features, including access management, confidentiality, and so on. File in NTFS is stored as a file descriptor in the Master File Table and the contents of the file. The Master File Table includes entries with all file information: height, assignment, name, etc. The first 16 entries of the Master File Table are kept for the BitMap, which holds track of all free and used clusters, the Log used for journaling data, and the BadClus comprising bad cluster information. The first and last sections of the file system comprise the configuration of the file system. This file system uses 48-bit and 64-bit values for reference files, making it easy to accommodate incredibly high-capacity data storage.
- ReFS
Resilient File System (ReFS) is the latest files system developed by Microsoft. ReFS was introduced in Windows 8, and it is available in Windows 10. It differs from another file system by Microsoft Windows architecture, which is based on B+-tree. ReFS has a high tolerance for failure due to the new features included in the device. In addition, there is, Copy-on-Write (CoW): no metadata is changed without copying; code is not written over existing files, but into a new disk space. For any file updates, a new copy of the metadata is placed in free storage space, and the program then establishes a relation from the old metadata to the newer one. Therefore, the system maintains a large number of older copies in various locations to provide fast file recovery until this disk space is overwritten.
macOS File System
Apple’s macOS uses two file systems: HFS+, an extension of its own HFS file system used on old Macintosh computers, and newly updated APFS.
- HFS+
HTTP File server (HFS+) used to be the main file system for Apple desktop devices, including Mac computers, iPods, and Apple X Server devices until it was replaced by APFS in macOS High Sierra. Advanced server goods also use the Apple Xsan file system, a clustered file system originating from both StorNext and CentraVision.
The HFS+ file system uses B-trees to position and locates files. Volumes are divided into sectors, typically 512 bytes in size, which are then grouped into allocation blocks, the number of which depends on the size of the whole volume. Details on the free and used allocation blocks are stored in the Allocation Log. All allocation blocks allocated to each file as extensions are registered in the Extends Overflow Package. Finally, all attributes of the file are specified in the Attributes section. Data integrity is enhanced by journaling, which makes it possible to keep track of any adjustments to the framework and easily return it to function in the event of unforeseen events. Other supported features include hard directory connections, logical volume encryption, access control, data compression, etc.
- APFS
The Apple File System is intended to address the core issues of its predecessor and has been designed to operate effectively with modern flash memory and solid-state devices. This 64-bit file system uses the copy-on-write approach to enhance performance, which enables each block to be copied before any changes are made to it, and provides a lot of data integrity and space-saving features. All file contents and metadata about directories, folders and other APFS structures are stored in the APFS container. The Container Superblock stores information about the number of blocks in the container, the size of the block, etc. Information about both reserved and free container blocks is handled with the aid of Bitmap Structures. What volume in the container has its own Volume Superblock, which provides information on this volume. All volume files and directories are documented in File and Folder B-Tree, while Extents B-Tree is responsible for sizes-references to the contents of the file (start file, block length).
Linux File systems
Open-source Linux aims to implement, test and use various types of file systems. The common file system used in Linux include;
- EXT
Ext2, Ext3, Ext4-the “original” Linux file system. This file system is part of ongoing innovations and enhancements. Ext3 file system is just an extension of Ext2 that uses transactional log writing operations. Ext4 is a further evolution of Ext3, expanded with support for structured file allocation information (extents) and expanded file attributes. This file system is commonly used as a root file system for most Linux installations.
- ReiserFS
ReiserFS-an alternative Linux file system for storing a large number of small files. It has good file search capability and enables compact file allocation by storing file tails or small files along with metadata in order not to use large file system blocks for the same purpose. However, this file system will no longer provide active support.
- XFS
XFS-a file system originating from the SGI Company and originally used for the IRIX servers of the organization. The XFS features are now incorporated in Linux. The XFS file system has outstanding performance and is commonly used to store files.
- JFS
JFS-a file system established by IBM for the company’s efficient computer systems. JFS1 is typically JFS, JFS2 is the second update. This file system is currently open-source and is being introduced in most modern versions of Linux.
- Btrfs
Btrfs-a file system developed by Oracle that has been supported by the mainline Linux kernel since 2009. The file system aims at increased consistency and usability, providing higher synchronous replication, simpler management, etc., along with a range of additional features, but cannot be deemed entirely reliable. The principle of “hard links” used for this type of operating system which makes most Linux file systems similar in that the file name is not considered to be a file attribute, but rather is known as an alias for a file in a directory. You can connect a file object from several locations, or even combine it from another directory under different titles. This can lead to severe and even unsurmountable complexities in retrieving file names after file removal or file system harm.
File System in Android Phones
Androids use a file system called Yet Another Flash File System (YAFFS). This framework consists of six key partitions that make up the entire file storage structure.
- Boot
This location contains the kernel and ramdisk. This is the primary partition in Android without it a phone cannot boot.
The location where the entire software is stored
- Recovery
This is the partition that allows a user to perform advanced setting like wiping, mounting installing, and backing up and other related functions.
- Data
This is the location where the user stores his data example of user accounts and personal information.
- Cache
This partition contains the information of frequently accessed terms and forms temporally thumbnail files.
- Misc
This partition stores the remains files configuration like USB configuration and other settings on the phone.
iOS File System
Apple File System (APFS) is the default file system for macOS, iOS, watchOS, and TVOS. APFS replaces HFS+ as the default file system for iOS 10.3 and later, macOS High Sierra and later (Apple, 2020). In addition, macOS supports a number of other formats, as defined in Supported File Systems. The iOS file system is targeted at apps running on their own. To keep the code easy, users of iOS devices do not have direct access to the file system, and applications are required to follow this convention. Apps are usually forbidden from accessing or constructing files outside their folder folders. One exception to this rule is when an app uses public device interfaces to access items such as user contacts or music. In these instances, device frameworks use helper apps to manage any file-related operations required to read or change the correct data stores.
Popular Problems Associated with File Systems and Mitigations
Documents belonging to FAT32 and NTFS may be encrypted, but flies belonging to the latter may be compressed. Encryption and compression are very useful in Windows. If other users do not use your user name to sign in to the Windows program, they would not be able to access the encrypted and compressed files that were generated with your user name. In other words, after certain files have been encrypted, certain data can only be opened when people use your account to log in to the Windows system. With NTFS and exFAT, FAT32 is more compatible than old file systems and removable storage devices, although its capabilities are limited in single file size and partition size.
HFS Catalog File, which contains all files and folders in a unique data structure, creates performance issues, as the system requires multitasking, because only one program may write to this structure at a time, which means that other programs might be waiting in the queue due to a single program “hogging” the system. The Apple File System does not have checksums for user data. It also does not take advantage of byte-addressed non-volatile random-access memory. APFS driver in High Sierra has been disclosed to include a bug that creates the disk encryption password to be logged in plain text.
Linux initially supported a cumulative file size of 2 GB. It was enough before the multimedia explosion, and as long as no one tried to hack massive Linux databases. More and more critical for server computing, the kernel and the C library has been updated to accommodate file sizes larger than 2 GB while using a new generation of interfaces that applications will use. Nowadays, (almost) all major file systems provide support for LFS, enabling you to perform high-end computing.
References
Apple Inc. (2020). File System Basics. Retrieved 3 May 2020, from https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html
Base, K. (2020). Introduction to file systems. Retrieved 3 May 2020, from https://www.ufsexplorer.com/articles/file-systems-basics.php
Pot, J. (2020). What’s the Difference Between APFS, Mac OS Extended (HFS+), and ExFAT?. Retrieved 3 May 2020, from https://www.howtogeek.com/331042/whats-the-difference-between-apfs-macos-extended-hfs-and-exfat/
Wijayaratne, R., White, R., Marathe, M., Ram, R., & Jassal, A. (2016). U.S. Patent No. 9,483,491. Washington, DC: U.S. Patent and Trademark Office. Retrieved from https://patents.google.com/patent/US9483491B2/en
Lin, X. (2018). Examining the NTFS File System. In Introductory Computer Forensics (pp. 163-197). Springer, Cham. Retrieve from https://link.springer.com/chapter/10.1007/978-3-030-00581-8_7