The news of Con Kolivas, a Linux kernel developer, quitting that role, along with an interview in which he explains why, could and should make loud noises around the Free Software community which is often touting GNU/Linux as the best operating system one could use, and not just because of freedom you have with it. In the interview he says certain things which should cause tectonic shifts in the mindset that we have all been having. Why didn’t we realize these things before?
As you can see, the article intrigued me quite a bit, and got me thinking about a better way forward for the Free Software OS.
I’ll go through some of the basic points that he makes and lay out one possible solution and its implications. However, take this article as just a discussion starter.
Linux kernel is too bloated
It was made for servers because that’s where its initial success was possible and where most of the money came. Linux kernel developers are on the payroll of companies who, in the first place, care for their server related businesses. This makes it much less likely for the kernel development to focus on needs related to the desktop, a most demanding of the market segments.
Developers are also developing on machines which are too powerful compared to the machines that ordinary desktop users are using, making performance issues that desktop users may experience, practically invisible to these developers.
Lack of communication with desktop users
Linux kernel developers are normatively disconnected from the rest of the users, most of which are desktop users, the kind making up 90% of all computer users. Since they are not mostly governed by the companies whose interests are on the desktop it is logical that they will a lot of the time be oblivious to the needs of the ordinary desktop users.
This is not because a desktop user does not have the freedom to participate. In a Free Software world we have the freedom, but we also have social and cultural norms which are often enough of an obstacle to healthy communication and cooperation. Some of those norms are beneficial, and some are quite hurtful.
Can a kernel developed by people not so attuned to the needs of desktop users lead an OS to success on the desktop?
Lack of innovation
It is largely unfashionable to accuse the GNU/Linux world of not being innovative enough, but accusing it of lack of innovation is not saying that it isn’t more innovative than the rest.
I believe Linus Torvalds once said that all operating systems suck, but “Linux just sucks less”. I think this statement is very true, but useless if not taken as a call to improvement. Why does it have to suck at all?
The point that CK makes is related to performance issues on hardware which is so powerful that it shouldn’t have performance issues at all. Why do we still need a specially optimized Linux kernel just to properly enable music production? Shouldn’t real time audio processing just work absolutely flawlessly on computers containing dual core CPUs? Even Windows XP doesn’t have this requirement.
The question has to be asked. Why does *anything* have to run slow on todays computers?
Free Software movement is about freedom which includes freedom to innovate, but having this freedom wont make things just happen automatically. It is merely a beginning. We have to use this freedom to really do things better, to revolutionize the world of computing. But, so far, GNU/Linux is becoming just another bloated OS which is incapable of making the most out of the most powerful hardware we have ever had (yes, that’s probably your computer too).
It is leaving the revolution to the social and ideological side of the issue, while remaining stuck to the old ways that everyone else is stuck with on a technical side of things, yet it can do better.
One of the solutions being pondered is forking a Linux kernel into a kernel which would specifically be aimed at desktop users and their needs. It could be ran in a way which would allow for a seamless two way communication between desktop users and kernel developers, because they would share much of the same interests in this project. This means that an ordinary user would be able to leave a bug report or a suggestion without being flamed as a newbie who doesn’t know anything, but rather awarded with contribution points.
Now imagine the implications of having a desktop kernel.
Popular distributions such as Ubuntu would likely switch to this new kernel, without diminishing their popularity. The new kernel would allow a lot of the lost performance to be gained, allowing us to reclaim the title of the fastest OS around. However, applications would have to follow this trend in order for performance gains to be felt more dramatically. It is possible that a project of forking a kernel for a desktop with focus on performance would also initiate a similar movement with the rest of the Free Software world. We can call it a hint that would affect the way developers think about their software, encouraging them to pay more attention to performance issues on the desktop.
This would also likely blur the lines between what is or isn’t considered to be “Linux” or “GNU/Linux”, especially if a new kernel doesn’t carry a name involving “Linux”, possibly even throwing the whole definition of an “OS” in a limbo, perhaps making it irrelevant. Above all else, it would just be a Free Software OS where distributions use whichever kernel suits their users the most. The reason why this would happen is the discussion that, for example, Ubuntu switching to a new kernel, would entice regarding what we should now call the new OS; as “Linux”, by the name of the new kernel, just “Ubuntu” or perhaps “GNU”. The reason I believe this would blur the lines is simply because I doubt a proper consensus on this would ever be made. It will likely just end up being called Ubuntu, which is merely a distribution, leaving the OS simply unnamed – a Free Software OS.
Therefore the benefits are twofold. There is a technical benefit of regained performance and moving away from the bloat of the rest of the computing world, truly innovating on the desktop and not just making a one-shoe-fits-all operating system. And there is a benefit of blurring the lines between operating systems based on what kernel they run, which would encourage further diversity and open mindedness towards different platforms. The only way we would most often identify an OS is by the name of the given distribution (Ubuntu, Gentoo, Nexenta, Haiku etc.)
Free Software is about restoring the freedom of computer users. But now that we have it, why not take things to the next level? Let’s make a desktop operating system which will be truly irresistible, then conquer the desktop and make computers really fun again.
Edit: There have been some comments by people who seemed to have understood this article as saying that GNU/Linux sucks and is not ready for the desktop then going on to point out the obvious advantages that GNU/Linux has compared to other platforms, including the advantage of performance. However, if you reread the article you would see that I in no way argued that GNU/Linux is not better and that it is not ready for the desktop. Saying that it sucks less than anything else does mean that it is the best thing around. My point was simply that things can be even better. We can be even better than merely better than anyone else. We can leave them trailing us hopelessly and obviously. Why else would I call this a “revolution” in computing? Because it is not just about beating other platforms, it is about beating ourselves. Why does merely “being better” have to be enough?
That said, yes, I do believe GNU/Linux already is ready for the desktop. It’s more ready than anything else. It deserves 90% of the market share right now if you ask me. However, it is hard to win that market share without going even further than people would usually expect us to go.
Good enough is not enough. Being the best is not enough.