Attention: open in a new window. PDFPrint

Android: Linux or not?

As google has released the nexus some weeks ago you can find articles about android all over the press. One interesting fact is that most authors speak of android as linux whereas google has stated clearly that android is not linux in the past. As this also includes the technical press there is much confusion about this topic. So, why does the whole world speak of android as linux?

The main fact is that android has been build upon the linux kernel. The kernel manages the system resources, file and process access, device drivers and inter process communication. It does not contain any user-space functions like the user interface or even basic terminal commands like ls, cp, cd and so on. This means that having a linux kernel alone does not allow you to access your system at all.

When Linus Torvald started to speak of his early system as Linux it only consisted of this kernel. Some years later it was used as the kernel for the GNU-utils because they lacked a kernel backend. The naming conventions changed this days as Linus Torvald started to speak of linux as the combination of his kernel and the GNU utilities that provides the userspace applications within the current linux systems. So basically speaking of linux includes the kernel and the GNU utilities.

So let’s get back to android again. Android has been build upon the linux kernel but it does not contain any of the userspace applications as it provides its own. Google implemented a JavaVM based on the kernel to provide all userspace applications. So, the linux kernel is used as a hardware abstraction layer. This differentiates android from other embedded systems based on linux like the operating system on the nokia n900.

In my opinion you should carefully separate the linux kernel from the linux system (or a linux distribution). I support the position of google that speaking of android as linux is not right as it has nothing in common with a linux system except its kernel.