I am trying to understand how Device Drivers work, based on what I know so far,  a Device Driver is simply a middle-man between the Operating System and the Device. I have created the following diagram to show my understanding of Device Drivers:Also, an Application cannot interact directly with a Device Driver, only the Operating System can do that (so for example, if an Application wants to print something, it tells the Operating System, and the Operating system tells the Device Driver).Is my understanding correct? And is the concept of Device Drivers the same on Windows and macOS as it is on Linux?
Trying to understand how Device Drivers work
linux;linux kernel;drivers