Google porting Chrome to Fuchsia OS

Google is working to provide complete builds of the Chrome browser for Fuchsia OS. Fuchsia already provides a browser engine based on the Chromium codebase to run standalone web applications, but the browser as a standalone product was not available for Fuchsia, and the platform itself was primarily developed for IoT and consumer devices such as the Nest Hub. Recently, the situation has changed and the development of Fuchsia capabilities aimed at using it as a desktop platform has begun.

This includes a set of changes that make it possible to ship full-fledged Chrome to Fuchsia. The initial build of Chrome for Fuchsia is planned to be ready for the release of Chrome 94, scheduled for September 21st. Porting work is carried out gradually - at first, it is possible to build a stripped-down version, in which some features are replaced with stubs, which, as they are ported, are replaced with working implementations of code that takes into account the specifics of Fuchsia. For example, adaptation is underway for Fuchsia system tray, file uploads, Click To Call, work with removable media, synchronization, user directories, PWA applications, displaying information about memory and CPU load, and importing settings from other browsers.

Recall that the Fuchsia OS has been developed by Google since 2016, taking into account the lack of scaling and security available in the Android platform. The system is based on the Zircon microkernel, based on the developments of the LK project, extended for use on various classes of devices, including smartphones and personal computers. Zircon extends LK with support for processes and shared libraries, a user level, an object handling system, and a capability-based security model. Drivers are implemented as user-space dynamic libraries loaded by the devhost process and managed by the device manager (devmg, Device Manager).

Fuchsia has its own graphical interface written in Dart using the Flutter framework. The project also develops the Peridot user interface framework, the Fargo package manager, the libc standard library, the Escher rendering system, the Magma Vulkan driver, the Scenic composite manager, the MinFS, MemFS, ThinFS (FAT in Go language) and Blobfs file systems, as well as the FVM partitions. For application development, support for C / C ++, Dart is provided, Rust is also allowed in system components, in the Go network stack, and in the Python language build system.

Google porting Chrome to Fuchsia OS

The boot process uses the system manager, which includes appmgr to create the initial software environment, sysmgr to build the boot environment, and basemgr to set up the user environment and organize login. To ensure security, an advanced sandbox isolation system is proposed, in which new processes do not have access to kernel objects, cannot allocate memory and cannot run code, and a namespace system is used to access resources, which determines the available permissions. The platform provides a framework for creating components, which are programs that run in their sandbox that can interact with other components via IPC.

Source: opennet.ru

Add a comment