What are the basics what a programmer should know for writing drivers?
This is not some OS specific, but in general what are things we should know?
I am have just started with hardware learning and stuff and I am not sure which OS I Should start with, So I am willing to learn about the common thing in all OS.