News & Views

It's time for a 21st century OS!

Thursday, July 16, 2009

I was reading one of the many arguments between Windows, OS X, and Linux fans online the other day and came to the realization that all of the current crop of desktop operating systems basically suck in one way or another. None of them are truly secure. None of them have file systems which are bullet proof. None of them can recover gracefully from power loss, hard drive failure, or other modern calamities. All of them suffer from hardware compatibility issues. None of them support multiple processor cores or even multiple threads of execution in any really meaningful way. They are all based on ideas, technologies, and even code bases that are literally decades old now.

Sure, most modern desktop operating systems have been updated regularly. Most have been patched up to support modern hardware as it appears. Most allow drivers to be created which give new hardware access to the system. Most have added on support for modern communication protocols and modern storage systems. But all of the current operating systems have had to add this functionality by tacking new code onto old sub-systems in ever more creative ways.

Perhaps it's time to cut our software links to the 70's and 80's and truly start over. Maybe it's time for a clean slate approach to a modern operating system. In a nutshell, we're still using 20th century desktop operating systems and it's time for a drastic change. Somebody needs to develop a completely new desktop operating system to take us well into the 21st century. It's time for a 21st century OS.

How would one start this process? What should it include?

I say, start with a clean slate. Cast a tiny kernel in stone. Make it read-only to everything. Hell, go one step further and put it in a quick-boot ROM. Boot speeds should never exceed 15 seconds. It's ridiculous to have 8 core processors running at 3+ GHz in modern computers and yet they take 2 full minutes to start up.

Next, virtualize and sandbox every non-kernel process in the entire system. Don't let ANYTHING at any level make changes to the core operating system. Ever. Also, don't let any process change the code or data of any other process. Both should just plain be forbidden and prevented. It should be impossible for little Bobby to do something to the computer that would require reinstalling or reconfiguring anything.

Weave in a secured version of a self-healing file system like ZFS from Sun. Build-in IPv6 with DES-level security from the ground up. Make file, hardware, system, and communications security a required part of the operating system rather than an optional add on. The only way somebody should be able to gain access to the computer is by having the security key in advance. In fact, maybe it's time to put our security keys into hardware, just like our house keys or car keys. Having your key should grant you secured access to your own system whether you are sitting in front of it or sitting at a public computer on the other side of the world.

Next, define a few very strict hardware device protocols, build in support for those few, and frankly don't allow any hardware which does not conform to the specification fully. The era of adding registry keys, installing drivers, and trying to get your devices to work is OVER. Develop one way to talk to devices and if a device doesn't follow the rules, just don't support it period. No drivers. No hacks. No way.

Make the OS both massively parallel and multi-threaded. Create tools which embrace and incorporate both ideas so our future generation 10,000 core CPUs just work from the start. Treat both, GPUs and CPUs as computing resources with a generic way of describing their capabilities to the operating system so that it can route tasks to whatever processor is available which can do the work. The kernel should simply use processors as processors. If you add another one, it should just use it.

Make the OS lean and fast. Make it boot in under 10 seconds, 15 maximum. Give the OS a hardware accelerated GUI and hardware accelerated media capabilities from the start. All media encoding and decoding should be open source and specified in hardware. Keep the GUI SIMPLE and intuitive. It shouldn't require tweaking to make things work. There should be no command line. There shouldn't NEED to be.

Make the OS dirt cheap or free by selling vendors a secure key, development kit, or license for developing compatible hardware. Maybe charge for software development kits. Either way, it needs to be free to end users and perhaps even free to computer makers for it to get adopted or offered as an option as quickly as possible. To ensure that the OS can be given away for free, avoid licensing old crap from the current crop of patent trolls who now sell 20th century OSes. There are great alternatives for everything, even media formats, from open, license-free sources.

Basically, write us a brand-new 21st century OS so we can all stop using the wide variety of crappy, antique, hacked-together, 20th century OSes we are currently stuck with. There really isn't a great OS to be found right now. They all have security issues. They all have hardware problems. They all have kernel panics, system crashes, malware, viruses, and more. A lot of people like me are ready for something totally different and brand new. It's time for a change.

