Google sta lavorando a un nuovo sistema operativo: con Fuchsia OS, il gruppo tec­no­lo­gi­co volta le spalle al­l'ar­chi­tet­tu­ra Linux e si affida invece al micro kernel Zircon au­to­svi­lup­pa­to. Fuchsia potrebbe non solo so­sti­tui­re il sistema operativo desktop Chrome OS, ma anche Android, che è stato pro­get­ta­to per i di­spo­si­ti­vi mobili. E questo no­no­stan­te il fatto che Android si sia affermato oggi sul mercato quasi senza rivali.

Google Fuchsia è il sistema operativo del futuro? Abbiamo ana­liz­za­to nel dettaglio il progetto.

Che cos’è Google Fuchsia?

Fucsia (in inglese Fuchsia) non è solo un colore tra il rosso e il blu, ma anche il nome di un sistema operativo modulare, in tempo reale e basato su permessi, che Google sta svi­lup­pan­do pub­bli­ca­men­te dal 2016. Il sistema è scritto in C, C++, Dart, Go e Rust e dovrebbe fun­zio­na­re su moderni pro­ces­so­ri Intel ARM a 64 bit.

Fatto

Un sistema operativo in tempo reale (RTOS, Real-Time Operating System) è un sistema operativo in grado di ri­spon­de­re agli eventi e di fornire risultati di ela­bo­ra­zio­ne istan­ta­nea­men­te o in un periodo di tempo pre­de­fi­ni­to.

Il codice sorgente di Fuchsia OS è sotto licenza open source (incluse le licenze BSD, MIT e Apache) e può essere vi­sua­liz­za­to e scaricato da chiunque dai re­po­si­to­ry Git pubblici di Google. Se siete in­te­res­sa­ti, qui potete anche trovare un’ampia do­cu­men­ta­zio­ne del progetto.

Secondo la do­cu­men­ta­zio­ne, Fuchsia OS è adatto a smart­pho­ne, tablet, computer portatili e desktop. Da maggio 2017 con Armadillo è di­spo­ni­bi­le un’in­ter­fac­cia utente (UI) ot­ti­miz­za­ta per l'uso touch con un’in­ter­fac­cia utente grafica. Google sta svi­lup­pan­do un’in­ter­fac­cia utente desktop per il sistema operativo Fuchsia OS con il titolo operativo di Capybara. Da allora si sono diffuse voci secondo cui Google stia lavorando per so­sti­tui­re l’im­pa­reg­gia­bi­le Android.

Come funziona il sistema operativo Fuchsia OS?

Google è al­l'a­van­guar­dia nello sviluppo di Fuchsia OS. Si potrebbe dire che l'azienda ha imparato dagli errori del passato, so­prat­tut­to per quanto riguarda i limiti e i problemi di ag­gior­na­men­to e modifica di Android e Chrome OS. La dif­fe­ren­za centrale rispetto ai sistemi operativi con­so­li­da­ti di Google: Fuchsia OS è di base creato in maniera modulare. Questo si riflette non solo in un’ar­chi­tet­tu­ra di sistema modulare, ma anche in una com­pren­sio­ne com­ple­ta­men­te nuova di cosa sia un’ap­pli­ca­zio­ne.

Design modulare dell’ap­pli­ca­zio­ne

Google Fuchsia si basa su un design modulare che rompe con il concetto di app. Le unità software si chiamano packages (pacchetti). Un pacchetto è una selezione di file, inclusi metadati, file manifesto ed elementi ese­gui­bi­li. Questi ultimi sono chiamati com­po­nen­ts (com­po­nen­ti) nella ter­mi­no­lo­gia di Google.

I com­po­nen­ti di Fuchsia si av­vi­ci­na­no di più a quelle che oggi chiamiamo app. Ogni com­po­nen­te esegue un compito specifico e può essere combinato con altri com­po­nen­ti per creare ap­pli­ca­zio­ni complesse. Le parti di un com­po­nen­te includono un file manifesto e il codice associato. I com­po­nen­ti fun­zio­na­no sempre nella propria sandbox, accedono agli oggetti tramite namespace e li pub­bli­ca­no tramite una directory di espor­ta­zio­ne. Con Fuchsia OS sono in primo piano due tipi di com­po­nen­ti: models (moduli) e agents (agenti).

