File system
File system is the most visible aspect of a general-purpose operating system. It provides the mechanism for on-line storage of and access to both data and programs of the
operating system and all the users of the computer system. There are two parts of file system, the collection of files and the directory structure. A file system stores and
organizes data and can be thought of as a type of index for all the data contained in a storage device. These devices can include hard drives, optical drives and flash drives.
Virtual file system
The Virtual File System (VFS) is the software layer in the kernel that provides the file system interface to userspace programs. It also provides an abstraction within the
kernel which allows different file system implementations to coexist. VFS system calls open, stat, read, write, chmod and so on are called from a process context.
GNU Compiler Collection
GNU Compiler Collection (GCC) is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain and the
standard compiler for most projects related to GNU and Linux, including the Linux kernel. The Free Software Foundation distributes GCC under the GNU General Public License. GCC
has played an important role in the growth of free software, as both a tool and an example.
Mounting file system
To access the files on a file system, we need to mount the file system. Mounting a file system attaches that file system to a directory (mount point) and makes it available to
the system. The root file system is always mounted. Any other file system can be connected or disconnected from the root file system. When we mount a file system, any files or
directories in the underlying mount point directory are unavailable as long as the file system is mounted. These files are not permanently affected by the mounting process, and
they become available again when the file system is unmounted. Mount directories are usually empty, because we do not want to obscure existing files.
Disk Partitioning
Disk partitioning or disk slicing is the creation of one or more regions on secondary storage, so that each region can be managed separately. These regions are called
partitions. It is typically the first step of preparing a newly installed disk, before any file system is created. The disk stores the information about the partitions’
locations and sizes in an area known as the partition table that the operating system reads before any other part of the disk. Each partition then appears to the operating
system as a distinct disk that uses part of the actual disk.
Virtual File Systems
Virtual File Systems, VFS, provide a common interface to multiple different filesystem types. In addition,
it provides for a unique identifier ( vnode ) for files across the entire space, including across all filesystems of different types.