When is it worth saying it's Linux?
by Dj Walker-Morgan
Recently, I was showing a Motorola Milestone phone to a non-technical friend. When I mentioned that the phone was running Android, he said to me "Oh, thats the Google Linux for phones isn't it... does it run OpenOffice?". I had to disappoint him at that point, but it lead to a question I had to ask: When the user interface is different and the API for developers is different, is an operating system still Linux, or is it something else?
At the recent Consumer Electronics Show there was a flood of netbooks and Android based devices about to be launched into the market. The folks at the Linux Foundation couldn't be more pleased about the incursion of Linux into this new generation of portable connected devices, but the software that appears on these devices often doesn't look or feel like "Linux".
The one word brand is a useful tool for consumers; when an average consumer sees the word "Windows", they know that the operating system will run programs written for Windows. When they see "MacOS" they similarly know it will run programs for Mac. When it comes to "Linux", things are different. Most of you reading this will, of course, know that what the general public have running on their desktop systems is, in fact, a combination of a windows manager and various applications, such as OpenOffice, GIMP, Firefox or Thunderbird, with a system kernel and that Linux refers to the kernel of the operating system, a distinction that is lost on consumers. But the new generation of devices lauded as "being Linux" aren't like that.
Take Google's Android ; at its core, yes, there is a Linux kernel and a whole host of other familiar bits of software. But if you are a developer, you don't get to see any of that because on top of the Linux kernel is the Dalvik virtual machine and Android's own set of APIs for accessing the underlying device. Even if the developer makes use of the Android native development kit (NDK), they are still relatively boxed in and the NDK only works in conjunction with a Dalvik based application. So is Android a Linux device or is it different operating system with a Linux kernel?
Or take Lenovo's Skylight ; the Linux powered ARM based smartbook presents a user interface composed of "web gadgets". At launch, Lenovo's consumer marketing director, Ninis Samuel said "There is no exposure of Linux to the customers. What we wanted to make is an interface that's completely custom and easy to use". It's not readily apparent if there's even a developer API on Skylight for third party applications either. So is the Skylight a Linux device, or a custom user interface layer which happens to use the Linux kernel?
It most definitely isn't what has become generically known as Linux or GNU/Linux, for consumers or developers; the combination of Linux kernel, POSIX like APIs with GNU and other command line utilities, X11 based GUI and GNOME or KDE desktop. The classic Linux is, as is now more readily apparent, just one way of packaging the Linux kernel for useful work which builds on the legacy of Unix and its standards.
Some have taken the way Linux, the kernel, disappears inside this new generation of devices as a mark of the ubiquity of Linux, becoming the Invisible Linux that powers devices, but that doesn't distinguish the use of the Linux kernel from the traditional Linux distribution.