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?