Anyway. The reason of this post is wider than my own Linux adventures. I have during my first year as a linux user (and some serious “distro hopping” in the beginning) converted 2-3 people to Linux. This should be slightly more than the average since the growth of Linux on the desktop is somewhere between 30 and 100% per year (although from a rather low usage, currently about 1% – although this is very hard to guesstimate). With the future integration of Wine into mainline distributions in a seamless manner, the transition from Windows to Linux will be quite painless for most users who do not have to give up their gaming and legacy applications, and my bet is that when this happens, the rate of linux growth on the desktop will increase significantly.
This made me thinking – why do I care whether Linux on the desktop grows and how popular it becomes? The most popular distributions like Fedora, Mandriva, Ubuntu and OpenSuse are already so good so that they fulfill all my needs – why should I care if others are using them?
I am no “GNU/Linux” and “free as in freedom” fanatic when it comes to software (and my choice of OpenSuse as my distro of choice sort of indicates that I am not) – so my reasons are not political. In fact, I have only offered help in switching to Linux to people that have expressed discontent with their current Windows. I might also have become a bit “smug” and pointed out the advantages of Linux compared to Windows whenever computers are discussed – but I try to avoid the “holier than thou” attitude which I find rather embarrassing among the linux fanboys that litter a lot of computer-related forums. I believe that the behaviour of those fanboys is one of the biggest reasons for current Windows users to “hate” Linux. Another might be that they feel challenged by the fact that they believe Linux to be difficult, and it is never nice to feel “less smart” than others (however, I believe that Linux users on average are smarter than other computer users – but this does not say anything about a given individual among users or non-users, just that those who are smarter (or believe themselves to be smarter) have a greater tendency to dare to give it a try than others). So what is then the real reason why I would like to see open source software and in particular open source operating systems (not only Linux, but also *BSD variants, OpenSolaris, MINIX, HURD etc) to succeed?
One could be that with a growing user base, hardware manufacturers will be encouraged to write appropriate drivers for their hardware (where hopefully the wider adoption of the smolt project will give some leverage) and a richer choice of software will be available. So this is probably the reason… the standard selfish one. Another less obvious one could be the very interesting opportunities given with open source software. Our standard concept of an “operating system” as a complete package of various components ranging from a graphical user interface (GUI) to the technical internals such as the kernel (which, in fact, is the only part of the operating system that really is Linux in this case but more about that further down) is much more flexible in an open source world. Open source components can be “mixed and matched” in various ways, which is one reason why there are so many different distributions of Linux. One Linux desktop can look completely different from another because of its GUI (mostly Gnome or KDE) and the way they use to install different programs (so called package management) can be quite different. Open source gives the opportunity for several competing solutions to exist side-by-side. Classical debates such as the one between monolithic versus micro-kernels can compete based on their technical merits since new solutions can make use of a pre-existing ecosystem of software that can be ported – and also paravirtualization solutions like L4Linux (the OpenSuse repositories actually have L4linux in them, but not completely so I could not experiment with it) and compromises such as the modular architecture of the Linux kernel moves the debate forward. In a similar way, the re-ignited PC vs mainframe debate triggered by all the buzz about cloud computing might be resolved by virtualization solutions or something completely new that we never thought of before. In most cases, the Linux kernel runs under the GNU user land and the operating system should indeed be called GNU/Linux, but due to general laziness (I am guilty as charged!), the word Linux has become synonym to GNU/Linux. This might however change soon when other alternative non-GNU operating systems running on top of the Linux kernel (in order to make use of its great number of device drivers, its portability and other cutting-edge capabilities), such as the Anubis-OS and Glendix. In particular Glendix looks promising – where an experimental “post UNIX” OS designed for parallel computing might become useful in some super computers. I do not think that this Plan9/Linux will replace GNU/Linux on the desktop in the near future, but it might be run on Blue Gene to avoid its current performance hit from running a pure Plan9 under virtualization and it might be that we in a near future will see GNU/Linux competing with Plan9/Linux for the most prominent positions in the super computer league and other contexts, which might eventually spill over on the desktop (given that someone finds it worth wile to port an appealing user interface like KDE to the Plan9 analog of the X window system and all other apps that currently require GNU parts). In the long run, the generation of alternative Linux variants could actually be beneficial for the whole “Linux” versus “GNU/Linux” debate, where I in principle agree that the GNU part is a significant part of the current OS but in practice see little use in pointing that out. When diversity at this level is present (just like it is now in kernel space, where debian GNU/BSD, GNU/Hurd, GNU/OpenSolaris are already present) actually highlights the GNU part and creates a need to clearly state that this particular OS run GNU and not Plan9 or whatever…
Another advantage is that open source promotes new innovations – the wheel does not have to be re-invented every time and focus can be made on improvements and new implementations. For Linux, this is obvious since it has been ported to the greatest range of hardware and is one of the most proliferative operating systems ever – running everything from the worlds most powerful supercomputers to low-powered embeded devices and mobile phones such as Moblin and Android. Linux is already dominant in the world of super computers and has a strong position in servers and other computer areas – with the obvious exception of the desktop. In many ways the desktop is the “final battle” and the one most visible to the wider public. This does not mean that I believe Linux to be the be all end all OS, but I think that it has enabled innovation and establishment of a mature, portable and dynamic software ecosystem (if we had had to wait for hurd to be finished before we got a GNU operating system, we would still be waiting…) that can be used by future brilliant operating systems that we do not know of today. This is truly the bright and exciting future of computers – and one that I am happy to take part in, even if my small contribution only amounts to converting a few willing into using Linux on their desktops.