Archive for the ‘Linux’ Category

Linux: The desktop explosion that never happened.

February 6, 2008

Wednesday, February 06, 2008

What ever happened to the promise of Linux on the desktop? Sure, there are GUIs and desktop applications for Linux, but outside of a very small percentage of the geek population, Linux on the desktop is a non-starter. The promise of a desktop based Linux growth explosion has always been “in another year or two”. The problem is that it’s been that way for years with no sign of improvement. 


The purpose of this article isn’t to attack Linux as an operating system. Rather, the purpose is to look at the challenges Linux is facing relating to growth in the desktop operating system market. This article will look at why Linux has failed miserably in this area, predict the near term future for the OS and offer my thoughts on how Linux could achieve great success on the desktop.

With an article like this, it’s probably best to state my position on Linux right up front. I’ve been programming computers long before Linux existed. I’ve studied operating systems in college and have written my own job scheduler as a project back in the day. With that said, from a technology perspective, I’m a fan of Unix and have respect for pretty much any Unix-like operating system, including Linux. However, having written programs that make use of low level interprocess communication, I’m also painfully aware of the differences between an SVR4 based Unix and something like BSD or even Linux.

Over the years, I’ve tinkered with various distributions of Linux (and even SCO before that). At the same time, I’ve also been a user and have done minor development work for Windows and Mac operating systems. Once Mac OS X hit its stride, probably around the Panther release, I found that I had less and less use or even desire to have Linux installed on one of my machines. There are reasons for that which I will discuss later in this article. 

The Cold Truth

Unfortunately, there is no avoiding the hard facts.  I read an article about a month ago that referenced statistics from Net Applications. Linux market share on the desktop remains at less than 1% (0.67%). Given the margin for error either way, it seems fairly safe to conclude that Linux on the desktop is still basically nonexistent. While I don’t take any single source of information as the end all source, however the numbers reported below are representative of numbers I’ve seen reported from other sources. I have no doubt someone can come up with another source of information with somewhat different statistics, but that wouldn’t change the fact that Linux hasn’t had the success on the desktop that has been promised for years.

Linux advocates would probably argue that the installed base of Linux desktop users is higher than this. While I might agree there is some probability of truth in that, I’d also have to question why they aren’t using it. What good is a Linux install if you’re using Windows instead?

The article referenced above notes that over the past 2 years, Apple’s market share has grown from 4.21% (January 2006) to 7.31% (December 2007). Certainly, Apple’s own sales figures confirm the type of growth noted here. The point here is that at least on the desktop, people leaving Windows are switching to the Mac rather than Linux. In short, Mac OS X is becoming “the people’s Unix”.

Regardless of the numbers, this isn’t meant to be a Mac versus Linux comparison. Rather, a look at the state of Linux and what’s holding it back on the desktop. Linux has had much success in the server market. There are lots of reasons for this. Linux, like any Unix-like OS is fast; well designed; familiar to higher end server customers and developers alike. On the server side, the GUI is a non-issue. It’s cheap; it’s well supported by third party middleware vendors and databases alike. Etc., etc. The list goes on. Apple was smart to tout references to UNIX when advertising OS X. Linux would be smart to band with Apple as another technically superior alternative to Windows. Sadly, that’s not what Linus Torvalds has in mind. 

Torvalds isn’t helping matters

I read an article today that sort of jogged my memory on the topic. The article, “Torvalds pans Apple with ‘utter crap’ putdown” . In this article, Linus claims:

“I don’t think they’re equally flawed – I think Leopard is a much better system,” he said. “(But) OS X in some ways is actually worse than Windows to program for. Their file system is complete and utter crap, which is scary.”  

First, what’s the point of attacking OS X? It seems that Torvalds is upset with the success OS X has been enjoying. It also becomes clear that Torvalds sees OS X as a threat to his operating system.

Second, the shot he takes is actually pretty weak. While I’d agree Apple’s HFS+ file system isn’t exactly cutting edge, neither are common Linux file systems really (EXT2, EXT3, ReiserFS, JFS, XFS, etc.) Really, is anyone supposed to get excited about B+ Trees and Journaled file systems? News flash Linus, these features exist in HFS+ as well. ACLs? Yup, it’s in there. I’d agree that ReiserFS does some pretty interesting things and has great performance when you’re dealing with a very large number of files that all happen to be very small in size. But, let’s also admit that ReiserFS has had corruption issues and doesn’t lend itself to be defragmented properly. In short, which Linux file system would he be comparing HFS+ to? Also, most “modern” file systems are considered weak compared to Sun’s new ZFS. Like any file system, it takes years to mature and be deemed worthy of a production environment. There is zero tolerance for bugs in a file system.

