File System Architecture



The Linux file system is architected to be very flexible and to provide a foundation to support many types of file systems, such as EXT2/3/4, VFAT, NTFS, HPFS, Reiser and many more. In fact, the Linux file system architecture currently supports 98 different file system types.
The Linux Filesystem Architecture.

The Linux Filesystem Architecture.

Does the use of the term “file system,” or “filesystem” seem redundant and and confusing? Well it is and that is due to the fact that “file system” is a term that may refer to several aspects of the thing that is a file system. Refer to Filesystems for more information.


Although complex in implementation, the architecture of the Linux filesystem provides a simple means for the kernel, which manages all access to files, to utilize any type of file system supported by Linux. The kernel can utilize a single set of file related function calls to access any file system. The Virtual File System provides an interface between the kernel and the various file system drivers provided with Linux. Each driver manages the interaction with the hardware and the file system recorded on that hardware. The Virtual file system is aware of which type of file system is in use on a particular physical device and uses the correct driver for communication to the device.

So in this way application and system programmers do not have to know or be concerned about the type of file system in use on the hard drive, USB drive or any other type of physical device. The only information needed by the programmers are relatively simple commands such as open, close, read and write.