Android is the world’s most beloved consumer operating system (OS), powering billions of smartphones, tablets, smart TVs, and other gadgets all around the globe. While there are many other popular operating systems in use, none have accomplished quite such a broad reach as Android. The OS’ success story is a long and winding one but today we’re looking back to the true origin story.
Although Google (rightly) takes the credit for Android’s development, the operating system’s early building blocks owe their existence to the similarly ubiquitous but lesser-recognized Linux OS. Today, Linux distributions span Debian, Fedora, Ubuntu, and many, many others, powering PCs, servers, and Raspberry Pis all around the globe.
All of these operating system variants, Android included, trace their origins to an announcement made 30 years ago today, on August 25, 1991, the day that Linux creator Linus Torvalds, aged just 21, first revealed he was working on a new OS. A project that would later provide the Linux kernel used to build the Android OS you might be reading this on.
Hello everybody out there using minix —
I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. This has been brewing since April, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat.
Linus Torvalds — 25 Aug 1991 on the newsgroup comp.os.minix
From Linux to Android
The first public Linux source code was released on September 17, 1991, but Android’s modern journey didn’t begin until much later, in October 2003. Between these dates, Linux underwent wide-sweeping revisions, transforming it from a rudimentary OS into something more suitable for a modern computing environment. Importantly, Linux’s codebase is open source, helping it receive contributions from developers all around the world, as well as spinning off countless OS forks for purposes ranging from desktop PCs to supercomputers and, eventually, smartphones.
The development journey to the OS we know today was a gradual one — the XFree86 graphical interface arrived in 1994, while support for multiple processors arrived with Linux 2.0 in 1996. KDE introduced its first advanced desktop graphical user interface for the OS in 1998, while USB devices were finally supported with Linux 2.4 in 2001. All of these developments are clearly essential for desktops, servers, and mobile devices. The earliest versions of Android were based on Linux 2.6, which was released in 2003. At the time of writing, your Android smartphone is almost certainly running a Linux kernel based on version 4 or above.
The earliest versions of Android were based on Linux 2.6.
Android Inc. was founded in 2003 but the decision to use Linux as the base for a smartphone operating system only came following the company’s acquisition by Google in 2005. This was followed up by the creation of the Open Handset Alliance. Led by Google, this 34 member-strong group decided on an open standard for mobile devices that culminated in the unveiling of Android 1.0 on November 5, 2007. Controversially, members are forbidden from using non-Google forks of Android, which doesn’t feel very in keeping with the spirit of Linux’s open-source origins.
Of course, Android bears no obvious resemblance to other popular Linux distributions, such as Debian or Ubuntu. Android has its own mobile-oriented UI, APK app file type, Java virtual machine for running apps, bespoke power manager, and countless other tools built into the OS that aren’t compatible with other distributions. That’s all the extra work that Google put in over the past two decades to optimize Android for mobile and other devices. Even so, Android still shares a core component and history with other distributions: the Linux kernel.
Why base Android on Linux anyway?
What’s with this word “kernel”? Well, it’s an important building block that forms part of an OS, but it doesn’t encompass everything. The user interface or bundled software that might form the greater OS isn’t part of the kernel. Instead, the Linux kernel manages hardware resources, such as the CPU, memory, or Bluetooth. You can read more about this in the article below.
This difference with “PC Linux” was reflected in the fact that Android code was removed from the kernel in 2010 (Linux 2.6.33), leaving the two to diverge somewhat. Instead, Google forked the open-source Linux kernel, imbuing it with the features needed to support Android-specific APIs, ranging from the UI to power management, networking, and security. The two reunited in 2012 and modern Android phones make use of the mainline kernel’s Long Term Stable (LTS) branch. In 2017, Google helped the Linux community extend LTS support from two to six years to ensure a longer update cycle.
But if Android is so meaningfully different from other Linux variants nowadays, why bother to base the operating system on it in the first place? Well, there are a few very good reasons.
Android is still in the Linux family — it’s just very a distant cousin.
Building a kernel from scratch is hugely time-consuming. Linux was, and continues to be, open source and provides many of the core features needed to build devices ranging from supercomputers to mobile gadgets. Linux 2.6, on which early Android was based, included a driver layer to enable product vendors to abstract and optimize unique hardware, a robust networking stack and toolkit, and process management to allocate app resources, among other features. Why spend money and time reinventing the wheel?
Importantly, many of Linux’s early benefits continue to be relevant to Android smartphones today. For example, the Hardware Abstraction Layer (HAL) allows manufacturers to innovate on the hardware side and has helped Google speed up the rate of OS updates. Meanwhile, Linux’s permissions-based security model is at the core of Android’s expansive app permissions system. The Linux kernel has proven to be incredibly flexible and powerful even 30 years down the line.
It’s hard to believe that the billions of Android devices in use today can trace their origins back to Linus Torvalds’ humble UseNet newsgroup post from 30 years ago. Your smartphone may be unrecognizable from that early OS but Android remains Linux at its core. It’s just formed its own very distinct branch on the ever-growing Linux evolutionary tree.