Could future Chromebooks with native Android and Linux apps run on Google’s Fuchsia OS?

Since 2016 when it first appeared, Google’s Fuchsia effort has been shrouded in mystery.

If you’re not familiar with Fuchsia, Google describes it as a “new open-source operating system” that can be scaled to run on small microcontrollers all the way up to traditional computing devices. Unlike Chrome OS, which runs on a Linux kernel, Fuchsia will have its own microkernel called Zircon.

Up until now, I didn’t see Fuchsia having much future impact to Chromebooks.

Sure the potential was there, but replacing Chrome OS isn’t what I’d call low-hanging fruit.

However, this finding from 9to5 Google has me rethinking things: Google is looking into Fuchsia support for native Android and Linux apps. And that screams “Chrome OS” to me.

Goodbye VMs and containers on Chromebooks

The idea here is that Google would implement a translation service called Starnix into Fuchsia.

At a high level, Starnix sounds similar to Apple’s Rosetta 2 solution for the new M1-based MacBook Air and MacBook Pro.

Rosetta 2 is a translation service that takes applications written for Intel x86 processors and allows them to run almost seamlessly on the ARM-based Apple Silicon M1 chip. I’ve used Rosetta 2 on my own M1 MacBook Air and have yet to encounter any software issues; it’s impressive.

Today on Chromebooks, both Android and Linux apps run in separate containers for security and platform reasons. And in the case of Linux apps, inside the container is a virtual machine. So there’s some resource overhead here.

That’s what makes Starnix different. It would allow current Android and Linux apps to run natively, albeit in a translation method.

This technical description illustrates the difference from a Linux app perspective:

The most direct way of running Linux binaries on Fuchsia would be to run those binaries in a virtual machine with the Linux kernel as the guest kernel in the virtual machine. However, this approach makes it difficult to integrate the guest programs with the rest of the Fuchsia system because they are running in a different operating system from the rest of the system.

Fuchsia is designed so that you can bring your own runtime, which means the Fuchsia system does not impose an opinion about the internal structure of components. In order to interoperate as a first-class citizen with the Fuchsia system, a component need only send and receive correctly formatted messages over the appropriate zx::channel objects.

Rather than running Linux binaries in a virtual machine, starnix creates a Linux runtime natively in Fuchsia. Specifically, Linux program can be wrapped with a component manifest that identifies starnix as the runner for that component. Rather than using the ELF Runner directly, the binary for the Linux program is given to starnix to run.

Technical mumbo-jumbo aside: What could this mean for Chrome OS and Chromebooks?

What are the benefits of Fuchsia and Starnix?

It would certainly be feasible for Google to transition from Chrome OS to Fuschia, while not only maintaining near- or total compatibility, but also removing some overhead required to run Android and Linux apps. Essentially, these (particularly Linux) could see a noticeable performance improvement.

Does all of this mean Google will make that transition? No, of course not. However, it would make sense in the long-term. Not only could end-users benefit from better performance but Google wouldn’t have to rely on using the Linux kernel to underpin Chrome OS.

An early build of Google Fuchsia running on the Pixelbook. Image courtesy ArsTechnica

And it would add the potential for a single kernel across all Google devices: Chromebooks, yes, but also Android phones, Google Nest speakers and smart displays, etc…

I’m sure that there would be some pain points involved in any such transition as it pertains to Chromebooks. I wouldn’t expect a Fuchsia-based Chromebook to “just work” on day one; it takes time to mature a platform, as we’ve seen from a decade of Chrome OS.

But I’m intrigued by this effort if it can make Chromebooks better in the long term.

8 thoughts on “Could future Chromebooks with native Android and Linux apps run on Google’s Fuchsia OS?

  • February 14, 2021 at 1:02 pm

    > “And in the case of Linux apps, inside the container is a virtual machine.”

    Actually, in the case of Linux apps, inside the virtual machine is a container.

  • February 14, 2021 at 1:24 pm

    So the real story here is Starnix. We’re all beginning to realize or at least acknowledge that Fuchsia has zero chance of popularity if it has to rely on applications written exclusively for Fuchsia. Also, it will have a much better chance of catching on if it just seamlessly replaces an already familiar Chrome OS someday. Kind of the way that Windows based on NT replaced an already familiar Windows based on MS DOS. That just makes growing the success and momentum of Chrome OS even more strategically critical to Google.

  • February 16, 2021 at 8:48 am

    Rosetta and Starnix address different kinds of virtualization. Rosetta implements a machine language instruction set on hardware that implements a different one (X86 on ARM); Starnix apparently implements an operating system system call interface on an operating system that implements a different one (Linux on Fuchsia). Starnix is comparable to Wine, which implements the WIN-32 system call interface on Linux. The software that currently lets Android apps run on ChromeOS is an interesting case that illustrates the fuzziness of the term “system call interface”: even though both Android and ChromeOS have a Linux kernel, and thus on some internal level the same system call interface, the interfaces actually made available to applications are very different. Running Linux applications on ChromeOS does not actually require the extra virtualization that Google does; you just have to bypass the sandbox that ChromeOS normally puts applications in by invoking developer mode. But of course you might not want to do that, and Google certainly doesn’t want you to.

    In theory, a new system kernel that implements only what is needed to support the use cases Google is interested in could be more efficient and reliable than one that also has to support other use cases. But the new system always starts way behind the older one in optimization and debugging, and may never actually catch up. There is no substitute for real users trying to get their real work done with a system to uncover the performance, reliability, and security issues that really matter.

  • February 22, 2021 at 1:29 am

    Paul is correct, Rosetta and Starnix have quite distinct purposes and they are far apart in terms of implementation (so far apart in fact that using both techniques at the same time is arguably a viable approach that, in the right circumstances, could be used to good effect).

    The reference to WINE in Paul’s comment, however, might be misleading. The Google developers working on Starnix cite Microsoft’s Windows Subsystem for Linux (Version 1) and the QNX microkernel as the inspirational precursors to Starnix. There is a link to the full proposal for Starnix in the 9to5Google article. It is worth the read.

    As a platform, Fuchsia, if it can achieve the goal of safe and efficient virtualisation of Android and Linux apps, could indeed achieve the status of a universal platform across a great variety of device types. For that to happen Starnix will have to work. So, it is going to be interesting to watch how things progress.

  • February 22, 2021 at 7:14 am

    Hi Kevin Long time fan but rumor has it you no longer use a Chromebook is that true? Surprised you still have this webpage…

    • February 22, 2021 at 7:37 am

      Hey Carmine! Where did you hear that rumor? I have and use multiple Chromebooks mostly full time, 7 days a week. 🤷🏼‍♂️ I did build a Windows gaming PC this past summer and I bought an M1 McBook Air recently. I’ve always had multiple devices on different platforms though. I find that it offers me a broader perspective to base my writing on. Cheers!


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.