The OP asked about drivers:
As far as I know a driver is a piece of software responsible for controlling some piece of hardware.
This is the set up I envisaged as the motivating background to the question:
- In embedded systems, hardware such as printers are operated from traditional PCs.
- This hardware is physically separate from the PC (they would typically have their own microcontrollers or even CPUs)
- The hardware communicates with the PC over wired or wireless links.
- A piece of software (called a driver) is needed on the PC's side of the communication.
At the time I answered, there was a long answer which currently has 2 upvotes that spoke about layered operating systems and interrupts. That answer didn't address the question of how the drivers, being software that sits on the CPU of the PC, causes things to happen on the other piece of hardware.
I therefore wrote an answer that (in retrospect) pointed out the obvious - it doesn't. It simply communicates with the other device's operating software, which in turn controls its hardware.
My answer currently has 3 downvotes. I'd like to know whether it's because:
- I didn't state my assumption as I did in this meta question;
- it pitched at too high a level (the OP requested this: "at a high level ... how does such a thing work?");
- there were no links to external references (neither does the upvoted answer); or
- the OP's question was downvoted and is now on hold (but then why penalise answers?)
Or is it something else?
I'm looking for some idea of how to improve my answer. If that's not practical to do or if I've totally missed the point, I'm also prepared to delete my answer altogether.