Common filesystem interface
Presence of diverse filesystems and storage partitions results in each filesystem maintaining its tree of files and data structures that are distinct from others. Upon mount, each filesystem will require to manage its in-memory file trees in isolation from others, resulting in an inconsistent view of the file tree for system users and applications. This complicates kernel support for various file operations such as open, read, write, copy, and move. As a solution, the Linux kernel (like many other Unix systems) engages an abstraction layer called virtual file system (VFS) that hides all filesystem implementations with a common interface.
The VFS layer builds a common file tree called rootfs, under which all filesystems can enumerate their directories and files. This enables all filesystem-specific subtrees with distinct on-disk representations to be unified and presented as a single filesystem. System users and applications have a consistent, homogeneous view of...