Virtual File System in OS

Virtual File System in OS

VIRTUAL FILE SYSTEM:

Virtual-file-system

A virtual file system (VPS) or virtual system switch is an abstraction layer on top of a more concrete file system of computer technology to handle every system clearly also in a kernel operating system. The purpose of a VPS is to allow client applications in a files management system to access different types of concrete file systems uniformly.

 for example:

 A VPS can be used to access local and network storage devices that are CD-ROM, Disk Drive, etc transparently without the client application noticing the difference.
The Linux kernel of the operating system implements the concept of Virtual System (VPS, originally virtual Filesystem Switch) so that it is possible to separate actual ''low-level'' file system code from the rest of the kernel operating system in the computer management system. The operating system kernel file system (VFS) is an interesting aspect of the Linux kernel because it provides a common interface abstraction for the systems enhancement. 
At the top of the VFC is a common API abstraction of functions such as open, close, read, and write. At the bottom of the VFC are the file system abstractions that define how the upper-layer functions are implemented. These are plug-ins for the given file system in the operating system or computer network system. Below the computer management file system layer is the buffer cache, which provides a common set of functions to the file system layer in the computer (independent of any particular file system). This caching layer optimizes access to the physical devices by keeping any type of data around for a short time period. Below the buffer cache of the computer system are the device drivers, which implement the interface for the particular physical device in a system.

Explanation:

There are no drive letters in Linux to create one unified File System for us, which makes all the files on all devices appear to exist on one global device. In Linux, there is one root directory, and every file we have access to is located under it somewhere. Furthermore, the Linux root directory does not have to be on any particular device driver to manage any type of data. It might not be on our first hard device. It might not even be on our computer. Linux can use a network shared resources as its root directory.

Modules of Virtual file system:

The Virtual file system is composed of the following modules:
  • There is one device driver module for each supported hardware controller in a system. Since there are a large number of incompatible hardware devices in the computer systems, there are a large number of device drivers of the computer systems. The most common extension of a Linux system is the addition of a new device driver in a file system.
  • The device Independent Interface module provides a consistent view of all devices in a computer.
  • There is one logical file management system module for each supported file system.
  • The system-independent interface presents a hardware of system network and logical-file-system independent view of the hardware resources in a system. This module presents all resources using either a block-oriented or a chracter-oriented file interface.

Data Representation:

All files are represented using inodes. Each i-node structure contains location information of any type for specifying where on the physical device the file blocks are. Besides, the i-node stores pointers to routines in the logical file system module and device driver that will perform the required read and write operations. By storing any function pointers in this fashion, logical file systems of computer and device drivers can register themselves with the kernel operating system without having the kernel depend on any specific module. It is independent...

Data Flow, Control Flow, and Dependencies:

One specific device is a RAMDISK: this device allocates an area of main memory and treats it as a persistent-storage device. This device driver uses the memory manager to accomplish its tasks in system management, and thus there is a dependency, control flow, and data flow between the file system device drivers and the memory manager.
One of the specific logical file systems that are supported is the network file system (as a client only). This file system accesses files on another machine to show some result as if they were part of the local machine in a system. To accomplish this, one of the logical file system modules uses the network subsystem to complete its tasks and show an advanced result. This introduces a dependency, control flow, and data flow between the two subsystems of the file system. 
The memory manager uses the virtual file system to accomplish memory swapping and memory-mapped I/O in a network computer system. Also, the virtual file system uses the process scheduler to disable processes while waiting for computer hardware requests to complete, and resume them once the requests have been completed in memory. Unlike the previous subsystems, there is no mechanism for users to register for implicit invocation, so there is no control flow in the virtual file system towards user processes ( resuming processes is not considered control flow).

NETWORK INTERFACE:

The network subsystem allows Linux systems to connect to other systems over a network of any type for an advanced result. Several possible hardware devices are supported, and several network protocols can be used. The network subsystem abstracts both of these implementation details so that user processes and another kernel subsystem can access the network without necessarily knowing what physical devices or protocols are being used.

A module of Network Interface:

The network interface is composed of the following modules:
  • Network device drivers communicate with the hardware devices. There is one device driver module for each possible computer network hardware device.
  • The device independence interface module provides a consistent view of all of the hardware devices so that higher levels in the subsystem do not need specific knowledge of the computer network hardware in use.
  • The network protocol modules are responsible for each of the possible network transport protocols.
  • The protocol-independent interface module provides an interface that is independent of computer network hardware devices and network protocol. This is the interface module that is used by another kernel subsystem to access the network without having a dependency on particular protocols or hardware.
  • The system calls interface module restricts the exported routines that the user processes can access.

Data Representation:

Each network object is represented as a socket. Sockets are associated with processes in the same way that inodes are associated: socket can be share amongst processes by having both of the task data structures pointing to the same socket data structure.


Comments

Popular posts from this blog

Modern scenario of information technology:

Deadlock Questions and Answers pdf

What is the bus interconnection?