Based on materials from android-softwares.com
Android is this Linux? It would seem that this is the question to which there should be a direct answer – yes or no. But instead, the user communities Android and Linux have been debating for years how things really are and cannot agree.
There are two factors that make it particularly difficult to find a clear answer to the question of whether Android and Linux are the same.
- People often use the word Linux to refer to a number of related, but uniquely different things.
- There is no clear, unambiguous and universally accepted definition of what makes it possible to count this or that software Linux.
The purpose of this material is to clarify why there is confusion about the different types of software that people can mean using the word Linux, and then discuss all the arguments that inevitably come up in any controversy about 'Android is Linux or not '.
- So what is Linux?
- Why Android – Linux?
- Why is Android not Linux?
- It does not use the standard kernel Linux
- Android does not include GNU software and libraries
- You cannot run apps Linux on Android – and vice versa
- Android is a Google product
- 'Open' status Android in question
- You cannot customize the OS Android – by default
- Conclusion
So what is Linux?
When someone says 'Linux', it may refer to the following things:
- Kernel Linux. It is a small but key part of the operating system. The kernel performs the function of interacting with the hardware of the device, providing services to the rest of the system and articulating tasks such as managing the processor or memory of the device. The kernel Linux, like any other kernel, can run exclusively as part of the operating system in a broader sense. The existence of an OS that consists solely of the kernel Linux is simply impossible. Since Android is a full-fledged operating system, we can safely exclude the definition of Android as a kernel Linux.
- Distribution Linux. It is an operating system that contains the kernel Linux and additional software such as utilities, libraries, a graphical interface, as well as pre-installed applications such as web browsers, text editors, music players, etc. This additional software was designed specifically to run on the kernel Linux, but it is not part of the kernel itself Linux. When it comes to operating systems that use the kernel Linux, the terms 'distribution' and 'operating system' are used interchangeably. Since anyone can take the kernel Linux and their own software and create their own operating system, there are currently countless distributions available Linux.
- GNU / Linux. Most distributions Linux are a combination of kernel Linux and GNU software, leading some people to argue that distributions Linux are the same as GNU / Linux. This is a subject for a separate discussion, so in order to simplify the explanation a little, the term 'distribution Linux' will be used throughout the material – just note that between the kernel Linux and the GNU software there is a strong connection.
In turn, there is no such confusion around the term Android. There are, however, two types of OS Android.
The first is the Android Open Source Project (AOSP), a project in which Google provides access to the source code Android. This code can be used to create a working operating system that can be installed on a smartphone or tablet, but in the end it will lack the functionality that most users expect from their experience with Android, the most a typical example is Google mobile services. It's a collection of apps and APIs from Google that for a large number of users is a core part of the Android experience, much like iTunes and the App Store are a core part of the macOS experience. AOSP is open source but does not provide the capabilities that the typical end user of an OS device would expect Android.
The second option is the OS Android on which your typical device runs, be it a smartphone or a tablet, in fact, it is based on AOSP, it may have a number of modifications introduced by the device manufacturer, and also significant the amount of proprietary code.
Most of the pros and cons for treating Android as Linux apply to both options Android, but there are a number of points where the answer will differ. And that will depend on whether we define Android as AOSP or as the operating system that your regular smartphone or tablet runs on.
Why Android – Linux?
There is only one real argument for treating Android as Linux, but this is a strong argument. Every smartphone or tablet on Android contains a core Linux. You can even see which kernel version is installed on your device. To do this, go to Settings – About device – Kernel version.
However, Android is not only the core Linux. It is a fully functional operating system that includes many additional libraries, graphical interface, applications, and more. So when we ask the question 'Android is this Linux?' We are actually asking 'Is Android the distribution Linux?'
Since it is not even possible to estimate the actual number of distributions Linux, it is all the more difficult to write a list of rules to determine what makes an operating system a distribution Linux.
In addition to the mandatory condition for the presence of a kernel Linux, the definition of a distribution kit Linux allows for a fairly loose interpretation. Therefore, the rest of the material will be devoted to the arguments that people most often come up against regarding Android as a distribution Linux.
Why is Android not Linux?
It does not use the standard kernel Linux
In order to create an operating system that meets the unique needs of mobile devices, the development team Android made a number of changes to the core Linux, including the addition of specialized libraries, APIs and tools, which are mostly taken from BSD or written from scratch specifically for Android.
Since the main argument for treating Android as a distribution Linux is based on the fact that Android uses the kernel Linux, it seems that this is the end of all disputes, everything is already quite obvious. However, it is not common for a distribution Linux to make changes to the kernel.
The kernel Linux is covered by the GNU General Public License, anyone is free to change its source code, which is what many distributions do Linux. When it comes to how significant changes the development team Android made to the core Linux, the Embedded Linux wiki concludes that the number of changes made by the team Android, 'is not particularly large and does not go beyond what is usually done with the kernel Linux OS developers based on it'.
Android does not include GNU software and libraries
If you agree that the presence of GNU software is a defining characteristic for a distribution Linux to the extent that we should treat distributions Linux as GNU / Linux, then Android can never be a distribution kit Linux. Android includes only a few of the GNU system libraries. Most notably, the development team Android developed a customized C library called Bionic instead of using the GNU C library.
And even if you disagree that a distribution Linux should include GNU software, it's hard to deny that the absence of GNU makes Android very different from most of the distribution community Linux.
You cannot run apps Linux on Android – and vice versa
If you pick a few randomly selected distributions Linux, chances are that the only common software component they all will have is the kernel Linux. In reality, Android has so little software in common with other distributions Linux that it is impossible to run regular applications Linux on Android.
The converse is also true. Applications for Android require special libraries Android, runtime and a number of other programs that are only in the OS Android, so by default you cannot run applications for Android on a platform other than Android.
Android is a Google product
Google may make the main source code Android publicly available through AOSP, but the next AOSP release will be closed. In fact, the AOSP website clearly states that “Google retains responsibility for strategic direction Android both as a platform and as a product.”
In addition, non-Google developers can participate in AOSP in a variety of roles, but the AOSP site makes it clear that the project is usually run by Google employees. And one more small fact: Google owns the rights to the name and logo Android, so if you are building an operating system based on the AOSP code, you will need to contact Google if you want to release your work under the name Android.
Despite the fact that some distributions Linux are closely related to specific companies (Canonical and Ubuntu immediately come to mind), it is not typical for distributions Linux to be developed in a closed and completely one organization.
'Open' status Android in question
Despite the recommendation of the Free Software Foundation directing developers to remove all proprietary software from their distributions Linux, there is no strict rule that would prohibit distributions Linux from containing proprietary software. In reality, many distributions include compiled binary drivers, also known as blobs. So the question is really: how open is Android compared to your typical distribution Linux?
While many open source enthusiasts agree that AOSP is far from being an ideal open source project, its code is freely available for editing and distribution by others.
However, by the time the AOSP reaches the user Android, a lot of proprietary code has been added to it, and in essence, there isn't much difference between what you perceive as' clean Android 'on devices like the Nexus or Pixel, and whatever has been modified by the manufacturer.
This does not necessarily mean that Android cannot be regarded as a distribution Linux, but it should be noted that most of the code that users can see and interact with is proprietary, so are mobile Google services and manufacturer modifications such as Samsung's TouchWiz.
Although many distributions Linux include proprietary code, for many people the term Linux is clearly associated with open source software. And this proprietary custom code makes it feel like Android is much more closed than the typical distribution Linux.
You cannot customize the OS Android – by default
While the distribution Linux is generally easy enough to modify at the operating system level, users Android by default cannot access the base OS on their smartphone or tablet. Sensitive sections are reliably protected from their interference. But this 'default' caveat does matter, as you can access sections normally private on your device using security holes Android – this is the process of getting rooted.
So, while Android is significantly less customizable than a typical distribution Linux, there are opportunities to access the underlying operating system.
Conclusion
So, back to the original question: is Android a distribution Linux? Basically, it all comes down to what you mean by distro Linux. If you agree that we should refer to distributions Linux GNU / Linux and not Linux, then the answer is no, because Android includes a very small portion of the GNU software.
If you define a distribution Linux as an operating system that includes a kernel Linux and meets one or more additional conditions, then the answer is most likely no. Despite the fact that each Android – smartphone or tablet includes a core Linux, Android does not fully correspond to any other characteristic of those that are usually associated with distributions Linux. For example, Android is clearly a product of one company, it is incompatible with regular applications for Linux, and even though AOSP is open source, that version Android, which we deal with on commercial devices, seems much more closed than one would expect from a distribution Linux, thanks to the proprietary custom code.
However, if you define a distribution Linux as an operating system that is based on the kernel Linux, then Android is a distribution Linux. This may be an unusual, highly specialized distribution, but it is the same distribution as Ubuntu, Fedora, Debian, and any other kernel-based operating system Linux.
What's your opinion? Is Android a distribution Linux simply because it has a kernel Linux in it? Or does the operating system have to meet a number of additional criteria to be considered a distribution Linux?