# Firefox OS

Firefox OS (già conosciuto col nome in codice Boot to Gecko e abbreviato B2G) era un sistema operativo libero basato su kernel Linux in sviluppo da Mozilla, l'organizzazione non-profit conosciuta per il browser Firefox, per dispositivi mobili, per tablet e per Smart TV.
L'idea alla base è quella di avere un completo sistema operativo guidato da una comunità e disponibile come un'applicazione web usando gli standard web, le tecniche avanzate di HTML5 e le open web API del dispositivo per accedere direttamente all'hardware dello stesso con JavaScript. In questo modo è entrato in competizione con altri sistemi operativi commerciali come iOS di Apple, Android di Google, Windows Phone di Microsoft, oltre ad altri sistemi aperti minori come Sailfish OS di Jolla ed Ubuntu Touch di Canonical Ltd.. Nel settembre 2016 Mozilla ha annunciato che avrebbe terminato lo sviluppo del sistema operativo.
Da Firefox OS sono stati derivati altri sistemi operativi, tra cui B2G OS (non più attivo), H5OS (anch'esso non più attivo), KaiOS e My Home Screen di Panasonic.

## Storia

Il 25 luglio 2011, Andreas Gal, direttore di ricerca alla Mozilla Corporation, ha annunciato il Progetto "Boot to Gecko" sulla mailing list mozilla.dev.platform. La proposta di progetto è stata quella di "perseguire l'obiettivo di costruire un sistema operativo completo e autonomo per il web aperto", al fine di trovare "le lacune che impediscono agli sviluppatori web di essere in grado di creare applicazioni che sono, sotto ogni aspetto, uguali alle applicazioni native create per BlackBerry 10, iPhone, Android e WP8". L'annuncio ha anche identificato alcune aree di lavoro: le nuove web API, un privilege model, applicazioni per provare le capacità del sistema operativo e codice a basso livello per il boot in un dispositivo Android.
Ciò portò molti blog a trattare l'argomento. Secondo Ars Technica, "Mozilla ha detto che B2G è motivato da un desiderio di dimostrare che l'open web basato sugli standard ha il potenziale per essere un'alternativa competitiva con gli stack di applicazioni dei singoli rivenditori già esistenti offerti dai dominanti sistemi operativi per dispositivi mobili".
Da febbraio 2012, è stato dimostrato che "Boot to Gecko" può essere usato su smartphone compatibili con Android. Nel luglio del 2012 "Boot to Gecko" è stato rinominato in "Firefox OS" in onore al famoso browser Mozilla Firefox ed alcuni screenshot incominciarono ad apparire nell'agosto 2012. Nello stesso mese sono stati resi noti i primi accordi con operatori di telefonia quali TIM, Telefónica e Deutsche Telekom e per quanto riguarda i produttori con Qualcomm e ZTE. Il 27 settembre 2012 gli analisti della Strategy Analytics hanno previsto che Firefox OS si aggiudicherà l'1% del mercato globale degli smartphone nel solo 2013.
Nel 2013 è stato dimostrato che Firefox OS può essere usato su Raspberry Pi. Nel gennaio 2013, al CES 2013, ZTE ha confermato che avrebbe creato uno smartphone con Firefox OS,. Il 24 febbraio 2013 Mozilla ha annunciato i piani di commercializzazione globale di Firefox OS. Foxconn produrrà per la prima volta tablet col suo marchio e con sistema operativo Firefox OS. Il 2 luglio 2013, Telefónica lanciò il primo telefono commerciale con Firefox OS, ZTE Open, in Spagna, seguito successivamente dal Peak+ di GeeksPhone. Mozilla ha anche stretto un accordo con T2Mobile per fare un telefono chiamato "Flame" adatto agli sviluppatori per contribuire a Firefox OS e per testare le app. In Italia TIM ha iniziato a vendere il primo smartphone con Firefox OS, l'Alcatel One Touch Fire, nei primi giorni di dicembre 2013.
Il 9 dicembre 2015, Mozilla, con una dichiarazione del vicepresidente della divisione mobile Ari Jaaksi, annuncia l'annullamento della partnership con gli operatori telefonici per la vendita di dispositivi Firefox OS con SIM dedicata: «Non siamo stati in grado di offrire la migliore esperienza utente possibile e quindi siamo costretti a chiudere i canali di vendita degli smartphone Firefox OS tramite operatori telefonici».

## Componenti

Il lavoro di sviluppo iniziale ha coinvolto tre importanti layer: Gonk, Gecko e il layer HTML che contiene l'interfaccia grafica di Gaia.

### Gonk

Gonk consiste del kernel Linux e dell'hardware abstraction layer (HAL). Il kernel e varie librerie userspace sono comuni progetti liberi: Linux, libusb, BlueZ, ecc. Alcune altre parti dell'HAL sono condivise con il progetto Android: GPS e fotocamera soprattutto. Gonk è praticamente una semplice distribuzione Linux ed è quindi un obiettivo per il port di Gecko; c'è un port di Gecko per Gonk, così come c'è un port di Gecko per OS X e per Android. Da quando il progetto B2G ha pieno controllo su Gonk, gli sviluppatori possono mostrare interfacce di Gecko che non sono mostrabili su altri sistemi operativi. Per esempio, Gecko ha diretto accesso allo stack della telefonia e al framebuffer del display su Gonk ma non ha questo accesso in nessun altro sistema operativo.

### Gecko

Gecko è il run-time system di B2G. Gecko implementa gli standard aperti per HTML, CSS e JS. Gecko include uno stack per la rete e per la grafica, un motore di rendering, una macchina virtuale per JavaScript e layer per i port.

### Gaia

Gaia è l'interfaccia grafica di Firefox OS e controlla tutto ciò che viene rappresentato sullo schermo. Gaia include le implementazioni per la schermata di blocco, la scrivania, un dialer, un'applicazione per inviare SMS e un'app per la fotocamera. Gaia è programmato totalmente in HTML, CSS e JavaScript. Si interfaccia con il sistema operativo attraverso le Open Web API, che sono implementate da Gecko. Poiché usa solo API standard, può lavorare anche su altri sistemi operativi e altri browser.