Qais Yousef

Geek/Engineer - Kernel Hacker - Low Level Software - Views my own

github: qais-yousef twitter: @_qyousef

What makes Android the best Linux Distro?

Aug 16, 2020

You might not have thought of Android as a Linux Distro before because its business model is indeed different to what is traditionally attributed to a Linux Distro. But in reality, it really is nothing but that.

Android provides the same suite of services:

  1. LTS kernel support.
  2. Package Manger (Google Play Store).
  3. A framework to build applications and libraries, natively or via Java Framework.
  4. Regular bug fixes and security updates.

But unlike traditional distros, you can’t pick an Android release yourself and install it in your system. As we will see, this is both a strength and a weakness. Although worth noting, CyanogenMod did allow that at some point. I certainly used that in the past to update my device’s Android version once it become sufficiently old. I heard that other similar projects are still floating around, but I haven’t used any as in today’s world, using banking and some multimedia applications requires unrooted device to ensure they operate properly. So it is no longer a viable option, on your daily device at least.

Installing CyangenMod required replacing the bootloader and rooting the device. Both of which make the secure world lose trust of the normal world (assuming the secure world wasn’t replaced already). Banking apps and multimedia apps (like Netflix) rely on the secure world to operate correctly. Netflix for example won’t be able to provide all these movies if it can’t guarantee it won’t be copied by any person streaming it, hence relies on secure world for playback. If the secure world loses trust of the normal world (userspace + kernel) then it won’t co-operate to perform the requested functionality as it assumes it’s being instrumented by a malicious actor.

Mind you, I haven’t seen at the current state of affairs for a while, so there might have been development that I missed.

My view about Android being the best distro is certainly purely subjective here, but numbers speak too. It is on billions of devices; I am not aware of any other distro who achieved this feat. Linux is dominant in server markets, true, but those usually have a team(s) managing and maintaining them at the user end. So maybe I should clarify that the focus here is Linux as a General Purpose OS for the average user that needs to use computing to aid with normal every day problems.

So, what makes Android have this extended reach then?

Built for Linux

All of Android devices are built for Linux. That is the SoC (which varies a lot more than traditional laptop/desktop markets) is brought up and tested on Linux. Similar the board/platform that houses the SoC is brought up and tested on Linux. No wonder that the final product is much better tuned and tweaked to take best advantage of the hardware its running on.

Traditional distros do a great effort in testing, but it’s usually on devices that are NOT built for Linux. It’s the OEMs and all hardware vendors who need to act in here. And that’s the major gap that prevents Linux from lifting off on laptops/desktops.

Like Windows, Android based platforms are optimized across the chain

It’s a variation of the above. But worth its own point because it’s not just about taking full advantage of the hardware; but the whole userspace/kernel/secure world interaction is taken into account to guarantee the best possible user experience.

For traditional distros; this is another major gap. If the user was knowledgeable enough they can replicate some of this. But it’s a tough job without access to datasheets and a lot of internal knowledge that only OEMs/SoC vendors have.

If you ever had to spend time hunting how to get Silverlight on your Linux system, or had to google synaptics tool to fix your touchpad, you’ll certainly know what I am talking about here. When you bought your Windows laptop, your multi-touch touchpad Just Works (TM).

Android has compatibility testing to ensure consistency

Android users might complain about lack of updates from their OEMs sometimes, but regardless of what Android version you’re running, the experience remain consistent. And that is because while OEMs do customize a lot to differentiate, but they still have to pass Google’s compatability testing to sell the device as an Android compatible one and make use of other Google services like their Play Store.

Sometimes OEMs push their own special features that Google doesn’t natively support, but these ones ultimately end up part of standard Android; one way or another.

I think traditional distros have been doing a good job over here in keeping their user experience consistent too. But it doesn’t go as far as Android does. You might still end up with weird issues on your hardware and you can’t guarantee to be able to fix it on your own, or find a place to ask formally for support.

Google’s unique business model that can generate money from Android in spite of it being free

I am speculating over here. But AFAIK not many distros that target General Purpose Systems (laptops/desktops) have as sustainable of a business model as Android has.

Whether others can follow similar business model or not is not something I can personally answer. On one hand, the other systems are far more open than Android in the ability of any person to take it over and modify it. But at the same time they don’t have that extra attention and guarantees you get when using Android because they (Android) have OEMs and vendors playing ball with them.

Can we see Linux being the norm on desktops/laptops?

Absolutely! I believe the laptop and desktop markets are ripe for Linux dominance and they need a person that is willing to invest more in this final mile of effort required to make this happen.

The traditional argument that Linux is not user friendly is no longer true IMHO. And the biggest challenge is getting OEMs and vendors on board to design for Linux. I think distros need to learn more from Android in terms of creating a business model that attracts hardware manufacturers to design and ship with their distros; and provide support for potentially upstreaming efforts or managing out-of-tree drivers. Not to mention tweaking and tuning for best possible user experience whether that is in regards to performance, power or whatever marketing goal OEMs wants to pursue.

When you buy an expensive piece of hardware, you certainly don’t want to spend the time to tune it; or few of us really want that. Most users just want a tuned and robust device that works out of the box with long term support from the hardware manufacturer too. And that what stands between Linux and dominance in the laptop/desktop markets. And that is what makes Android the best Linux distro available now. For general purpose computing of course ;-)