[Main menu]

How It Works

The Storage IO Subsystem


Overview

The storage subsystem is devided into layers. Each layer eliminates an obstruction to the Virtual File System (VFS). At viewpoint of any other parts of the system (both applications and subsystems) the VFS is always the same, although information loaded or saved physically can end up on a floppy, IDE drive, ATAPI drive, network connected drive, RAM drive and etc. From the top and down the storage subsystem works like this:

Bottom-to-Top

Hardware Abstraction Layer

Drivers in this layer are designed to eliminate hardware differences. Each driver registers the drive(s) it find during (re)initialization. So upwards there is a list of drives available and each drive provides a linear address space of sectors, addressable using LBA numbers. Downwards the driver can be directly connected to the hardware or it may use calls to another hardware driver.

Disk Abstraction Layer

Drivers in this layer provide a list of logical volumes to the above layers, each volume having a linear address space of sectors. The drivers create the volume list by searching for compatible disk formats. The Omega Disk Driver take thoose drives which a formatted with the Omega Disk Format, identifies the partitions available on each disk and list each as volume. The same thing does the Standard Disk Driver.

File System Abstraction Layer

When drivers in this layer are (re)initialized they search the available volumes for file system which they are compatible with. Any volumes which it understands are registered as a SupportedVolume.

Virtual File System

The Virtual File System (VFS) can then mount the supported volume(s) in the VFS tree. It is not a demand that the mount point should be an already existing directory.


Top-to-Bottom

Virtual File System

The Virtual File System (VFS) provide basic functions for handling files and directories. Volumes are mounted at specific 'mount points' in the VFS tree. Pathnames are against the available mount points. If no success the file isn't available. When success the VFS layer cuts the mount point part of the pathname and send it down to the File System Abstraction Driver of the appropriate supported volume.

File System Abstraction Layer

Pathnames are parsed through and the appropriate file located. The LBA number of the first sector (relative to volume start) is calculated. The LBA number and volume number are passed along in a function call to the DAL layer.

Disk Abstraction Layer

The DAL layer look-up volumes start position on the drive and its drive number. The relative LBA number is converted into to an absolute LBA number for the location. This absolute LBA number and the drive number are passed along in a function call to the HAL layer.

Hardware Abstraction Layer

The HAL layer makes a function call to the right device driver which then does what it has to do to perform the operation. On some drives which uses the CHSaddress mode, the LBA number is converted to a CHS address before use.


Virtual File System