Just like you have closets in your house to keep things organized, computers have file system which helps it to remember where a specific file or data is stored. All files or data in a computer are stored physically as 0s and 1s in the hard drive. The way they are organized in the hard-drive depends upon the file system. Just as a house may have different types of closets of different sizes and styles to organize your things, there may be different file systems to organize data on a computer.
There are many different types of systems out there, they all have in common is that they divide up your Hard-drive, SSD and Flash Drive into small units that store data and some kind of way to remember it so that it can go and find that data later. There are many file systems such as:
- FAT (File Allocation Table): FAT is a legacy file system which was used by windows-based PCs until Windows XP came out. FAT worked by splitting the disk into clusters or allocation units. There are different FAT file systems such as FAT 12 (12 bit), FAT 16(16 bit), FAT 32(32 bit), and exFAT (64 bit), each cluster has a unique ID number, but this method caused some issue as the hard drive storage increased over time, the clusters caused wastage of storage capacity due to Slack space and it supported smaller partitions.
- FAT32: This file system came after windows 98, it was not much of an improvement as it could not deal with partitions larger than 2 Terabytes (TB). FAT32 supports smaller cluster sizes than FAT, thus providing more efficient space allocation on FAT32 drives. FAT32 is still used in USB Flash Drives and sometimes in Linux and supports a maximum file size of 232 bytes.
- exFAT: There is a new version of FAT called exFAT, which is a 64 bit file system and mainly used in high capacity memory cards. Thus maximum file size can be 264 bytes.
- NTFS (New Technology File System): It is mainly used in Windows operating systems from XP and NT3.1 to the present day, NTFS supports large partition and also supports large individual file size, features to help prevent data loss in the event of a crash, native file compression and native file encryption.
- ext4: Most of the modern Linux based operating systems use ext4 as its default filesystem. It is a developed version of the original filesystem known as ext was developed by Remy Card, and it took over its ancestor known as MINIX file system, ext had a upper hand as it could support 255-character filenames, and after several years of R&D we finally have ext4. ext3 used 32 bit addressing whereas ext4 uses 48 bit addressing, which makes it better in terms of file allocation. ext4 supports a maximum file size of 248 bytes.
- ZFS: It was developed by Sun Microsystems and the Z means zettabyte (1 trillion gigabytes), which is also known as a true next generation filesystem. It is a very scalable system, meaning that it can be used for storing large amounts of data. It supports data compression,data integrity checks, copy-on-write (i.e. new data doesn’t overwrite old data but instead new data is written separately and then only old file name points to new file so that in case of system failure old data is still presereved) block-level cryptographic checksums, automatic corruption repair, RAID support amongst other features.
- BTRFS: BTRFS or B-Tree Filesystem is also a next gen filesystem which supports multiple device management, per block checksums, copy on write, RAID support, online resizing and defragmentation (i.e. device size and storage can be manipulated while device is online or in use) and better snapshot management. Though its development began in 2007, it was declared as stable only in 2013.
For Wikipedia entry on File System, click here.
For more posts on Computer basics, click here.