Every now and then a colleague of mine tries to bump Linux’s user count share by arguing that Android can be considered a Linux distro because it uses the Linux kernel.
Let me sort this misunderstanding of whether Android can be considered a Linux distro out once and for all.
If you haven’t read our article on the difference between Unix and Linux you should start from there. I defined what Unix and Linux are, their history, and how they differ. The crux of the matter is that Linux is the kernel which was developed by Linus Torvalds in 1991 based on the MINIX OS.
Over time, contributors have taken advantage of the fact that Linux (coupled with its GNU component) is open-source and have adjusted it to suit their ideas and implementations; creating a variety of distros with a plethora of unique features.
What is Android?
Android Inc. was founded in October 2003 by Andy Rubin, Rich Miner, Nick Sears, and Chris White in California, USA. The Android project was described as a project with “tremendous potential in developing smarter mobile devices that are more aware of its owner’s location and preferences”.
The open-source Android OS was first developed with the aim of creating an advanced OS for digital cameras until when they figured out that the market for digital cameras wasn’t big enough and they realigned their focus to build an OS for handsets that would compete with Microsoft’s Windows Mobile and Symbian.
Google Inc. bought the company in 2005 and as we know now, the rest is history.
Under the hood, Android uses a modified Linux kernel which provides developers with tons of pre-built and well-maintained features. This, in turn, saves time and allows Android developers to focus on the most important features for mobile devices.
Drawing from the implication of the details in the GNU Manifesto by Richard Stallman, an OS has four elements:
- The kernel
- The HAL (Hardware Abstraction Layer) – where drivers that are not compiled into the kernel ‘reside’.
- The Userspace – where applications ‘reside’.
- The Desktop Environment or UI e.g. GNOME and KDE.
The aspect of Android that is Linux is its Monolithic kernel, which is a modified version of the Linux kernel and comes with its own libraries and APIs. The modifications to the Linux kernel are mainly for the specialized power requirements of portable devices with somewhat small batteries and the specialized libraries and APIs are for interacting with the cellular communications part of a cell-phone as well as to implement a common programming and User Interface for app support so that they don’t have to be specific to a particular manufacturer’s phone model line.
Another relevant detail is that when the Linux operating system was developed in 1991 as an open source operating system for desktop computers by Linus Torvalds, it was developed as the MINIX operating system and did not support 32-bit features with Intel 80386 machines. A significant difference between the two at that time is that Android architecture supported only x86 and ARM which it employs for Mobile Internet Devices (MIDs) and mobile phones.
Android is not a GNU/Linux distro but its Kernel (its powerhouse) is Linux and since it is the convention that a collection of software put together around the Linux Kernel is referred to as Linux, Android is Linux.
- Android is an open source OS that was first created by Android Inc. and is now owned by Google while Linux is the kernel that was created by Linus Torvalds (and contributed to by many others) under the GNU project.
- Android is developed for mobile phones and Mobile Internet devices while Linux is developed for desktops/laptops/servers.
- Android uses its own C library, Bionic; while Linux distros use GNU C
- Android cannot run any programs that are meant for GNU/Linux distros
- Android implements a modified version of the Linux kernel with specialized libraries and APIs for interacting with cellular networks and providing support for apps that can be used by phone models irrespective of their vendors.
- You can go through the “About” info section in your settings to check the kernel version that your phone is running.
I hope this article has helped you understand the relationship between Android and Linux and why although Android is Linux, it is not a Linux distribution?
Do you have any disagreements, questions, or comments relating to the topic? Share them with us in the comments section below.