The OS wars in the mobile space appear to be over and there are two left standing, the iPhone and Android, a Linux distro.
Why is that? Both were very late to the party. Neither came from players experienced in mobile phones. There were many Linux-based phone designs before the Android showed up.
Size Matters -- This is always true in a mature market. Once sales leap to the tens or hundreds of millions, it's much harder to overtake a leader grown fat on the market. You either have something really different, do a cheap copy, or you put out the big bucks.
Monopolies are stupid -- So are the people who get fat doing business with them. Cellular carriers are government-approved licenses to print money, and always have been. The companies they choose to let supply them become just as fat and stupid on that business as they are.
Altruism -- Giving away control to the stupid manufacturers and carriers was essential to Android's success. Without that control the fools wouldn't commit. And without Apple taking in money like Kevin James eating at an AYCE Braves' game they still would not have moved.
Good Enough -- Very early-on Android delivered a design that was directly competitive with the iPhone, something that could be turned into a device that looked, felt, and even worked like the iPhone, right down to its "apps" metaphor.
Not Invented Here -- Devotion to an early idea, especially one that worked, creates inertia and can make it impossible for even the largest company to make progress in other markets.
Groups like LiMo, and Symbian, OpenMoko, Microsoft and even Palm's WebOS all made one or more of these mistakes. Some were too small, others too greedy. Apple had the size to blow by them, and Google had the wisdom to follow in the correct way.