Fuchsia OS intends to implement support for launching unmodified Linux programs

Developers from Google published plan implementation in the operating system Fuchsia a mechanism for running unmodified programs compiled for Linux. It is planned to provide a “starnix” interlayer for Linux programs to run in user space, providing compatibility with the Linux ABI.

In the developed layer, the Linux kernel system interfaces are implemented in a handler that is launched as a process for the Fuchsia OS that runs in user space and translates requests from Linux programs to the corresponding Fuchsia subsystems. It is noted that during the development of the project, many Fuchsia subsystems will have to be modified to implement all the system interfaces available in Linux. The starnix architecture is very similar to the Windows Subsystem for Linux used by Windows to translate Linux system calls to Windows system calls.

The starnix code is planned to be implemented in the Rust language to minimize possible vectors for the occurrence of vulnerabilities that can potentially be used to elevate the privileges of a Linux process to the starnix process. To ensure safety in starnix, the standard Fuchsia protection mechanisms will be used whenever possible. For example, when accessing system services such as the file system, networking stack, or graphics subsystem, starnix will only translate requests, converting the Linux ABI to Fuchsia
System ABI, allowing for the same restrictions that apply to regular Fuchsia processes. This will also implement Linux-specific authorization mechanisms, for example, defining in what situations one Linux process has the right to terminate another.

Support for launching Linux applications has been developed by the Fuchsia developers in the past, but they experimented with an implementation that works by analogy with how the launch of Linux applications in Chrome OS is organized. For Linux compatibility, Fuchsia suggested the Machina library, which allowed running Linux programs in a special isolated virtual machine formed using a hypervisor based on the Zircon kernel and Virtio specifications.

/Media reports.