Google is developing the MicroFuchsia environment, which includes a trimmed-down version of the Fuchsia operating system optimized for running in virtual machines on the Android platform. Changes are already being accepted into the Android codebase to support MicroFuchsia. The Android 13 framework AVF (Android Virtualization Framework), built on the KVM hypervisor and crosvm tooling, will be used to run virtual machines with MicroFuchsia.
Previously, Google used AVF to run the 'Microdroid' environment, utilized for isolating third-party system components in Android, and also experimented with running guest systems with Chromium OS. The reasons for preparing MicroFuchsia for Android have not yet been disclosed, but it's believed that Google is developing a more efficient and minimalist environment for isolated service execution in Android, which consumes fewer resources than the Microdroid environment based on Android system components and the Linux kernel.
Fuchsia is based on the Zircon microkernel, which is derived from the LK project, and has been extended for use across 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 security model based on capability. Drivers are implemented as user-space dynamic libraries loaded by the devhost process and managed by the device manager (devmg, Device Manager).
During boot, a system manager is used, which includes appmgr for creating the initial program environment, sysmgr for forming the boot environment, and basemgr for configuring the user environment and organizing system login. An advanced sandbox isolation system ensures security, where new processes have no access to kernel objects, cannot allocate memory, and cannot execute code. Resource access is managed through a namespace system that defines available permissions. The platform provides a framework for creating components that are programs running in their own sandbox, able to interact with other components via IPC.
Source: opennet.ru
