All News | Boards | Chips | Devices | Software | LinuxDevices.com Archive | About | Contact | Subscribe
Follow LinuxGizmos:
Twitter Google+ Facebook RSS feed
*   get email updates   *

Google’s Fuchsia OS will support Linux apps

Jun 20, 2018 — by Eric Brown — 5006 views

Google’s non-Linux-based Fuchsia OS has added an emulator for running Debian Linux apps. Like its upcoming Linux emulator for Chrome OS, Fuchsia’s “Guest” app will offer tighter integration than typical emulators.

Google has added a Guest app to its emergent and currently open source Fuchsia OS to enable Linux apps to run within Fuchsia as a virtual machine (VM). The Guest app makes use of a library called Machina that permits closer integration with the OS than is available with typical emulators, according to a recent 9to5Google story.


Chromebook Flip C101

Last month, Google announced a Project Crostini technology that will soon let Chromebook users more easily run mainstream Linux applications within a Chrome OS VM. This week, Acer’s Chromebook Flip C101 joined the short list of Chromebooks that will offer Linux support later this year.

While it’s encouraging that Chrome OS will soon support Linux apps is addition to Android, it’s not entirely surprising. Both Android and Chrome OS are based on Linux. Yet, one of the first things Google emphasized when it unveiled Fuchsia in 2016 was that it’s not based on the Linux kernel.


Fuchsia logo

To some, Fuchsia seemed to be something of a betrayal considering how Linux not only forms the basis for Android and Chrome OS but also the Google enterprise platforms. Why add another Windows or iOS when we were getting so close to everyone sharing a common Linux foundation?

No doubt, Google has some very good reasons for avoiding Linux. One reason may be the age and complexity of Linux. By starting from scratch, Google can escape that aspect and deliver more elegant, up-to-date code with fewer targets for hackers. Google is also baking secure updates deeply into the OS, and unlike Linux, is isolating applications from having direct kernel access.

 
Open for now

Back in 2016, we thought Google might be skipping over Linux to shift to a proprietary OS that it could control the way Apple dictates all things iOS. That may still happen, but for now Fuchsia is an open source project.

Some also speculated at time that considering the trim little microkernel, Google was bypassing Linux due to its inability to scale downward into the MCU realm. Yet, MCU-based IoT does not appear to be the current focus of Fuchsia. Several reports, including a TechRadar post last week, have said that Fuchsia is intended to replace both Android and Chrome OS, and the combined platform will eventually be called Google Andromeda.

Earlier this year, 9to5Google reported that Fuchsia would include separate UIs — an Armadillo UI for phones and a Capybara UI for desktops — and like Android Things and other new Android variants, would tightly integrate Google Assistant voice technology. Essentially, this is the same idea that was behind Microsoft’s failed plan to offer a common Windows for phones and laptops, or Canonical’s defunct “convergence” version of Ubuntu.

 
Guest ex Machina

Whatever Fuchsia’s destiny, Google needs to attract mature applications, as well as developers, and the best way to do that is to add Linux app compatibility. The new Guest app, which initially supports Linux-based platforms including Debian, works with the Machina library to accomplish this in a way that goes beyond what you can get from QEMU, suggests 9to5Google.



Simplified Fuchsia architecture
Source: 9to5Google

Google describes Fuchsia’s Machina as “a library that builds on top of the Zircon hypervisor to provide virtualized peripherals that integrate with a garnet system.” Zircon is the Fuchsia microkernel, based on Little Kernel (LK), and formerly called Magenta. Garnet is the layer that sits directly atop Zircon and offers device drivers, the Escher graphics renderer, Fuchsia’s Amber updater, and the Xi Core engine for the Xi text and code editor. Other layers include Peridot for app design, and on top, Topaz, a Flutter-supported app layer.

Machina adopts the Virtio virtualization standard, which is also used by the Linux Kernel-based Virtual Machine (KVM). It makes use of Virtio’s vsock virtual socket, “which can open direct channels between a host operating system and its guest, to allow for conveniences that would be otherwise impossible,” says 9to5Google.

This extra effort will likely enable fast mouse performance, automatically adjusted screen resolution, and support for multiple displays, file transfers, and copy and paste, says the story. This appears to be much like the allegedly superior emulation that is expected with Google’s Project Crostini for running Linux apps on Chrome OS. The news of the Guest app follows earlier reports that suggested that Google is building an Android Runtime into Fuchsia rather than depending on emulation to run Android apps.

App emulators should be viewed with some skepticism. Most of the mobile Linux OS contenders promised some sort of Android app compatibility, but they have generally failed to deliver. Still, by building emulation deeply into the stack from the start rather than adding an emulator on later, Fuchsia may well offer Linux developers an emulator that they can live with.

This article is copyright © 2018 Linux.com and was originally published here. It has been reproduced by this site with the permission of its owner. Please visit Linux.com for up-to-date news and articles about Linux and open source.

(advertise here)


Print Friendly, PDF & Email
PLEASE COMMENT BELOW

4 responses to “Google’s Fuchsia OS will support Linux apps”

  1. Jack Smith says:

    Fantastic news and not surprised.

  2. Jack Smith says:

    It is not done with emulation. It is sand boxed and the GNU/Linux runs native instructions on the processor with Crostini. It is done the same way with Fuchsia.

  3. sulfide says:

    Just please don’t make me write dart to make fuchsia OS gui’s

  4. Jack Smith says:

    Why? Dart is actually a great language and much prefer over JS.

Please comment here...