It all boils down to the software abstraction of the hardware, be it linux or windows driver stacks the hardware remains the same, only the implementation of the software interface" driver"(which controls the hardware) is different between various OS's.
In order to better understand those topics read following books and manuals :Linux device drivers,Prism programmer's manual,Intel Nic 8255x programmer manual.