“An operating system should be completely invisible,” he said. “To Microsoft and Apple (it is) a way to control the whole environment … to force people to upgrade their applications and hardware.”  

The problem here is that Torvalds is living in a dream world whereby he gets to use a very technical definition of an operating system. To Torvalds, an operating system is nothing more than a kernel. That is, it’s a process scheduler, memory manager (for virtual memory) and possibly an I/O manager for very low level interfaces to input devices. To the rest of the world, the term “operating system” refers to the entire distribution. This includes all of the middle level APIs between the applications and the kernel such as Quicktime, OpenGL, Quartz, etc. on the Mac. It also refers to all of the basic applications that come with your machine that help it do basic things. This would be anything from an e-mail program to a DVD player, etc. Linux installs come as “distributions” not as pure operating systems. Torvalds doesn’t care about trivial things, you know… like a GUI, when he makes such utopian statements. Instead, he paints Microsoft and Apple as evil entities because they actually deliver an entire operating system distribution that is well integrated. Oh, the horror!

“As for his own operating system, Linus said the most exciting developments were Linux’s improving green credentials, and a push into mobile devices such as the One Laptop per Child project and Asus’s new ultra-cheap Eee PC.”  

It’s odd how Torvalds doesn’t mention that both Windows and Macs have long since had very good “green credentials” with their respective power management features. Also, Eee PC? Is that the future of Linux on the desktop? Great. You can either be known for being good or being cheap. Apparently, Torvalds is going for cheap.

“The (Linux) kernel is already being used in things like cell phones, but the problems have been in the UI (user interface).”  

Microsoft and Apple have also put their kernels in mobile devices. Apple seems to be making significant innovations in terms of mobile user interfaces too.I suppose I’ve been a bit put off by the personal comments that have come from Linus over the years. This article was no different. “Trash talking” is a way of life for him it would seem. I’m interested in a technical discussion where he might actually make a few valid points. I’ve yet to see that from him, despite his capability to do so.

The bottom line is that Torvalds isn’t helping people adopt Linux with trash talk that is short on examples and easily contradicted. 

Linux is for geeks?

Linux has had a reputation for being popular with geeks. There’s nothing wrong with that. However, Linux needs to branch beyond this population in order to ever become successful. Again, with a Unix like operating system, what’s not to like? Linux is a geek’s paradise as there are so many options for just about anything. Better yet, most of the software available is free from the open source community, just like the OS itself.

The problem is, to be successful, Linux not only needs to be powerful, but it needs to be easy. Very few Linux distributions can claim to even approach the ease of installation, setup and use of Windows, much less the Mac. 

What about the high profile geeks?

Over the past couple years, there were at least two “relatively” high profile geeks that switched from the Mac to Linux. Mark Pilgrim and Cory Doctorow are the examples that the Linux community seem to mention time and again. I remember reading their stories / justifications at the time, but admittedly forget the details. As I recall, both cases seemed to make a switch based on some sort of principle (open source software?) rather than based on specific needs. I remember a program by program comparison (from at least one of them) of what they were using before and what they are using now. Without out a doubt, they both ended up settling for lesser quality software in order to stand by their “principles” or whatever. That may be noble, but it’s certainly not practical. I believe one of them bought a Thinkpad because it was cheaper than a Macbook. Well, that’s certainly true in some cases, but like anything else, you generally get what you pay for.

Anyway, what was the end result? Both of these “high profile” converts were very vocal about their decisions in their blogs. Clearly, they seemed to be trying to justify their decisions to others (and possibly themselves). The problem is, everyone else just seemed laugh and “wish them luck” as their choice wasn’t very practical. I’m guessing they thought they were somehow leading the way for others as if they had such influence, etc. 

Why I can’t justify a switch to Linux (yet).

As someone who likes Linux and feels at home in any Unix like environment, I haven’t been able to justify switching to Linux full time for myself nor would I yet recommend it for others with lesser experience. Below are a few reasons that I would imagine are common to others.

  • Software. I’m all for open source software. There have been plenty of benefits from open source software, even for commercial software vendors. However, the quality of open source software seems to be in bits and pieces rather than in collections of large applications.