I com­po­nen­ti nel ruolo di un agente lavorano in back­ground e for­ni­sco­no servizi per altre com­po­nen­ti. Un agente è chiamato da un altro com­po­nen­te o dal sistema, per esempio in risposta ad alcuni trigger come le notifiche push o altri processi su schermo.

I moduli sono com­po­nen­ti con un’in­ter­fac­cia utente che vengono eseguiti in primo piano, visibili all’utente. Ogni modulo al­l'in­ter­no del sistema operativo è stato pro­get­ta­to per un compito specifico e viene con­tras­se­gna­to di con­se­guen­za in modo che possa essere chiamato au­to­ma­ti­ca­men­te quando ne­ces­sa­rio. Questo viene fatto uti­liz­zan­do la funzione del modulo, che può essere descritta uti­liz­zan­do verbs (verbi) e nouns (so­stan­ti­vi).

Ogni modulo include una lista di verbi che indicano il lavoro che il modulo può fare, così come una lista di nomi che rap­pre­sen­ta­no le entità con cui si sta lavorando. Secondo la ter­mi­no­lo­gia di Google, il termine entity (entità) include qualsiasi persona, luogo, cosa, evento o concetto uni­vo­ca­men­te iden­ti­fi­ca­bi­le che esiste come oggetto di dati strut­tu­ra­ti che può essere re­fe­ren­zia­to e re­cu­pe­ra­to, pre­sen­ta­to, ma­ni­po­la­to o condiviso.

In pratica, il lavoro con il sistema operativo in tempo reale Fuchsia si svolge quindi come segue: non appena un utente esegue un’azione, Fuchsia OS determina au­to­ma­ti­ca­men­te il modulo ap­pro­pria­to per l’incarico. L’azione de­si­de­ra­ta si traduce in una com­bi­na­zio­ne di verbo e nome. Il sistema recupera quindi una lista di tutti i moduli che sup­por­ta­no il verbo de­si­de­ra­to e filtra nel passo suc­ces­si­vo per il modulo che può anche gestire il nome de­si­de­ra­to.

I moduli correlati possono essere rag­grup­pa­ti in una co­sid­det­ta story (storia). Le storie combinano azioni e compiti diversi a seconda delle esigenze attuali e do­vreb­be­ro con­sen­ti­re agli utenti di as­sem­bla­re ap­pli­ca­zio­ni complesse in base alle proprie idee e alle proprie esigenze.

In sintesi

Con il concetto di ap­pli­ca­zio­ne modulare di Fuchsia OS Google sposta l'at­ten­zio­ne dalle ap­pli­ca­zio­ni alle azioni e ai contenuti. Invece del classico sistema operativo di un’ap­pli­ca­zio­ne at­tual­men­te in uso, i compiti di Fuchsia sono gestiti da un gruppo di com­po­nen­ti nelle co­sid­det­te storie che accedono alle risorse at­tual­men­te ne­ces­sa­rie tramite moduli.

Il grafico seguente illustra il concetto modulare che sta alla base dello sviluppo di ap­pli­ca­zio­ni per Fuchsia OS.

Ar­chi­tet­tu­ra di sistema modulare

Anche l’ar­chi­tet­tu­ra di sistema di Fuchsia OS si basa su un approccio modulare. Il sistema operativo si compone di quattro livelli più o meno in­di­pen­den­ti, ognuno con le proprie mansioni: Zircon, Garnet, Peridot e Topaz.

Zircon

Zircon (ex Magenta) è la base del nuovo sistema operativo di Google, ma in senso stretto non fa parte di Fuchsia OS e potrebbe essere uti­liz­za­to anche con altri sistemi operativi.

Zircon contiene il kernel di Fuchsia OS, il gestore dei di­spo­si­ti­vi, la maggior parte dei driver per di­spo­si­ti­vi core e di prima parte e librerie di sistema di basso livello come libc e launchpad. Inoltre Zircon fornisce FIDL (Fuchsia Interface De­fi­ni­tion Language), un pro­to­col­lo per la co­mu­ni­ca­zio­ne tra processi. FIDL è in­di­pen­den­te dal lin­guag­gio di pro­gram­ma­zio­ne, ma ha con­nes­sio­ni a linguaggi di pro­gram­ma­zio­ne popolari come C, C++, Dart, Go e Rust.