Maybe there needs to be a 21sth Century OS X-Prize! Offer a million dollars to the first person, university, or company to develop an OS and C/C++ compiler which meets all the criteria I listed above. We badly need to find the Linus Torvalds, Bill Gates, Steve Jobs, and Steve Wozniak of THIS generation. We're in a new century. We need the OS of the future and we need it now.

Labels: , , , , , , , , , ,

Linux = Ubuntu?: Just let them think it's true.

Wednesday, June 4, 2008

I recently read an article by Adrian Kingsley-Hughes about Ubuntu application replacements for folks thinking about making the switch from Windows. The title of the article unfortunately used the word "Linux" although the article was specifically about Ubuntu. Of course, this immediately got Linux users upset. In fact, a large number of the article comments centered around why Linux does not equal Ubuntu and why dozens of other distributions are better.

Being somewhat OS-agnostic myself (I dual boot Vista and Ubuntu, but I really like OSX), I see both sides of the "Linux doesn't equal Ubuntu" argument. I don't, however, understand the zealotry and jealousy demonstrated by the Linux users who don't use Ubuntu. True, Ubuntu gets all the press, but that's largely because they have focused a lot of effort on simplifying and smoothing out the entire end user experience for folks considering a move from another OS. Plus, when all is said and done, it is still Linux. In the words of Rodney King, "Why can't we all just get along?"

The truth is, for the majority of people Linux does equal Ubuntu. It is fairly safe to say that Ubuntu is the most heavily-publicized version of Linux in history. Ubuntu is the "media darling" of the Linux world. More non-Linux users know about Ubuntu than any other Linux distribution. They only know about Linux because they know about Ubuntu. In their minds, Linux and Ubuntu are interchangeable terms.

In my opinion, we should just let them think Linux equals Ubuntu. Perhaps we should even encourage it. Before I get any angry comments laced with zealotry, let me explain why I say that.

The masses want simplicity. Distributions add a level of complexity they don't like. The masses don't want to keep track of 100 different distributions to figure out whether a specific program runs on a specific distribution (or specific window manager). Even now, average users don't say, "I use Windows Vista SP1" or "Windows XP SP3." They say, "I use Windows." They want that same level of simplicity when referring to any OS they consider as a replacement for Windows.

To oversimplify, think about it this way. People say they are "Xeroxing" something even when they use other brands of copiers. "Xerox" has become a generic term for photocopying and everyone understands that it doesn't necessarily mean they are using a Xerox copier. When they go to buy accessories for the copier, the salesman may be able to extract more specific details about which brand, but the users really don't care if it is Sharp, Xerox, or Canon. They just call it the "Xerox machine."

Similarly, if the general public uses "Linux" as a generic term when they mean "Ubuntu," we should all just agree to let them do it, because it will benefit us in the long run for one major reason. If we can get lots more folks using Ubuntu, our future chances of getting Linux drivers included in the box with any new hardware purchase will increase dramatically. Getting better drivers quicker is a benefit to all distributions of Linux.

On the other hand, if you push all of those masses away from Linux, the new hardware driver problem will continue forever. If we don't create a much larger installed user base, manufacturers will always develop hardware drivers for Linux as an afterthought (if they develop them at all). I don't think any Linux user wants that to happen, no matter what distribution they prefer.

Let's be honest here. The way the Linux community is currently divided, a seemingly simple statement like "I know a great Linux application" incites a lecture about stating which precise distribution you mean. That lecture is usually followed with a dozen different people arguing about why your distribution isn't as good as the one they use. Another dozen start arguing about why one windowing system is better than another. Eventually no relevant information is being shared at all. It becomes nothing but opinion warfare.

Passionate division like that drives many potential users away. They have too much confrontation in their lives already to use an OS that provokes confrontation from others using a different flavor of the same OS. We should also realize that making fun of people for saying "Linux" when they mean "Ubuntu" drives them away even quicker than bickering amongst ourselves. Who wants to join a group that makes fun of you?

All of which leads me to restate my main point. I believe we should all just agree to let the masses think Linux equals Ubuntu. Call Ubuntu "Linux for the masses" and let them be happy. We should do it for the benefit of all of us. The users get their simplicity. All of us get our quick driver releases. In fact, the only folks who really lose anything will be those who live for anal-retentive semantics.

Technorati Tags: ,,,

Labels: ,