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.
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 operating system. It's called Linux.
There are no great surprises when it comes to the desktop. I would make use of the Gnome project, which I believe to be one of the best and simplest open source desktop interfaces. However, I would sponsor the creation or adaptation of a toolbar-based program launcher/dock. This is the fashion right now, of course; the next version of Windows will have such an interface, and OS X has had its Dock for years. The toolbar will be used to launch programs, and also minimize programs. Pretty simple, really, although I'd want my effort to be ultra-intuitive and easy to use.
In terms of supplied software, we are again looking at a Linux-like collection--Firefox (or maybe Google Chrome, although I'm unsure if it is being ported to BSD, or even if its feasible). I'm not 100% sure I'd include OpenOffice.org, but would investigate tying into an online office suite via something like Prism and Google Gears. However, I'd want both beefed up with encryption, to guarantee complete data privacy. I may sponsor a browser plugin that encrypts/decrypts on the fly, so that any data stored online is secure. For what it's worth, it seems to me that this is the only way that online applications can progress.
Perhaps the most surprising aspect of my new OS would be the inclusion of Wine, along with a backroom project consisting of developers who create scripts and tweak the code so that the new OS runs the majority of popular Windows software and games. This is not entirely unlike Codeweavers, in fact, the commercial offshoot of Wine.
The compatibility scripts and tweaks would be part of the updates downloaded to each computer on a regular basis. (Needless to say, support would be as free of charge as the software itself.)
The goal wouldn't be 100% Windows compatibility, because that's just too high a bar, and would set us up for a fall. The goal would be to support the most popular applications and games. By publishing honest lists of what does and doesn't work, as with the hardware lists, we could earn the respect of the user base, and not make promises that we couldn't keep. Of course, I envision a community arising around the OS, who could also contribute to this effort.
In terms of program compatibility, the goal would be to offer a halfway house between commercial operating systems like Windows, and open source operating systems like Linux. I think this would pay off, because in my experience people are intrigued by the open source approach, and receptive to its concepts, but simply scared off by Linux.
We'd also have software repositories packed full of precompiled open source software, of course, just like any decent Linux project worth its salt. The best of open source would be available.
A major goal of the OS project would be for it to run quickly, even on modest hardware. I would set an arbitrary ceiling on the hardware we expect the user to have (probably something like 1GB of RAM and at least a 1.5GHz CPU).
Optimization and efficiency is something of a fashion right now, and both Windows 7 and Mac OS X 10.6 are promising substantial performance improvements.
There would be no need for an hour glass or spinning pinwheel in my OS, because the user would never have to wait for anything. (The hourglass icon was originally an apology for poor hardware performance back in the old days; that we're still seeing it in a world of 2GB of RAM and dual-core processors indicates that something has gone very wrong with operating system development.)
The new OS would target the emerging netbook market too, and the goal would be to create a operating system geared towards portable computers. You might not have realized but the traditional desktop computer is dying. The only people using desktop computers nowadays are gamers and office workers. Nearly everybody uses a laptop nowadays, even if it never actually leaves their house, or even shifts from their desk.
An important point about the new operating system would be its philosophy. The goal would not be to create the best operating system in the world. It would not be to create the most advanced operating system, or the most innovative, or the most technically accomplished. The goal would be to create an intuitive and "good enough" operating system that most people can use without training, or wincing when something doesn't work as they anticipate. The goal would be to ensure the features people expect are present, and that they're at their fingertips.
As exciting as new operating system features are, they just aren't needed or desired by most people. With Windows XP, and Mac OS X 10.4, and recent versions of Ubuntu (I'd cite 8.04 as an example), we have reached a pinnacle of operating system development. Things have got as good as they can get. Any new features from now on will just get in the way.
Of course, all of this is only a thought experiment. If I did win the lottery (and I don't actually play, so that's even more unlikely than usual), I wouldn't be so foolish as to create a new OS.
For starters, I'd probably be sued into oblivion by Apple and Microsoft. Desktop operating systems in particular appear to be a minefield of software patents (although I wonder if I could get around this by basing development here in Europe, where I live, and where software patents simply don't exist).
However, the biggest issue is that operating systems simply don't matter any longer. They're very much a 90s thing. The 90s were about exploring Alice’s living room. The noughties are about what happens when we step through the looking glass.
What matters now is online, and what you can do therein. If I had any sense, I'd invest my millions in creating online applications, and trying to bring open source and open standards to that particular world--a world that appears, right now, to be almost exclusively proprietary.
Keir Thomas is the award-winning author of several books on Ubuntu, including Ubuntu Pocket Guide and Reference.