Google sta lavorando per fornire versioni complete del browser Chrome per il sistema operativo Fuchsia. Attualmente, Fuchsia offre già un motore browser basato sulla codebase di Chromium per eseguire applicazioni web isolate, ma il browser come prodotto autonomo e completo per Fuchsia non era disponibile, e la piattaforma si è sviluppata principalmente per dispositivi IoT e consumer, come Nest Hub. Recentemente, la situazione è cambiata e sono iniziate a svilupparsi capacità di Fuchsia destinate all'uso come piattaforma desktop.
Incluso si sviluppa un insieme di modifiche che rendono possibile la fornitura di una versione completa di Chrome su Fuchsia. Si prevede che la versione iniziale di Chrome per Fuchsia sia pronta per il rilascio di Chrome 94, previsto per il 21 settembre. Il lavoro di porting procede gradualmente: inizialmente si offre la possibilità di costruire una versione ridotta, in cui alcune funzionalità sono sostituite da stub, che vengono poi sostituite con implementazioni funzionanti del codice, tenendo conto delle specificità di Fuchsia. Ad esempio, si sta adattando per Fuchsia il vassoio di sistema, il caricamento dei file, la funzione Click To Call, la gestione dei dispositivi rimovibili, la sincronizzazione, le directory utente, le applicazioni PWA, l'output delle informazioni sulla memoria e il carico della CPU e l'importazione delle impostazioni da altri browser.
Ricordiamo che il sistema operativo Fuchsia è in sviluppo da Google dal 2016, tenendo conto delle carenze in termini di scalabilità e sicurezza presenti nella piattaforma Android. Il sistema si basa su un microkernel chiamato Zircon, derivato dai lavori del progetto LK, esteso per l'uso su diverse classi di dispositivi, inclusi smartphone e computer. Zircon estende LK con supporto per processi e librerie condivise, un livello utente, un sistema di gestione degli oggetti e un modello di sicurezza basato su capability. I driver vengono implementati come librerie dinamiche che operano nello spazio utente, caricate dal processo devhost e gestite dal manager dei dispositivi (devmg, Device Manager).
Fuchsia ha un'interfaccia grafica dedicata, sviluppata in Dart utilizzando il framework Flutter. Il progetto include anche il framework Peridot per la creazione dell'interfaccia utente, il gestore pacchetti Fargo, la libreria standard libc, il sistema di rendering Escher, il driver Vulkan Magma, il gestore composito Scenic, le file system MinFS, MemFS, ThinFS (FAT in Go) e Blobfs, oltre al gestore di partizioni FVM. Per lo sviluppo di applicazioni, sono supportati i linguaggi C/C++, Dart e, per i componenti di sistema, è consentito l'uso di Rust, mentre nel stack di rete è inclusa l'implementazione in Go e nel sistema di build è usato Python.

Durante il processo di avvio viene utilizzato un gestore di sistema, che comprende appmgr per la creazione dell'ambiente di esecuzione iniziale, sysmgr per la formazione dell'ambiente di avvio e basemgr per la configurazione dell'ambiente utente e l'organizzazione dell'accesso al sistema. Per garantire la sicurezza, è proposta un avanzata sistema di isolamento sandbox, in cui nuovi processi non hanno accesso agli oggetti del kernel, non possono allocare memoria e non possono eseguire codice; l'accesso alle risorse viene gestito attraverso un sistema di spazi dei nomi che definisce i diritti disponibili. La piattaforma offre un framework per la creazione di componenti, che sono programmi eseguiti nel proprio sandbox, capaci di interagire con altri componenti tramite IPC.
Fonte: opennet.ru
