Google ha pubblicato la versione del sistema operativo Fuchsia 14, sulla quale sono basati i preliminari aggiornamenti del firmware per i fot frame Google Nest Hub e Nest Hub Max. Il sistema operativo Fuchsia è in sviluppo da parte di Google dal 2016, tenendo conto delle limitazioni nella scalabilità e nella sicurezza presenti nella piattaforma Android.
Le principali novità in Fuchsia 14:
- Ampliate le funzionalità dello strato Starnix, che supporta l'esecuzione di programmi Linux non modificati tramite la traduzione delle interfacce di sistema del kernel Linux in chiamate ai rispettivi sottosistemi Fuchsia. Nella nuova versione è stato aggiunto il supporto per il montaggio di filesystem remoti, xattrs per collegamenti simbolici sono stati aggiunti in fxfs, il sistema di chiamata mmap() include punti di tracciamento, la informazione in /proc/pid/stat è stata ampliata, è stato incluso il supporto a fuchsia_sync::Mutex, implementato il supporto O_TMPFILE, pidfd_getfd, sys_reboot(), timer_create, timer_delete, times() e ptrace(), nella realizzazione di ext4 è stato impiegato un sistema di cache di file di sistema.
- Migliorato il stack Bluetooth. Aggiunto il supporto per l'audio nel profilo Bluetooth HSP (HandSet Profile) e ridotti i ritardi nella trasmissione dell'audio tramite profilo A2DP.
- In Matter, l'implementazione dello standard per la connessione di dispositivi smart home, è stato aggiunto il supporto per gruppi di aggiornamento e la possibilità di gestire stati transitori nella gestione dell'illuminazione.
- Nel stack di rete per tutte le piattaforme è stato incluso il supporto per i socket FastUDP.
- Aggiunto il supporto per sistemi multicores (SMP) basati sull'architettura RISC-V.
- Aggiunto API per l'interazione con il pianificatore di attività.
- Aggiunto il supporto per DeviceTree.
- Il driver per dispositivi audio con interfaccia USB è stato convertito per utilizzare il framework DFv2.
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).
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