Come base del sistema operativo Fuchsia OS, Zircon fornisce l’accesso hardware per i livelli suc­ces­si­vi, crea astra­zio­ni software su risorse hardware condivise e serve come piat­ta­for­ma per lo sviluppo di software di basso livello. Zircon è emerso dal progetto Little Kernel (LK), che funge da boo­tloa­der (programma di avvio) per Android.

Peridot

Peridot è il livello del sistema operativo di Fuchsia OS su cui vengono gestite e compilate le ap­pli­ca­zio­ni modulari (v. sopra) secondo le attuali esigenze del­l'u­ten­te. I com­po­nen­ti prin­ci­pa­li di Peridot sono Ledger e Maxwell.

  • Ledger: è un sistema di ar­chi­via­zio­ne basato su cloud (Di­stri­bu­ted Storage System) che fornisce un archivio dati separato per ogni com­po­nen­te (modulo o agente) di Fuchsia ed è sin­cro­niz­za­to su di­spo­si­ti­vi diversi. Questo permette all’utente di con­ti­nua­re a lavorare su un di­spo­si­ti­vo Fuchsia esat­ta­men­te nel punto in cui ha lasciato un altro di­spo­si­ti­vo. Ledger viene salvato nell’account Google dell’utente.
  • Maxwell: un com­po­nen­te che supporta gli utenti come in­tel­li­gen­za ar­ti­fi­cia­le integrato su Fuchsia OS da Google. Come di consueto per Fuchsia, anche Maxwell è modulare. Il sistema di in­tel­li­gen­za ar­ti­fi­cia­le consiste in una serie di agenti che ana­liz­za­no le azioni dell’utente e i contenuti che uti­liz­za­no, de­ter­mi­na­no le in­for­ma­zio­ni adeguate in back­ground e tra­smet­to­no sug­ge­ri­men­ti al sistema operativo, per esempio quali moduli o storie debbano essere caricati in base al com­por­ta­men­to dell’utente in un dato momento. Anche l’as­si­sten­te vocale di Google fa parte del com­po­nen­te AI, ul­te­rior­men­te svi­lup­pa­to con il nome in codice Kronk come parte del progetto Fuchsia.
N.B.

Kronk è finora l’unico com­po­nen­te di Fuchsia OS che non viene svi­lup­pa­to come progetto open source.

Topaz

Topaz è il livello di sistema di Fuchsia OS dove gli utenti in­te­ra­gi­sco­no con il sistema operativo. Qui vengono vi­sua­liz­za­te le in­ter­fac­ce utente dei com­po­nen­ti definiti nei livelli sot­to­stan­ti: sia l’in­ter­fac­cia utente grafica con schermata iniziale, Armadillo o Capybara a seconda del di­spo­si­ti­vo, sia i front end visivi dei moduli. A questo livello di sistema è integrato anche il framework per ap­pli­ca­zio­ni mobili open source mul­ti­piat­ta­for­ma di Google Flutter. Si può quindi presumere che gli utenti con Fuchsia OS saranno in grado di eseguire e uti­liz­za­re ap­pli­ca­zio­ni di altri sistemi in futuro, ad esempio ap­pli­ca­zio­ni Android o iOS.

I vantaggi e gli svantaggi di Fuchsia OS in sintesi

Secondo l’approccio modulare, gli svi­lup­pa­to­ri di Fuchsia OS hanno suddiviso l’ar­chi­tet­tu­ra di sistema in singole aree con compiti speciali. Questo non solo migliora la leg­gi­bi­li­tà del codice, ma ha anche un effetto sull’adat­ta­bi­li­tà e l’ag­gior­na­men­to del sistema operativo. Google risolve il problema del­l'ag­gior­na­men­to con cui Android ha lottato a lungo.

Fatto

L’eco­si­ste­ma Android sta lottando con un problema di ag­gior­na­men­to. Uno sguardo alla dashboard di di­stri­bu­zio­ne ufficiale mostra che le nuove versioni del sistema operativo si stanno dif­fon­den­do len­ta­men­te. Un problema che non si conosce con la con­cor­ren­za. Mentre l'hard­ware e il software Apple pro­ven­go­no dalla stessa azienda e possono essere adattati senza ritardi, ogni ag­gior­na­men­to di Android deve prima essere im­ple­men­ta­to dai vari pro­dut­to­ri di hardware.

Inoltre, l'ar­chi­tet­tu­ra di sistema modulare soddisfa le esigenze dei partner com­mer­cia­li di Google, che vogliono adattare o estendere Fuchsia OS secondo le proprie idee.

