Google Investigating M1-Like OS Translation for Fuchsia

Posted on February 14, 2021 by Paul Thurrott in Android, Chrome OS, Google, Mobile with 4 Comments

A new Google proposal would see its upcoming Fuchsia platform “natively” run Android and Linux apps using a translation layer called Starnix. This new architecture appears to resemble how new M1-based Macs can run Intel-based apps using Rosetta 2.

“As we expand the universe of software we wish to run on Fuchsia, we are encountering software that we wish to run on Fuchsia that we do not have the ability to recompile, the proposal reads. “For example, Android applications contain native code modules that have been compiled for Linux. To run this software on Fuchsia, we need to be able to run binaries without modifying them.”

While Fuchsia remains largely a mystery, we know that Google is positioning this platform as an open-source replacement for both Android and Chrome OS. It will run both Android and Linux apps, like Chrome OS does today, and to date, the plan has been for those platforms to run in virtual machines (VMs), similarly to how Chrome OS works.

But this proposal changes the strategy to a “bring your own runtime” approach. So instead of running Linux and Android applications in VMs, Fuchsia could use Starnix to translate those apps into native binaries that Fuchsia can understand natively. This sounds a lot like Rosetta 2, the M1-based Mac component that translates Intel-based Mac apps so that they can run normally.

Further speculating, it would seem that the real goal here is for developers to create native Fuchsia apps, but that Starnix—like Rosetta 2 on M1-based Macs—can be used during a transition period.

Tagged with

Join the discussion!

BECOME A THURROTT MEMBER:

Don't have a login but want to join the conversation? Become a Thurrott Premium or Basic User to participate

Register
Comments (4)

4 responses to “Google Investigating M1-Like OS Translation for Fuchsia”

  1. obarthelemy

    ??? How is it M1-Like ? Rosetta is about translating binaries while the APIs stay the same, Fuchsia would be doing the exact contrary, running intact code while mapping it to different APIs. It's more like Windows Services for Linux v1 (not v2). Unless I'm misunderstanding something.

  2. JHancox

    This sounds like Wine, not Rosetta. Same processor architecture, but emulate the APIs that the app expects.

  3. wright_is

    So, Fuscia doesn't run on Intel or ARM processors is the real story here?

    Otherwise that comparison is a little misleading. It isn't converting the binary from Intel to ARM, for example, which is what Rosetta does; it is taking a binary designed for the same processor architecture, but another OS and putting in some sort of translation shim to enable it to run under Fuchsia, whether it is using a WINE like layer to capture the calls or stripping out the system calls to Linux or Android libraries and APIs and replacing them with Fuchsia native ones.

    That is an order of magnitude more complex than what Rosetta2 is doing. This is the equivalent of Rosetta2 taking a Windows program and translating it to run under macOS.

  4. IanYates82

    We've seen the other extremes of the approaches with WSL v1 vs v2 - they form a bit of a triangle of bridging OS/API vs instruction sets via various means.


    For the Mac, the OS API was still the same - only instruction translation was needed. No VM required.


    WSL v1 used translation of API calls but not the actual instructions - you still ran Intel code and no VM was required. WSL v2 didn't bother with API translation and is effectively a micro virtual machine.


    Windows 10X,when it gets its win32 compat, sounds like it's taking the lightweight VM approach too, although more for isolation & security.


    The Google approach may well straddling a couple of triangle points in that it could bridge instruction gap (Intel chromebook?) and the OS. Using VMs will bring a heavier weight to this - whether or not that's needed depends on how close fuscia is to Linux and how well they can isolate apps from each other.

Leave a Reply