In my opinion, the key is that Linux is libre software.
Windows has to deal with lots of old drivers and userland software that are arcane binary blobs. In the Linux world, most software running on it is libre and the community can evolve it to work with newer systems. This is specially true for drivers, since most drivers are GPL and kept in the kernel source tree. This promotes a healthier relationship between the companies and individuals involved where, through shared ownership, everybody is on the same boat.