Thursday, May 23, 2013

Linux on the desktop

A common topic of discussion among geeks used to be when Linux would be successful. The tagline was "Year 2000 is the year of Linux on the Desktop". And then it was 2001, and then 2002. Seems like the year never came. Looking at the usage of operating systems, it seems that Linux has never become popular. Desktop operating system trends do suggest that Linux has gone nowhere. People are still using Windows and Mac OS.  Applications are still not written for Linux.

On the other hand: Linux is everywhere.  It is on phones and tablets. It is inside popular ebook readers.  It is on all 10 of the top 10 supercomputers. It is on routers, even cheap home routers. Your desktop might run something else, but there is a good chance there is a device in your home that runs Linux.  And you didn't even know it.

What's the point of this post?  This is not an academic discussion about operating system proliferation. There is a deeper point. Linux is everywhere because of what it enables.

Linux enables experimentation.

Linux allows a random nobody to try out something interesting to them. It might be the most crazy idea ever. But if it works, others might benefit. Everyone might benefit. Let's look at a few examples which might make this idea more concrete.

  1. A $500 router, for $50: DD-WRT is a Linux firmware for routers. It allowed you to take a cheap home wireless router and add features that made it comparable to an expensive commercial router. Now, router vendors pride themselves on whether DD-WRT runs on their router: it spurs sales.
    DD-WRT made it possible to extend the life of your router: updates are frequent and security issues are fixed. While hardware vendors focus on the next version, the "community" ensures that their devices work as well as new.
  2. Linux in your pocket: Knoppix is software designed to boot up any computer, and make it usable without writing anything to the hard disk. It started out as a boot-up CD. You popped the CD in the drive, and booted up the computer with it. You could use Linux, experiment with it, browse the web, listen to music, write some programs. All your changes were local, and lost when you powered down. Now you can write Knoppix on a thumb drive and take it with you everywhere. You can borrow a friend's computer without reading their documents. You can recover a machine where the hard drive has failed. You can try out Linux and see what you think. You can evaluate a laptop at the store.
    Knoppix is possible because it is possible for anyone to modify linux to suit their purpose. Commercial vendors have no interest in giving you a permissive license to their operating system. It hurts their revenue stream. There is no such limitation with Linux. 
  3. The educational computer: If you aren't aware of it yet, computers are now cheap enough to be disposable. Here is the poster-child, the Raspberry PI. It is a full computer that sells for $35. You connect a monitor and a keyboard/mouse and a power supply. It can boot up into Linux and allow you to use a windowing environment. It started out as an educational project, a current generation replacement to the BBC micro. A computer small and cheap enough that every child could have one and could play with. A computer to spark the imagination of the next generation.
    The raspberry PI is possible because the software is free. We used to talk about how the reduced price of computing threatens proprietary operating systems. Who will pay $100 for an operating system license when the computer itself costs $300? Well, now the computer is worth $35. Not only is it absurd to pay 3x for the software, the software itself will not support such a limited computer.  The Raspberry PI is one of the first, but there are many others in this space: BeagleBoard, PandaBoard, ... With the easy availability of mobile chipsets that integrate graphics, computing and RAM, this space is about to get a lot more exciting...
  4. Facebook makes your computer faster:  Everyone improves Linux, even companies. Facebook engineers improved the performance of hard-disks by using small, cheap Solid State Disks (SSDs). Solid state disks are more expensive than traditional (magnetic, spinning platter) disks. Instead of buying an expensive  256Gb SSD, how awesome would it be if you could buy a cheaper 16Gb SSD, and you got performance similar to the bigger disk? Since Facebook owns large datacenters and wants to improve the performance of its computers at minimal cost, their engineers wrote a Linux kernel module to do something similar. It isn't in the main Linux kernel yet, but it will get there. And this obscure kernel module will improve the performance of your computer.
Constant experimentation allows for incremental improvement.  New products emerge, and encourage creativity in others.

While it isn't in your desktop computer, chances are that Linux is on your desktop already.
Image courtesy: South Dade Linux Users Group