Say we have the following image (which is about Linux):

enter image description here

Can we call the file systems boxes that are shown in the image (ext2, msdos, and minix) "file systems drivers", for example can we say that the ext2 box is an "ext2 driver"?

The reason I am asking this question is because the ext2 "driver" is not itself accessing the disk when writing or reading files, but rather it is accessing a "real" device driver and telling the device driver to access the disk, so I am wondering if we can use the term "driver" for a software layer that doesn't access a physical device?

Now in this case the ext2 "driver" is accessing the disk indirectly through the underlying device driver, but this could not necessarily be the case, I am asking also about software layers that don't access any devices (whether directly or indirectly), but which behave in a way similar to how device drivers behave (which is to receive data from some source (for example: an application) and pass the data to another software layer, and receive data back from a software layer and pass the data back to the application).

  • 3
    What do you mean by "can we call it a driver"? You can call it anything you want, there is no law against you calling it a driver. Mar 8, 2019 at 1:06
  • There's nothing wrong with calling these device drivers. Windows does this, they have device drivers at various "elevations". The higher level drivers just call other drivers, but they are still drivers: they are loaded and handled by the OS as drivers.
    – Erik Eidt
    Mar 8, 2019 at 1:07
  • You might get additional insight if you post on English StackExchange Mar 8, 2019 at 1:31

1 Answer 1



A driver is basically a system/kernel level piece of software responsible for abstracting away hardware, regardless of where in the pile of abstraction layers it is.

Many drivers don't actually "touch" the hardware. I've written drivers for USB devices, but even there my software talks to the USB subsystem instead of directly flipping voltages on the USB lines.

  • Also, the code for /dev/null, /dev/random etc is generally regarded as driver code, despite the being no hardware there at all. Drivers can be abstractions over virtual hardware too.
    – David Arno
    Mar 8, 2019 at 11:15

Not the answer you're looking for? Browse other questions tagged or ask your own question.