For example, LAME is probably the best MP3 encoder available. As a tool, that’s great, but I haven’t seen a good equivalent to something like iTunes. Audacity is a nice free audio editor, but it’s not in the same league as something like Logic. GIMP is no substitute for Photoshop. OpenOffice is okay, but Microsoft Office is better. Etc, etc. The list goes on. When it comes to desktop software, it’s about making do rather than having the best. I could go into a discussion on emulators like WINE, etc. but I don’t really consider those to be real solutions. They are less than optimal ways of “making do” to be kind.

  • Ease of use and installation. Again, this is not a problem for the geeks, but end users don’t want to have to troubleshoot installation configuration issues, nor do they want to have to hunt down the proper device drivers, etc. Linux based distributions such as Ubuntu have made great strides in this area compared to what I was used to years ago, but I wouldn’t consider it ready for the masses yet. Just think of the least computer savvy users you know. Now imagine them trying to install and configure Linux. Enough said.
  • Standards. Unfortunately, strengths can be turned into weaknesses. Linux gives you the ultimate in terms of choices. This is a geek’s paradise. Unfortunately, most consumers don’t want so many choices. They want standards. Developers also want standards. If you’re a developer, how do you develop for a system with no standards? At the server level it’s easy as you’re not dependent upon the GUI. This is why Linux has been able to gain traction in the server market. On the desktop, not having a standard is a very bad thing. This is true for GUIs and possibly to a lesser degree, files systems.
  • Graphical User Interface. The GUI issue really warrants its own line here. There are two main choices (GNOME and KDE) and roughly a dozen lesser known choices. In the end, this only serves to fragment an already small niche market. No wonder commercial software developers avoid Linux on the desktop. They’d need a different product for each GUI they chose to support. Also, what about consistency across the user base?
  • Common direction for the platform. The Linux kernel receives the proper attention, but that’s about it. Everything else on Linux is really a hodge podge of miscellaneous parts. They may be good parts in and of themselves, and the choices are great. The end user experience is always going to be inferior to a well designed and well integrated solution that was designed to fit together. In this respect, both Macs and Windows have an advantage over Linux.

Low end desktop potential

If the trend continues for foreign countries to revolt against the Microsoft monopoly, Linux stands to gain the most here. When it comes to common file formats for productivity suites such as word processors, speadsheets, etc. it wouldn’t be a terrible thing to have a standard that’s not controlled by Microsoft in place. Yes, attempts to do that are already under way, but a wholesale switch to Linux for some government agencies would certainly speed up the process and perhaps make this movement relevant.

Many developing countries are looking for low cost alternatives for their computer needs. Initiatives such as the Asus Eee PC are attempts to address this need and may very well become successful. Having a “free” operating system is almost a requirement for this class of computer. This may very well be the springboard for Linux on the desktop that Linux fans have been hoping for. The problem is, someone that’s going to spend $200 on a PC probably isn’t going to spend $1200 on something like the Adobe Creative Suite or Final Cut Studio, etc. That is, it may become popular for the basics, but I don’t see much of a market for the higher end commercial software products on an Eee PC / Linux platform. If that’s the case, Linux would have the marketshare but still be a second rate choice on the desktop. 


From a technology perspective, Linux is a first rate operating system. It’s a powerful UNIX-like operating system with an unbelievably low price (free). Linux is a geek’s dream come true as there are many choices, configurations and distributions to choose from.

At the same time, Linux on the desktop is perennially “just a year away from exploding on the desktop”. Unfortunately, we’ve all heard this repeated many times over many years. It hasn’t happened and for good reasons. There are very significant barriers preventing Linux from being successful on the desktop. Linux needs a unifying force to come up with “the” Linux standard, not just “another” Linux standard in terms of technology. This includes the file system, the GUI and everything in between. Of course, the notion of having a unifying force for Linux goes against the very grain and nature of the Linux community. In short, Linux wouldn’t really be Linux anymore if that ever happened.

Linus Torvalds claims the operating system should be transparent. Of course, he’s able to make such claims because he doesn’t take responsibility for the entire operating system; rather, he only speaks for the kernel. Rarely do kernel changes in the Mac OS or Windows require third party updates, it’s the higher level APIs that do. Likewise, I find Torvalds’ comments to be disingenuous at best.

Some form of Linux has a chance at gaining marketshare success in the form of very low end computers such as the Eee PC example. If foreign governments continue the push towards Linux on the desktop, this would help as well. However, neither of these scenarios really describes a best in class environment. Rather, they describe a lowest common denominator situation. But hey, that worked for Microsoft!

The biggest barrier for Linux on the desktop is the fragmentation of technology and standards. In my opinion, the best chance Linux has for a future on the desktop is for a commercial entity with sufficient resources to take control and push for a unified standard. Companies like IBM come to mind because of their vast resources and commitment to Linux. Unfortunately, I question IBM’s ability to pull it off due to their historically poor understanding of consumer needs and desires. IBM has always done well catering to their enterprise customers.