lack of cooperation is why Linux is not taking over
The biggest reason, other than IP issues, for Linux not to have taken over already, is lack of cooperation by developers. Instead of trying to work with the assemblers of the major distributions on improving their offerings (I know that is hard to do), you go out and make your own. This leaves us with a fractured marketplace that no business owner can trust or deal with, unless they are programmers themselves.