Linux progress limited by closed source software?

Linux distributions are having difficulty gaining widespread popularity. Many interested people have theories for this, which usually cite usability problems incompatibility with Microsoft applications such as Office, lack of games or GUI/usability issues. I actually have an alternative theory, which is that the people who are actually using Linux state these as problems as reasons they sometimes use Windows or why they won't give it to their girlfriend, mum, grandad etc. to use. The reality is that there is a lot of people out there who are interested in Linux who are going to at some point try it. If they then try it but can't get it to work with their hardware easily, they are likely to give up at that point at least for now.

As I see it, the main problem is that when people do try Linux they are beset with problems from the start. One type of problem is that the distribution the use doesn't support their some part of their hardware. Another problem, is that even if the hardware is supported, typical day-to-day items don't work out of the box such as Flash, videos/DVDs, music (MP3s) and Java.

So why don't these work out of the box? Well mainly to do with copyright and monopolistic reasons - Adobe's Flash is popular but, in contrast to other popular web technologies, is not based on a open standard. Other implementations exist but Adobe's implementation remains the only truly usable version. Java has had some redistribution limitations in the past but those should get better with the GPL release which is due soon from Sun. DVD, video and MP3 support is widely available for Linux using open source software, however, it is not supplied in most distributions because the distributor's have concerns that the software infringes patents.

Also now Linux has a wizzy new OpenGL based desktop, like MacOS X has had for a while, which is called XGL. However this requires OpenGL support in the graphics card which mostly comes in the form of binary only drivers for ATI and Nvidia cards. Wireless is now very popular but a lot of devices are only supported by running the NDIS wrapper (which enables loading of Windows drivers on Linux). Other devices seem to have 'acquired' an extra requirement where by they do not permanently store their own firmware. These devices require a binary blob to be stored in the OS and sent to the device when the OS boots. It is this binary blob that represents a problem since the hardware supplier often prevents it's redistribution meaning it cannot be provided as part of a Linux distribution.

Linux has started to depend on these proprietary additions to it's otherwise open source system - this is especially apparent with XGL which is practically useless without a proprietary driver from either ATI or Nvidia. The problem with these additions is that they do not integrate well with the Linux system and neither are unlikely ever to. Another problem is that vendors providing typically only support their devices for a relatively short time, for instance Nvidia has dropped circa 2000/2001 hardware from it unified driver which makes you wonder how long it will be before they drop support all together (also Nvidia looks set to drop even more hardware next driver release). This is at odds with a Linux kernel which still supports MCA bus, the original 386 and Panasonic interface CD-ROM drives (all last seen in the early 90s).

I've heard many people say they just want a stable and secure Linux system that just works and they don't care if it is proprietary or not. Well actually the proprietary bits prevents all three from happening. For one the systems we have now are mostly stable because of the 1000s of hard working open source contributors fixing bugs all over the system. The ATI and Nvidia binary drivers undermine this as these can crash an otherwise stable system and cannot be fixed without the support of the hardware supplier (which maybe unwilling to help). The security cannot also be assured, there is no peer review of code and updates are often not applied to proprietary software bits if the were installed independently. The just works bit is also out of the window since the GPL prevents linking proprietary code to GPL code. Also some other benefits of Linux are lost for example Linux runs on many different architectures and can be re-purposed for tasks it wasn't originally intended for (e.g. WRT54 Wireless access point, the Linksys NSLU2 and the Nokia N770). However proprietary modules typically target the most popular architectures and do not support modification. For many people this kind of use is not directly relevant to them, however it is relevant in the sense that these limitations reduce the number of programmers which are fixing bugs and creating software for their systems. This in turn devalues Linux to the point that companies that previously supported Linux may stop.

Fortunately for many of these problems presented in the blog entry there is at least one project to solve it, here are some of the main ones:

  • Gnash - Is alternative to flash
  • The Nouveau project seeks to create an opensource driver for nvidia graphics cards
  • OpenGL support for many ATi cards is available in the DRI project.
  • Sun is going to release Java under a GPL license
  • The Ogg Vorbis project seeks to create viable alternative to MP3 that does not have patents associated with it
  • The BBC is creating a codec called Dirac which should not have any patent libilities

122 views and 0 responses