Re: linux vs windows
Linux driver programming is not really much easier than the windows counterpart. As long as you understand the "protection mechanism" (I mean how protected mode is being implemented in the operating system) in both of the operating system, it shouldn't be too hard to code a device driver. I've done some simple driver development for both of this OS in x86 architecture and both seems to be not too different.
Apart from being acquainted with the protected mode implementation, you also have to learn about the data structure that the OS "exports" to device driver developer. Particularly the function-pointers that you must initialize to gain access to something that you need in the kernel.