L'azienda Google sta sviluppando l'ambiente MicroFuchsia, che include una versione semplificata del sistema operativo Fuchsia, ottimizzata per l'esecuzione su macchine virtuali all'interno della piattaforma Android. Nel codice sorgente di Android è già iniziato l'assorbimento delle modifiche per garantire il funzionamento di MicroFuchsia. Per avviare le macchine virtuali con MicroFuchsia verrà utilizzato il framework AVF (Android Virtualization Framework) aggiunto in Android 13, realizzato sulla base del hypervisor KVM e degli strumenti crosvm.
Prima di questo, Google ha utilizzato AVF per eseguire l'ambiente 'Microdroid', utilizzato per isolare i componenti di sistema di terze parti in Android, e ha anche sperimentato l'avvio di sistemi guest con Chromium OS. Le ragioni per cui MicroFuchsia viene preparata per Android non sono state comunicate, ma si ipotizza che Google stia sviluppando un ambiente più efficiente e minimalista per l'esecuzione isolata dei servizi in Android, che consuma meno risorse rispetto all'ambiente Microdroid basato sui componenti di sistema di Android e sul kernel Linux.
Fuchsia si basa su un microkernel chiamato Zircon, sviluppato a partire dalle fondamenta del progetto LK, ampliato per l'uso su diverse classi di dispositivi, tra cui smartphone e computer personali. Zircon estende LK con il supporto per processi e librerie condivise, livello utente, sistema di gestione degli oggetti e un modello di sicurezza basato su capacitivity. I driver sono implementati come librerie dinamiche eseguite nello spazio utente, caricate dal processo devhost e gestite dal gestore dei dispositivi (devmg, Device Manager).
Durante il processo di avvio, viene utilizzato un gestore di sistema che include appmgr per creare l'ambiente di programmazione iniziale, sysmgr per formare l'ambiente di avvio e basemgr per configurare l'ambiente utente e organizzare l'accesso al sistema. Per garantire la sicurezza, è previsto un avanzato sistema di isolamento sandbox, in cui i nuovi processi non hanno accesso agli oggetti del kernel, non possono allocare memoria e non possono eseguire codice, mentre per accedere alle risorse viene applicato un sistema di spazi dei nomi che definisce i diritti di accesso disponibili. La piattaforma offre un framework per la creazione di componenti, che sono programmi eseguiti nel proprio sandbox e che possono interagire con altri componenti tramite IPC.
Fonte: opennet.ru
