L’architettura di Firefox OS è formata da 3 livelli chiamati Gonk, Gecko e Gaia; vediamoli adesso in dettaglio:

Gaia: Costituisce l’interfaccia utente di Firefox OS (B2G). Qualsiasi cosa sia mostrata sullo schermo dopo l’avvio del sistema operativo fa parte di Gaia. Gaia implementa la lock screen, la schermata principale, l’applicazione per telefonare, quella per inviare gli SMS, la fotocamera, ecc. Gaia è realizzata interamente in HTML, CSS e JavaScript. La sua sola interfaccia con il sistema operativo sottostante è l’insieme delle Open Web APIs, che sono implementate all’interno di Gecko. Gaia funziona perfettamente quando viene eseguito su B2G, ma è possibile utilizzarlo anche su altri sistemi operativi e su altri browser (sebbene con funzionalità ridotte) grazie all’utilizzo di web APIs standard. E’ possibile installare applicazioni di terze parti (ossia sviluppate dagli utenti) su Gaia.

Gecko: Costituisce l’ambiente di esecuzione di B2G. Gecko implementa ad alto livello gli standard operti per l’HTML, CSS e JS e permette a queste interfacce di funzionare correttamente su tutti gli OS supportati da Gecko. Questo significa che Gecko è costituito, insieme ad altre componenti, di un livello che gestisce la rete, uno che gestisce la grafica, un motore che realizza il layout del contenuto, una macchina virtuale per l’esecuzione di codice JavaScript e livelli per la portabilità.

Gonk: E’ il livello più basso che comunica con l’hardware e costituisce il sistema operativo di B2G. Gonk è formato da un kernel Linux e un livello di astrazione hardware (HAL). Il kernel e molte librerie sono progetti open source molto conosciuti: linux, libusb, bluez, ecc. Altre parti dell’HAL sono in comune con il progetto Android, come il GPS, Fotocamera e altri. Si può affermare che Gonk è una distribuzione Linux molto semplice. Gonk costituisce la “piattaforma” di Gecko, così come ci sono dei porting di Gecko per OS X, Android, Windows e altri. Dato che il progetto B2G ha il controllo completo su Gonk, è possibile accedere ad interfacce che non sono normalmente esposte da altri OS. Per esempio Gecko ha un accesso diretto all’intero stack telefonico su Gonk, ma non su altri sistemi operativi.

Se avete bisogno di ulteriori chiarimenti fatemelo sapere attraverso i commenti 😉