Most of us have fantasies about winning the lottery. It's part of being human.
Along with buying property, fast cars, and a life-sized Kylie Minogue fembot (including optional hot pants accessory), my fantasy would be to create the perfect operating system. This is perhaps not high on the list of Lottery-Winner-Fantasy lists. It's definitely below buying a sports team or travelling the world. But it reflects my inherent geekiness and also my frustration with existing operating system efforts.
Dreaming up a fantasy operating system is a fun exercise, and I invite you to have a go. Post your own imaginings in the comments below.
So how would I go about creating my operating system? Before we start, let's define the boundaries of this fantasy.
The lottery win we're talking about is one of those stupidly big ones--so big that you could buy a small South American country, and have enough loose change left for a small Midwest town. In other words, money isn't an issue in my fantasy scenario, and the creation of the new OS is entirely philanthropic--there is no intention to make money from it. I intend to make my new operating system as open-source as possible, and it will be given away for the good of humanity. Iâ€™m terribly generous, arenâ€™t I?
In the spirit of open source, I wouldn't start from scratch with my new OS, but would take the best bits from existing open source projects, although I would put into place a few new projects.
Notably, the goal is to create a desktop operating system, and not a server platform. IMHO the server market is already perfected.
Let's start at the heart of the operating system: the kernel. Perhaps surprisingly, I wouldn't use Linux, despite the fact that I think it's clearly the best choice. It certainly has the best hardware support, and the most rapid development cycle. But the Linux kernel has an image problem. The reality is that, outside of the community, a lot of people in the real world are scared of Linux. I might even say it has a stigma. If I announced my new operating system by saying, "It's based on Linux," I suspect I'd drive a significant number of ordinary people away.
Instead, I'd use FreeBSD as the base of the OS, just like the interesting DesktopBSD project (yes, I'd adopt a BSD-like license too). I'd also look into OpenSolaris, which finds a home in the equally interesting Nexenta project.
Additionally, I'd hire developers to create a binary driver interface, to encourage the easy creation of hardware driver modules. Yes, it's a hackish solution to the problem, and would perhaps create more problems than it solves. But it would also make the user's life a lot easier. Unlike many open source projects, my new operating system would be user- rather than developer-orientated.