Does Android really use the same kernel as Linux?

Architecture of Android

enter image description here

Android relies on Linux for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack.

Latest Android runs Linux version 3.10 (source).

And my comment on your second sentence is that Linux Kernel is not meant for only desktop operating systems. Its use cases vary from Desktop OS to Servers, mainframes and supercomputers to Embedded Devices.

Linux is a widely ported operating system kernel. Due to its low cost and ease of customization, the Linux kernel is used on a highly diverse range of computer architectures: in the hand-held devices and the mainframe Systems, in devices ranging from mobile phones to supercomputers.

On the other note: Palm (later acquired by HP) use Linux-derived operating system, webOS, which is used into its line of Palm Pre smartphones. Several network firewalls and routers from makers such as Cisco/Linksys use customized linux kernel. There are tons of devices out there which are using embedded linux.


Yes, as do many other embedded devices. Many routers also use a Linux based OS, as, like Sachin said, it is easily customizable.

Here is a Xubuntu screenshot of mine, Running mksh and Android kernel 3.0.8+ (From the Android x86 sources) Xubuntu Running mksh and Android kernel 3.0.8+


Yes and no (depending on what you mean by Linux)

There is a lot of confusion around the name Linux; It if often used to refer to two different things.

  • It the case of android, and some other cases. It refers to a Kernel named Linux. A small but essential part of an operating system. A kernel controls the hardware and provides services to the rest of the system. (see nice diagram answer of @Sachin Divekar).

  • In the case of almost all desktop systems it refers to X11+Gnu+Linux. See the diagram again, but remove all references to phone, telephony and android. Now change Application Framework to Gnu Tools, add a layer called X11, and another called Gnome or Kde etc. Then put application back on top. For servers there is usually no X11 or Kde/Gnome, as a graphical user interface is a waist of resources.

Android does not use X11 (though it can, but not to run android apps) or the Gnu Tool. However like Gnu+Linux some of the libraries are Gnu.

It is often difficult to know which meaning someone has when they say Linux. This is why it is recommended to say “Gnu/Linux” when you mean Gnu+Linux, and “Linux kernel”, as you did, for the kernel. However don't say kernel, unless you know what one is (I have heard people add the word kernel in front of Linux (because they were told that is the correct term), bet they were using it to refer to Gnu+Linux.

Tags:

Linux Kernel