I pro­dut­to­ri di hardware hanno la pos­si­bi­li­tà di scambiare i singoli livelli del sistema operativo con i propri prodotti senza com­pro­met­te­re la fun­zio­na­li­tà degli altri livelli. Samsung, ad esempio, potrebbe so­sti­tui­re Topaz con un’in­ter­fac­cia utente in stile TouchWiz. Amazon sarebbe in grado di fare a meno di Peridot e dell’as­si­sten­te vocale di Google e di equi­pag­gia­re Fuchsia OS con un modulo app basato su AWS che include Alexa.

In entrambi i casi i pro­dut­to­ri di di­spo­si­ti­vi po­treb­be­ro offrire versioni per­so­na­liz­za­te di Fuchsia OS senza influire sulle ca­rat­te­ri­sti­che di Zircon e Garnet o sui cicli ufficiali di ag­gior­na­men­to per questi livelli.

Vantaggi Svantaggi
L’ar­chi­tet­tu­ra di sistema modulare di Fuchsia OS con­sen­ti­rà a Google in futuro di di­spie­ga­re gli ag­gior­na­men­ti in modo no­te­vol­men­te più veloce rispetto ad Android. Google trasforma Ledger in un com­po­nen­te prin­ci­pa­le di Fuchsia OS. Ledger controlla la sin­cro­niz­za­zio­ne delle ap­pli­ca­zio­ni dai diversi di­spo­si­ti­vi e collega così il sistema sal­da­men­te al cloud.
Grazie alla struttura modulare i pro­dut­to­ri di hardware hanno la pos­si­bi­li­tà di so­sti­tui­re i singoli livelli di sistema di Fuchsia OS tramite i propri com­po­nen­ti senza che gli altri livelli vengano in­fluen­za­ti dalla loro funzione.  

Stato di sviluppo

Fuchsia OS sta len­ta­men­te prendendo forma, ma è ancora lontano dall’essere pronto per il mercato. Google non ha ancora an­nun­cia­to una data di uscita ufficiale. Secondo quanto riportato dai media, i primi test hardware sono già avvenuti. Come primo pro­dut­to­re di di­spo­si­ti­vi a testare Fuchsia OS, Huawei ha avviato con successo il nuovo sistema operativo su Honor Play. Lo smart­pho­ne è dotato del chip Huawei Kirin-970, che viene uti­liz­za­to anche in altri di­spo­si­ti­vi del pro­dut­to­re, come Mate 10, Mate 20 e Mate 20 Pro.

Fuchsia OS Demo

Già in fase di sviluppo Fuchsia OS può essere compilato come APK (Android Package) e in­stal­la­to su smart­pho­ne e tablet Android. La versione demo Fuchsia OS dello studente por­to­ghe­se di in­for­ma­ti­ca Manuel Goulão mostra come si presenta Fuchsia OS.

Aprendo la demo di Fuchsia nel browser si arriva a un sito web che mostra la schermata iniziale del sistema operativo, dove l'utente viene salutato con un’immagine di sfondo e l’ora corrente. Inoltre, sono di­spo­ni­bi­li tre pulsanti: un pulsante che apre le im­po­sta­zio­ni WiFi, il pulsante di login per gli utenti re­gi­stra­ti e un login per gli ospiti.

Finora, la demo permette di accedere solo come ospite.

Gli utenti re­gi­stra­ti possono accedere alla schermata iniziale di Fuchsia OS, che vi­sua­liz­za tutte le in­for­ma­zio­ni in una sola pagina.

L’elemento più im­por­tan­te nella schermata iniziale è una finestra al centro dello schermo che contiene la barra di ricerca di Google, l’as­si­sten­te vocale di Google e le ap­pli­ca­zio­ni in­stal­la­te sul di­spo­si­ti­vo.

Se si avvia un’ap­pli­ca­zio­ne (che rende di­spo­ni­bi­le la demo come dummy), si vedrà che Google ha optato per un’in­ter­fac­cia utente basata su finestre.

Facendo clic sull’immagine utente al centro della schermata iniziale si apre un menu con le im­po­sta­zio­ni uti­liz­za­te di frequente.

Fuchsia OS è stato anche am­pia­men­te testato dai redattori di Ars Technica, che ha fatto fun­zio­na­re la versione pre-release su un Pixelbook. Il seguente video mostra il risultato del test:

Vai al menu prin­ci­pa­le