One thing that MS has in favor is that Apple never had to deal with multiple hardware configurations. Having to support every video or network card and having to be backwward compatible doesn't help too much. Of course Linux too has to support the universe of hardware configurations Windows has too, but this is only possible because anyone can compile the drivers to fix them on demand, something only super users are willing to do.