# Google Fuchsia

Fuchsia è un sistema operativo real-time (RTOS) open source, basato su un mix di licenze software, che viene sviluppato da Google.

## Storia

Nell'agosto 2016 i media hanno riportato un misterioso post in base al codice pubblicato su GitHub, rivelando che Google stava sviluppando un nuovo sistema operativo chiamato "Fuchsia". Non è stato fatto alcun annuncio ufficiale, ma l'ispezione del codice ha suggerito la sua capacità di funzionare su dispositivi universali, inclusi "sistemi di infotainment da cruscotto per auto, a dispositivi integrati come semafori e orologi digitali, fino a smartphone, tablet e PC".
Nel maggio 2017, Ars Technica ha scritto della nuova interfaccia utente di Fuchsia, un aggiornamento dalla sua interfaccia a riga di comando alla sua prima rivelazione in agosto, insieme a uno sviluppatore che ha scritto che Fuchsia "non è un giocattolo, non è un progetto del 20%, non è una discarica di una cosa morta a cui non ci importa più". Diversi media hanno scritto sui legami apparentemente stretti del progetto con Android, con alcuni che ipotizzano che Fuchsia potrebbe essere uno sforzo per "rifare" o sostituire Android.
Nel gennaio 2018 Google ha pubblicato una guida su come eseguire Fuchsia su Pixelbooks. Questo fu seguito con successo da Ars Technica.
Un "dispositivo" fucsia è stato aggiunto all'ecosistema Android nel gennaio 2019 tramite l'Android Open Source Project (AOSP). Google ha parlato di Fuchsia al Google I/O 2019.
Il 1º luglio 2019 Google ha annunciato il sito Web ufficiale del progetto di sviluppo che fornisce codice sorgente e documentazione per il sistema operativo. Ha poi aggiunto un nuovo componente a Fuchsia OS denominato Starnix, che fornisce supporto nativo per le app Android. Starnix agisce come un traduttore che consente a una piattaforma di comprendere e accettare il software originariamente progettato per un'altra piattaforma.
Nel mese di maggio 2021, Google ha rilasciato per la prima volta Fuchsia su un prodotto in commercio, ovvero il Google Home Hub di prima generazione, andando a rimpiazzare il precedente sistema operativo utilizzato basato sul software di Chromecast. L'aggiornamento non porta alcun tipo di cambiamento estetico o funzionale, alcuni utenti hanno notato però un miglioramento nella fluidità delle animazioni del dispositivo. L'aggiornamento è stato rilasciato su tutti i Nest Hub nel mese di agosto 2021.

## Sviluppo

A differenza dei precedenti sistemi operativi sviluppati da Google, quali Android e Chrome OS, che si basano su kernel Linux, Fuchsia si basa su un nuovo microkernel denominato Magenta, derivato da Little Kernel (LK), progettato per funzionare su qualsiasi dispositivo.
Il kernel, denominato prima "Magenta" poi cambiato in "Zircon" (in modo da non confondere il sistema operativo con il suo kernel), è stato progettato per funzionare su telefonini e computer moderni, con processori veloci, quantità molto alte di memoria RAM e con periferiche arbitrarie per il calcolo computazionale.
Il progetto lo descrive sia come un microkernel che come un non-microkernel in diverse parti della sua documentazione. Il codice base di Zircon è derivato da quello di Little Kernel (LK), un kernel real-time per dispositivi integrati, finalizzato a un basso consumo di risorse, da utilizzare su un'ampia varietà di dispositivi. Little Kernel è stato sviluppato da Travis Geiselbrecht, che era anche coautore del kernel NewOS usato da Haiku.
Zircon è scritto principalmente in C ++, con alcune parti in linguaggio assembly. È composto da un kernel con un piccolo insieme di servizi utente, driver e librerie che sono tutti necessari per l'avvio del sistema, la comunicazione con l'hardware e il caricamento dei processi utente. Le sue caratteristiche includono la gestione dei thread, la memoria virtuale, i processi di intercomunicazione e l'attesa dei cambiamenti nello stato degli oggetti.
È fortemente ispirato ai kernel Unix, ma differisce notevolmente. Ad esempio, non supporta segnali di tipo Unix ma incorpora la programmazione guidata dagli eventi e il pattern di osservazione. La maggior parte delle chiamate di sistema non blocca il thread principale. Le risorse sono rappresentate come oggetti piuttosto che come file, a differenza dei sistemi Unix tradizionali.

## Caratteristiche

L'interfaccia utente e le app di Fuchsia sono scritte con Flutter, un kit di sviluppo software che consente capacità di sviluppo multipiattaforma per Fuchsia, Android e iOS. Flutter produce app basate su Dart, offrendo app con prestazioni elevate che funzionano a 120 fotogrammi al secondo. Fuchsia offre anche un motore di rendering grafico basato su Vulkan chiamato Escher, con supporto specifico per "Volumetric soft shadows".
Grazie al kit di sviluppo software Flutter che offre opportunità multipiattaforma, gli utenti possono installare parti di Fuchsia su dispositivi Android.
Ars Technica ha notato che, sebbene gli utenti possano testare Fuchsia, niente "funziona", perché "è tutto un mucchio di interfacce segnaposto che non fanno nulla". Hanno trovato più somiglianze tra l'interfaccia di Fuchsia e Android, tra cui una schermata App recenti, un menu Impostazioni e una visualizzazione a schermo diviso per la visualizzazione di più app contemporaneamente. Dopo la seconda revisione, gli esperti di Ars Technica sono rimasti colpiti dai progressi, notando che le cose stavano funzionando e sono rimasti particolarmente soddisfatti del supporto hardware. Una delle sorprese positive è stata il supporto per più puntatori del mouse.
È prevista una versione speciale di Android Runtime per Fuchsia da un file FAR, l'equivalente dell'APK Android.