Building upon this system of sectors and blocks, the rest of the filesystem is also implemented as a collection of abstract layers.
For example, user applications such as text editors make up the highest layer. At this level a developer can easily and abstractly request to write to a file. However, this simple task becomes more intricate as it bubbles down to the lowest device layer. At this level the on-board computers of the storage device need to activate certain motors with a precise amount of force to alter the magnetic state of a sector of the drive.
The entirety of the most common layers are:
Application Programs - The day to day programs that are run by the user, like web browsers and text editors.
Logical File System - The system that manages the file control blocks containing the metadata of files such as file permissions, owners, sizes, and access times. Simplifies the access to files for applications regardless of how the underlying filesystem or hardware organizes them.
File-Organization Module - The component responsible for organizing the software blocks of the filesystem. Simplifies hardware differences between storage devices for the logical file system.
Basic File System - Communication layer between software block layout and hardware sector layout. Schedules IO requests and manages resource blocks for file-organization module.
IO Control - The low-level software drivers that can communicate with the storage device’s controller. Understands how to manipulate the physical device to read and write data.
Devices - The mechanisms of the physical storage devices. For example, the motors and controls that do the physical act of storing data within the medium, be it changing the magnetic state of spinning disks or altering the placement of electrons in flash storage.
The image on the right shows the hierarchy of the many layers of the filesystem. The top are the most user-facing applications, while the bottom are the hardware devices.