Linux vs Android: Which is best for enterprise device fleets?
Linux can be an alluring option for an endless number of device use cases in business and enterprise, given the availability of well-supported distributions and existing tooling and software. It’s powerful, it’s secure, and it’s endlessly adaptable — in theory. But there are significant considerations worth making beyond APIs, apps, and initial cost when it comes to Linux. Considerations that could have major ramifications for your business down the road. And reasons Android (including AOSP) may just be a better fit for what you want to accomplish.
Are Android and Linux compatible?
Android and Linux are related, but not fully compatible, operating systems. You may know Android and Linux share a core architectural component: the Linux kernel. In this sense, Android is a Linux derivative.
But sharing a kernel does not mean sharing compatibility for applications, drivers, or external devices. These factors are largely determined at the operating system level. For example, you can’t install Android apps natively on Linux, and you can’t natively install Linux apps on Android. (Custom distributions of Android based on the Android Open Source Project could theoretically allow Linux native applications to run, given Android’s use of the Linux kernel, but there would be no assurance of their stability, functionality, or usability.)
Linux and mobile are not best friends
While Linux may look like the path of least resistance and greatest freedom for product and software development, it comes with major challenges of its own — but those challenges multiply rapidly when you’re developing for a mobile device (even one that’s tethered to power).
While Linux distributions designed for handheld products like the PinePhone (a Linux smartphone) exist, they remain far and away the exception to the rule. Implementing proper support for stacks like Bluetooth, the cellular modem, 3D acceleration, and the camera requires significant time and investment to achieve.
Linux distributions are also frequently not designed with robust mobile power management features, meaning that devices running on battery power will likely need extensive (and possibly one-off) optimizations not just at the OS level, but for application and peripheral behavior, too. After all: no mobile device is all that mobile if you can’t actually keep it untethered from the wall.
Peripheral support on Linux has greatly improved over the years, and many vendors now write drivers for Linux in industries where it is frequently used. But like every other piece of the distro you choose, there’s no guarantee those drivers will actually work (or work reliably) for your specific implementation.
Do you want to be a Linux company?
Frequently, we hear that Linux is an attractive option for devices because it is free, widely available, and has a large developer ecosystem. All of these things are true! But to successfully leverage them in a hardware product, you’ll need true Linux expertise from end to end.
Do you have a graphics framework you want to use? Which one? Why? Do you have a developer who knows it? These are questions you’ll need to answer, and you’ll be having this conversation ad nauseam across multiple facets of the OS — because you are building your own operating system.
Building a Linux distro that perfectly suits the needs of your product truly requires becoming a “Linux company.” We don’t mean that as a derogative in the slightest: Linux is great! The Android Open Source Project (AOSP) is based on the Linux kernel and underpins Esper’s own operating system. But not all Linux is created equal, and rest assured: choosing to build a product on Linux means you’ll be making serious, platform level decisions. If that sounds daunting, it probably should.
That’s not to say there isn’t a reason to build on Linux. There is (there are many, in fact). Industries like industrial robotics, automotive, and other real-time computing environments frequently demand a Linux approach. But if that’s not on your list of “must haves,” there are options that are frequently just better (and, notably, easier).
Linux for smart devices is already here
The solution to “the Linux trap” is often, paradoxically, Linux! Just maybe not the Linux you’re thinking of. (It’s Android. You saw that coming. Because I said it right up there.)
Android uses the Linux kernel. It’s also the world’s most popular operating system, and while most of us know it in that most popular form — the smartphone — the open source Android platform (AOSP) is successfully in use across hundreds of form factors (possibly thousands) globally. To discount Android as “just” a smartphone OS isn’t merely inaccurate, it’s just plain wrong.
All of those questions about the camera, telephony, and Bluetooth stacks can largely be set aside: Android has broad support for a huge variety of hardware and features native USB peripheral support. Just as importantly, Android offers the modern tooling and platform resources necessary to build exceptional software experiences. This isn’t your dad’s Java: you can code in cutting-edge cross-platform languages like Kotlin and build beautiful, native application experiences with tools like Flutter.
And as a mobile-first platform, Android was built from the ground up to support products that rely on persistent internet connectivity and deep cloud integration for mission critical functionality (Android is also entirely capable as an offline OS, we just don’t see much demand for it). Having these kinds of tools is essential for developing a complete device experience, and while analogs may be available on Linux, with Android this process is far more straightforward because the platform has been designed to rapidly build and iterate devices.
You need a partner in the Android business
Now, you may be thinking “David, aren’t you literally just describing building Android instead of building Linux? Isn’t that fundamentally the same thing?” And yes, it is! If you choose to build your own operating system based on AOSP (Android), you are still choosing to build an operating system. That’s a huge challenge. But it’s not one you need to tackle alone.
At Esper, we have our own OS based on AOSP, and we’ve added loads of additional functionality above and beyond the base platform — especially the kinds of features you need to deploy, manage, and update large fleets of devices. We provide the kinds of tools you not only don’t want to build on your own, but that you probably shouldn’t: highly scalable seamless provisioning, code-driven software deployment automation, and even Android OS security updates. This isn’t even getting to the stuff like picking a location provider, time service, or payment platform (all things we’re happy to help with).
If you’re making a decision as important as which platform your device is going to run, you owe it to yourself to consider Android. More than that, you probably want more than AOSP alone (that is, Android without GMS) can offer. Give us a shout, we’re more than happy to set up a demo of Esper’s Android management and OS solutions.