Those of you who use the Linux OS on their desktops know that it is vastly different from the Android OS typically used on the mobile phone or tablet. One of the glaring differences one notices in the two OSs is that Android is geared heavily towards the touch operation, whereas Linux is limited to operations with a keyboard and mouse. However, both operating systems have a common origin and share the same kernel.
Linux can be best defined as an operating system suitable for running on a fixed or limited function device – for example, embedded Linux on a smart refrigerator or toaster. This allows the device to take full advantage of the massive processing power of Linux and utilize the peripherals to the utmost. When used on a fixed function device, embedded Linux has unparalleled operating efficiency and performance, uses minimum memory footprint and power, while providing the user with the utmost ease in using the device for its intended purpose.
Smartphones and tablets, although embedded devices, are definitely not fixed-function (different models with myriad functionality). The sheer volume of these devices tends to skew the traditional definition of embedded Linux. With increase in the capabilities of the hardware, the definition of embedded Linux also undergoes a change, especially where limitations in storage and processor capabilities are concerned.
On the other hand, Android, although a desktop-like Linux mobile OS and platform, allows users (manufacturers) to define their own usage patterns. It also allows vendors to update and upgrade the platform dynamically. However, some applications blur the distinction between Android and embedded Linux.
One of the examples of this type of application can be seen in the television set-top box. This used to be a fixed function device running on embedded Linux. With the increase in functionality and dynamism of the TV, the set-top box now has app downloads and software upgrades similar to Android devices. Moreover, Android is undergoing changes similar to what embedded Linux is facing. It is growing beyond being just a tablet operating system or a mobile communication system.
What many people do not know is Android and Linux both use the same kernel. However, Android focuses on the vertical integration of its user space components with the Linux kernel itself. In most respects, Android can be seen as another flavor of embedded Linux – just as each embedded Linux is tailored to the architecture of the CPU, peripherals, SoC support and purpose of the device it is expected to run on.
The specialty of Android lies in its ability to be customized and optimized, yet maintaining common components and standardized APIs. This allows the environment of application development to be more consistent. Of course, that also means the Android core images have a very large footprint to maintain this consistency or standardization. Additionally, this increases the surface for vulnerability profiles.
With Android, you have a large amount of functionality. Of late, some of the leading developments for supporting new graphic accelerators and SoCs appear first in Android environment. They are then pushed upstream to the other projects involving the Linux kernel.