Just like how you might use a bookshelf at home or closet space at your home so does a computer use a similar method to store everything within it. Enter Computer File Systems. The defacto storage system for computers.
It would be rather embarrassing if computers kept were not able to find whatever you put in them. So these file systems are necessary for the computer to organize and store information in the form of files for easy retrieval and addition and management.
Why the Presence of Different Types of Computer File Systems?
First off whatever the type of file system, it’s safe to say they all basically do the same thing. This is, they divide your various storage drives into small bite-sized units called clusters. Collections of clusters are then organized into volumes for easier management and retrieval. This is possible by indexing these clusters. To get into a little bit of detail on how this works we would have to look at the different file systems.
Here we will deal only with the common file systems. For those we do not mention, just keep in mind that they all have the same basic concepts but subtle differences. Let’s get started and take a look at some of the common Computer File Systems as follows:
File Allocation Table (FAT)
This is one of the older file systems for personal computers that was developed back in 1977 for use on floppy disks. It was designed to be simple and robust and ideal for lightweight implementations. This legacy system was common in the days of DOS and through the Windows Operating System up to Windows XP.
FAT is still supported today for its simplicity. It is commonly found on media like USB sticks, Flash memory and other portable and mobile devices. Its file allocation is based on a Linked List data structure.
The original FAT uses 8-bit allocation tables. Fat has variants named FAT12, FAT16 and FAT32 with the latter having 32bit allocation tables.
The 8bit FAT has a limit of 9 character file names of 6 characters and 3 character extensions. It does not support sub-directories. On the other hand, 32bit FAT or FAT32 developed by Microsoft for Windows 95 supports up to 16 TB volumes with a max 256 GB file size.
FAT32 has a 255 character filename limit when using Long File Name (LFN) configuration. It can also support a maximum depth of 60 sub-directory levels. None of the variants of FAT file system supports encryption.
New Technology File System (NTFS)
Using certain technological tricks to make space usage more efficient and stable than FAT resulting better real-world disk capacity usage. This increases the number of partitions supported and the increased size in disk file sizes. It also supports native file compression and encryption. Developed by Microsoft as the default Windows file system, NTFS supports resizing of partitions, transactions, disk quotas, and sparse files.
The NTFS maximum file size is 256 TB with a maximum number of files being 4.2 GB. The maximum file name length is 255 characters. File allocation is implemented as a Bitmap. Directory contents are stored in a B+ tree structure.
Extended File Allocation Table (exFAT)
Like a cross between NTFS and FAT, Microsoft developed exFAT in 2006 to support Windows Embedded CE 6.0. It is also ideal high capacity devices and embedded systems where the viability of NTFS would not be ideal because of the overhead.
exFAT stores files in Bitmap and Linked List structures. It has a maximum number of files capped at 2.7 billion. It has a maximum file size of 128 Pebibytes.
Fourth Extended Filesystem (etx4)
It was developed as the successor to ext3 and prior ext file systems in 2008. Like NTFS, ext is a journaling file system for Linux based operating systems.
Files allocation uses Bitmap structures while Directory contents are stored as Linked List and hashed B-tree structures. The maximum volume size is 16 Tebibytes as is the same for the max file size. This computer file system supports 32,000 sub-directories.
The max number of files is capped at 4.2 billion with max file names of 255 characters. ext4 carries most of the features of NTFS and is backward compatible up to ext2. As for permission, it uses the old POSIX file permissions system.
B-tree file system (Btrfs)
The Btrfs file system is billed to be a possible successor to ext4 on Linux operating systems. The primary developers are Facebook, Fujitsu, Fusion-IO, Intel, Linux Foundation, Netgear, Oracle Corporation, Red Hat, STRATO AG, and SUSE.
The stable release was introduced in 2014. Btrfs is intended to sort out the lack of pooling, snapshots, checksums, and integral multi-device spanning in Linux file systems. It is based on the copy-on-write principle.
The directory structure uses a B-tree while file allocation uses extends. It has similar max limits to ext4.