The existing, working, reliable system is huge and unwieldy. I have a new idea, lets scrap all that obsolete old stuff and create a simpler smaller more modern implementation. Well, turns out replicating and embedding the rest of the world is really hard work, and the result is huge and unwieldy and usually less reliable and comprehensible because its newer. Recursively repeat until stack space exhausted or resource limitations make it too slow to ship...
Note this applies both to the tech side of putting an OS inside your OS, and also to the business side of product tying more and more products until everything imaginable is tied in, at which point the only hope for forward progress is reimplementing everything inside a component of it, of course.
http://en.wikipedia.org/wiki/Inner-platform_effect
Its an endless, fairly pointless, cycle.
The existing, working, reliable system is huge and unwieldy. I have a new idea, lets scrap all that obsolete old stuff and create a simpler smaller more modern implementation. Well, turns out replicating and embedding the rest of the world is really hard work, and the result is huge and unwieldy and usually less reliable and comprehensible because its newer. Recursively repeat until stack space exhausted or resource limitations make it too slow to ship...
Note this applies both to the tech side of putting an OS inside your OS, and also to the business side of product tying more and more products until everything imaginable is tied in, at which point the only hope for forward progress is reimplementing everything inside a component of it, of course.