Most of us have fantasies about winning the lottery. But not all of us fantasise about building our very own operating systems with the cash.
Well, it might not be high on the list of Lottery Winner Fantasy lists. It's definitely below buying a sports team or travelling the world. But, 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 (OS). It reflects my inherent geekiness and my frustration with existing OSes.
Dreaming up a fantasy OS 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 OS? 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. 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 OS 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.
Another point is that the goal is to create a desktop OS, not a server platform. In my opinion 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 OS 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 licence 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.
The use of BSD also allows us to market the OS by saying something like: "It's based on BSD, a little like Mac OS X." Anybody with half a brain would see through this, but technical users aren't the target market. Techies already have a first-rate open source OS. It's called Linux.