We do not need to write many of the parts of the operating systems. We just need a system good enough to emulate the api's of other operating systems like windows and linux. i.e. win api and posix. Even have dosbox to run dos apps. kolibri uses dosbox to run dos apps. freebsd emulates the posix api's to run linux apps. So you just need a base system to map the api's.
That doesn't work. Ever. The problem is that by the time that an API is 25+ years old there is so much duplication and so many "edge cases" and not-quite-understood undocumented interactions that producing a complete implementation results in an unending stream of support tickets as things that must run are found to not run. Believe me: I'd /love/ it if it were possible to clean things up, but we're too far down a hole of our own digging for that to ever happen.
I could usefully interpose a Vernor Vinge quote here about a timekeeping system in the distant future which, ultimately, appeared to be based on when Man first set foot on his planet's moon. But when one dug just a bit further one found a discrepancy ("roughy 13 megaseconds"), because in actual fact it was based on UNIX's zero-second epoch.
The /only/ way to fix this is to start off with a cleaned-up net interface layer which throws out much of the cruft and designs in security and authentication: ignore the screams of the activists who argue that they will be held responsible for promoting sedition. On top of that put cleaned-up transport layers equivalent to TCP, UDP and SCTP.
Then design a cleaned-up browser, with well-defined client facilities which eliminate the reliance on Javascript. Focus on the fact that banking, commerce and education are important, not advertising, music and porn.
Then design an OS kernel, properly implementing process migration etc. (i.e. instead of just hiding everything behind a hypervisor, which has implications on network endpoint description). Then salvage as many Linux and Windows device drivers as possible.
I've been in this game a long time, and turned my hand to a fair number of things: perhaps not in as much depth as some around here, but with fair OS, compiler etc. coverage. The above might possibly work, but realistically it would take a global apocalypse to make it happen (which would probably destroy the infrastructure which would make it achievable).
MarkMLl