Petr Hosek, a capo del team di Google responsabile dei sistemi di build, compilatori e strumenti per sviluppatori, ha presentato il primo dispositivo che sarà dotato del sistema operativo Fuchsia. Il firmware basato su Fuchsia inizierà a essere distribuito nei fotogrammi intelligenti Nest Hub come parte di un aggiornamento sperimentale per i partecipanti al Google Preview Program.
Se durante l'implementazione pilota non sorgono problemi imprevisti, il firmware basato su Fuchsia sarà applicato anche ai dispositivi degli altri utenti di Nest Hub, che non noteranno differenze poiché l'interfaccia, costruita sul framework Flutter, rimarrà la stessa; cambieranno solo le sue componenti a basso livello del sistema operativo. In precedenza, nei dispositivi Google Nest Hub emessi dal 2018, che combinano le funzioni di fotogramma per foto, sistema multimediale e interfaccia per la gestione della casa intelligente, è stato utilizzato un firmware basato su Cast shell e Linux kernel.
Ricordiamo che nell'ambito del progetto Fuchsia, Google sviluppa dal 2016 un sistema operativo universale, capace di funzionare su qualsiasi tipo di dispositivo, dai workstation e smartphone alla tecnologia embedded e di consumo. Lo sviluppo tiene conto dell'esperienza nella creazione della piattaforma Android e considera le carenze nell'area della scalabilità e della sicurezza.
Il sistema si basa sul microkernel Zircon, derivato dai risultati del progetto LK, esteso per l'applicazione su diverse classi di dispositivi, inclusi smartphone e computer personali. Zircon estende LK con il supporto per processi e librerie condivise, livello utente, sistema di gestione degli oggetti e modello di sicurezza basato su capability. I driver sono realizzati come librerie dinamiche che operano nello spazio utente, caricate dal processo devhost e gestite dal manager dispositivi (devmg, Device Manager).
Per Fuchsia è stato sviluppato un'interfaccia grafica personalizzata, scritta in linguaggio Dart utilizzando il framework Flutter. Il progetto include anche lo sviluppo di un framework per la creazione di interfacce utente chiamato Peridot, il gestore pacchetti Fargo, la libreria standard libc, il sistema di rendering Escher, il driver Vulkan Magma, il gestore di composizione Scenic, i file system MinFS, MemFS, ThinFS (FAT in linguaggio Go) e Blobfs, oltre al gestore di partizioni FVM. Per lo sviluppo delle applicazioni, è supportato l'uso dei linguaggi C/C++, Dart, l'uso di Rust è consentito nei componenti di sistema, Go è usato nello stack di rete, e Python nel sistema di build.

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
