Today there are many operating systems available. Every vendor or community round it tries to make it as good as possible. Having different goals, different legacy and different cultures, they succeed in it more or less. We (end users) end up with big selection of operating systems, but for us the operating systems are usually compromise of the features that we would like to have. So is there an operating system that would fit all the needs of the end user? Is is the BeOS clone Haiku?
As you might have guessed, I will present my point of view on the topic of perfect operating system. I will limit myself to desktop operating system as requirements of desktop operating system are in some aspect totally different than those of other types of operating systems.
First I will name few criteria for evaluating operating system. Then I will look, which operating system that is currently available fulfills the criteria best. At the end I will try to merge the operating system, and define the prefect one.
Let’s start with criteria. They are:
- user experience (GUI, ease of use, …),
- availability of software,
- availability of hardware,
- installation and updating of operating system / software,
What we have today
User experience is about how user interacts with operating system and programs running on them. This is a “soft” science. What one user likes, may other dislike. I would define it as responsiveness, ease of use and attractiveness of design.
Responsiveness is how quickly program starts and how quickly responds to users’ commands. Ease of use is a logical structure of programs: would average users understand when they see the interface the first time or not? And the third, which I named attractiveness of design is how well does the functional organization of GUI elements come together and form a pleasant user interface. As this is hard to explain, I’ll name an example here: CDE offers an unpleasant user experience whereas new versions of operating systems and desktop environments provide more pleasant user experience (Windows Vista, Windows 7, OS X, KDE, …). You might call it chrome, but this is what average users sees as operating system.
Although defining an operating system with best user experience might be arguable, I have a personal winner in this category: OS X. It has one of the most worked-through user interfaces, which is (pardon my nontechnical word) just beautiful, and a joy to work with.
Availability of software
What is an operating system without software? A toy for programmers to tinker with and nobody else. A perfect operating system must have a lot of software available (open source and/or commercial). The user must be able to run software for every need (browsing web, writing memos, doing inventory in small firm or running financial payments software for a big firm).
In this category, there is a clear winner: MS Windows. With market share at about 90%, almost any type of (commercial) software that is made is made for MS Windows (and much of it only for MS Windows). Other operating system like Linux might have a lot of software available, but not as much as MS Windows.
Availability of hardware
Users must be able to run the operating system on any hardware they buy. And they must be able to use their peripherals with that operating system.
There are two winners in this category: MS Windows and Linux. Every (end consumer) piece of hardware gets drivers written for MS Windows – it must, as its market share is far too big to neglect it. But the winner is also Linux: it also supports almost all hardware (out of the box). But Linux supports also other architectures, which are used for desktop computing (such as ARM) which MS Windows does not support.
Installation and updating of operating system / software
Adding, removing and most importantly updating the software is something that should be done in an easily understandable way. All “major” operating system do it in a different way, but basically, it is a mater of taste. I will not state a winner here because every approach has its benefits and drawbacks, but they all do basically a good job.
Security comes from the design up and it must be incorporated into every aspect of the operating system. This means well-written code, following security guidelines, code reviews, testing …
Although this category is not listed the first in line, it is a must. A good (desktop) operating system must be secure. Period.
Enough of words here: I think everybody would agree that in this category the winner is OpenBSD. The development of the OpenBSD has clear goal: to make it a secure operating system, and they do it the right way.
Perfect operating system should not be controlled by one entity, and everyone should be able to see how it works and change it, if they want to. So the only logical license is some sort of open source license. Which open source license is better than other is beyond the scope of this writing.
Dividing between operating systems on this criteria is straightforward: Linux, all the BSDs, and other open source operating system win and MS Windows and OS X lose.
Creating a perfect operating system
You might expect, that I would add few points to every category discussed above, see which operating system got most points and pronounce it a winner. But that’s not the right way to do it. We would make a compromise, what many of the operating systems are: we are not secure, but we have most of the software or we are not [place a category here] but we are [place a category here]. This is a situation that we have today, and if you need an operating system now, you have no choice, but to make a compromise.
Let us imagine, we have a magic wand, which can merge different operating system together, how would it look like: it would be (at least) as secure as OpenBSD, it would run on all hardware that Linux runs, it would have all the software available that MS Windows has and its user interface would be at least that good as the one of OS X. Of course it would be licensed under an open source license.
But as such magic wand does not exist, let’s look how this could be achieved in a (near) future. This is of course just one of theoretical alternatives.
Let’s take an operating system, that was not mentioned yet: Haiku. The Haiku operating system is designed to be binary compatible replacement for BeOS, which was designed from scratch, and was designed to be a desktop operating system. Haiku builds on the same foundations. This is its main advantage: it does not rely on any legacy architecture, as other operating systems do. E.g. desktop operating system based on Unix have at least three layers: core operating system, X-Windows and DE (e.g. KDE, GNOME, …). A lot of the same functions in those layers duplicate, leaving system slower, harder to manage and less secure. Haiku does not have this problems, as it was designed from ground up to be desktop operating system. This is why I’ve chosen Haiku – it has by my opinion the best architectural base of all other operating system.
There are also downsides to Haiku and they are not minor ones. The major one is, that it is still in development phase and it is not suitable for everyday use. Well, this might change in a (near) future. But this is not about pro and contra about Haiku. This is a theoretical writing how Haiku meets the criteria for the perfect operating system from the beginning of this writing.
Haiku’s GUI was designed in the mid 90s. And one can see its age. It feels like mix of CDE and first version of KDE. But this is a sensitive area, as avid OS fans are usually “in love” with how their operating system looks and behaves, and this might also be the case with the community behind Haiku.
Haiku needs some major GUI changes to be attractive to non-technical, non-BeOS-loving people. It’s true that Haiku’s GUI provides some features that other operating systems don’t, but those do not outweigh the outdated GUI design.
Question is: Is the Haiku community willing to change the GUI and if the answer is yes: how much work is it willing to put in?
Availability of software
There is software for some very basic needs available and there are also software repositories for Haiku and BeOS, and some commercial software that runs on BeOS (and on Haiku). But the current availability of software is far smaller than the availability of software for Windows or Linux.
Haiku might get “instant software boost” if it would possible to recompile Linux’s software to run on Haiku’s OS. I’ve noticed that QT is already in process of being ported. But how much work remains to port all QT based applications to Haiku is another question. Same goes for GTK, etc.
Speaking of GTK and QT – will they look like native applications on Haiku or will they look like they come from different operating system?
Availability of hardware
Haiku currently supports only i386 architecture with limited set of hardware. Port on the ARM architecture is on the way. Most probably port to x86_64 architecture will be done in the future, and this is quite enough what a desktop operating system needs. Support for the peripheral devices will be added or ported from other operating systems with licenses that allow it (as was already done).
Installation and updating of operating system / software
Haiku currently supports some sort of manual installation of packaged software, but no automatic updates. The Haiku community is currently working on this “problem” and I assume the automatic updates will follow soon.
Haiku was build from scratch with no legacy. This is a good starting point for well written code with good security record. But as a wise man said: “Assumption is the mother of all f***ups”. I haven’t seen the code and I can not comment it. It might be a spaghetti code, or it might be well-written, well-documented and well-tested code. There are some security threads on Haiku’s forums, but I couldn’t form an opinion based on those.
I wonder what Theo de Raadt would say about Haiku’s code.
Haiku is licensed under a MIT License, which is an open source license. This fully matches the “perfect operating system criteria”.
I assume that in the future all the above mentioned criteria will be met by Haiku, except for two, which might or might not: security and GUI. I can not foresee, if Haiku is/will be so strict about the security as OpenBSD is, and I do not know, how much of the Haiku’s GUI is the Haiku community willing to change. Amount of software will match the Linux’s repository and not the one of Windows.
At the end, I would like to ask members of Haiku community to comment on my views, Theo de Raadt to comment on Haiku’s code and all other readers to provide their views on the “perfect desktop operating system”.
About the author
Bob Cavally currently works as Java developer. Before that, he’s been working as system administrator and also teaching practical computer skills at local university. He’s been fan of Linux and open source since the Red Hat Linux 5 (not the RHEL 5, RHL 5).
“It might be a spaghetti code, or it might be well-written, well-documented and well-tested code.”
Haiku always strives to have a clean code base, this is why its been in the works for so many years. Watch the mailing list and you will find heated discussions on comment locations, variable names, and class design.
Haiku’s largest task is currently is fine tuning the OS. Given the HUGE array of x86 hardware out there, and the infinite number of northbridge/southbridge/chipset/processor combinations it needs lots of testers and lots of tuning. It is closer then ever to meeting R1.. but it will be some time before it passes R1 and prepares for the common-man’s desktop. By then who knows where the “popular” os market will be.
Haiku needs more developers! If you can test/code please give haiku-os.org a whirl!