Sunday, June 17, 2012

Linux on Mobile Devices, "You're Doing it Wrong"

To start off, I would like to clarify what I mean when I say "Linux".  In the title, I meant all forms of Linux, both the kernel and the GNU/Linux OS.  From now on I will explicitly say the Linux kernel and when I just say "Linux" I am probably referring to the GNU/Linux OS.

The most popular form of "Linux" in the mobile space is Android.  Android is not really Linux but a Java OS running on a Linux kernel.  So what's wrong with that?  The fact is that we are developing drivers and applications that run off of Android instead of Linux.  Very simply, we are doing more work than we have to and we aren't letting our work be used in more that one place.  I know, you could run Android on your desktop and when that happens the situation will be a little better.  The fact is that we are doing more work for less gain, wasted man hours.

So how should we have done it?  There is a simple solution and work on it has been started, MeeGo and it's predecessors were on the right track.  Basically, MeeGo was Linux, it ran an X server and had everything a Linux user is used to.  It used apt for package management, it used mutter as a window manager...  The point is that any application you could run on your computer at home you could run on your phone.  MeeGo was a desktop environment for mobile devices.

So what's wrong with MeeGo?  It was killed.  And I am not talking about Nokia being paid to sell Windows phones.  I'm talking about Tizen.  Tizen was a project proposed by the Linux Foundation that would make a system out of HTML5.  So basically the Linux Foundation said "Good job getting more apps and development money for GNU/Linux, but, instead we are going to make all of the apps written in HTML5 instead."

This means that instead of native applications and libraries that would be made for linux using dynamic libraries and shrinking executable size and more money for Linux development and and great dependency checking and everything else, we have to start from scratch and write bulky HTML5 apps that run slow, while eating you battery.

So what can we do?  The simple solution is Mer.  The Mer project is essentially a fork of MeeGo that works on creating patches for Linux programs that allows them to work correctly on mobile devices.  So, if you want great libraries to come out for Linux as well as more jobs in the area, support Mer.  The best way to do this is to buy phones (they hope to get some out soon) and develop.