Linux Android phones have a bash shell

Android is based on Linux, but what does that mean?

Android may be Linux based, but it isn't based What kind of Linux system might you have been using on your PC? You can't run Android apps on typical Linux distributions, and you can't run the Linux programs you know on Android.

Linux is at the heart of Android, but Google hasn't added all of the typical programs and libraries you'd find in a Linux distribution like Ubuntu. That makes all the difference.

"Linux" against the Linux kernel

CONNECTED:"Linux" is not just Linux: 8 pieces of software that make up Linux systems

The big difference here is in what we do mean from Linux. Linux means a lot of different things. Basically, Linux means the Linux kernel. A kernel is the core of an operating system.

We also refer to Linux distributions as simply "Linux". Linux distributions aren't just the Linux kernel, however. They contain many other pieces of software, such as the GNU shell utilities, the Xorg graphics server, the GNOME desktop, the Firefox web browser, etc. For this reason, some people think that the term GNU / Linux for "Linux distributions" is like Ubuntu, Mint, Debian, Fedora, Arch, openSUSE and others should be used.

Android uses the Linux kernel under the hood. Since Linux is open source, Google's Android developers can adapt the Linux kernel to their needs. Linux initially offers Android developers a prefabricated, already maintained operating system kernel, so that they do not have to write their own kernel. Many different devices are built this way - for example, the PlayStation 4 uses the open source FreeBSD kernel, while the Xbox One uses the Windows NT kernel found in modern versions of Windows.

In the Android settings, the Linux kernel version running on your device is even displayed under "About the phone" or "About the tablet".

The differences

CONNECTED:What is a Linux distribution and how do they differ from each other?

There is some debate over whether Android, this is considered a "Linux distribution". It uses the Linux kernel and other software, but it doesn't include much of the software that Linux distributions usually come with.

When you start an Android device, the Linux kernel loads just like it would on a Linux distribution. Much of the other software is different, however. Android does not include the GNU C library (glibc) used for standard Linux distributions, nor all of the GNU libraries you can find for a typical Linux distribution. An X server like Xorg is also not included, so you cannot run standard Linux graphical applications.

Rather than running typical Linux applications, Android uses the Dalvik virtual machine to essentially run applications written in Java. These applications are aimed at Android devices and the APIs (Application Programming Interfaces) provided by Android are not generally aimed at Linux.

Why you can't run the desktop Linux software on Android

CONNECTED:What is Unix and why is it important?

Because Android doesn't include a graphical X server or all of the standard GNU libraries, you can't just run Linux applications on Android. You need to run applications written specifically for Android.

Android has a shell like the one you'll find on Linux. There is no way to access it immediately. However, you can install an app like Android Terminal Emulator to get access to this terminal environment.

By default, there's not much you can do here. The terminal will still run in a restricted environment, so you can't get a full root shell without rooting your Android device. Many of the standard commands you might need are not available. Because of this, users who log their device in as root typically install the BusyBox application which is used to install many command line utilities. These utilities are used by applications to do things with their root access.

Why you can't run Android software on desktop Linux

CONNECTED:How to play Android games (and run Android apps) on Windows

Linux does not include the Dalvik Virtual Machine, so Android apps cannot run. The Dalvik virtual machine and all other Android software cannot simply be placed on a Linux desktop computer. You have to do more work to display Android apps, for example via Xorg, in a window on a standard desktop. In theory, with enough work, developers could run Dalvik on desktop Linux so that desktop Linux users could run Android apps on their desktops. The now dormant product Ubuntu for Android attempted to do something like this by integrating Ubuntu and Android on one phone and allowing those Android apps to run on the Ubuntu desktop.

BlueStacks and other Android app emulators, try this for Windows and Mac. They run Android on virtual hardware in a virtual machine and allow them to run Android apps - with a performance hit - on your desktop. However, these solutions have not proven very popular.


Google's Chrome OS is also based on Linux. Chrome OS, like Android, does not offer a standard X window system, so standard Linux applications cannot run on Chrome OS. Unlike Android, Chrome OS is more like standard desktop Linux distributions, so you can use developer mode to install the missing Linux desktop software.

Photo credit: ranti on Flickr, Anatomy and Physiology from Android