Under 2017 skrev jag om historien om Firefox OS, från B2G-projektet (Boot to Gecko) med öppen källkod som ett tomt GitHub-arkiv 2011, till att Firefox OS levererades på fem miljoner enheter över hela världen, för att slutligen ”övergå” till gemenskapen 2016.
Under de cirka två år som gått sedan Mozilla meddelade att Firefox OS upphörde att vara ett Mozilla-styrt projekt har B2G-källkoden letat sig in i ett överraskande antal kommersiella produkter. Faktum är att sedan Mozilla gick vidare från Firefox OS har dess derivat levererats på en storleksordning fler enheter än under hela tiden under Mozillas ledning och det har fortsatt att utgöra grunden för det tredje största och snabbast växande mobila operativsystemet i världen.
I det här blogginlägget tar jag en titt på arvet från B2G-projektet, några av de enheter som du kan köpa i dag och som kör B2G-kod, och andra relaterade insatser som fortfarande fortsätter inom och utanför Mozilla. Jag kommer att ta upp KaiOS, Panasonics My Home Screen, Servonk, Webian, Astian OS, IceWolf OS och det senaste inom Mozilla Research & Development. Jag kommer sedan att förklara varför jag anser att det finns starka argument för att Mozilla ska ta en mer aktiv roll för att stödja nedströmsanvändare av Gecko i framtiden, och till och med själva B2G-kodbasen.
Den mest anmärkningsvärda gaffeln av B2G-kodkoden är troligen KaiOS från KaiOS Technologies. Företaget startades 2016 med ett team på 30 personer och har sedan dess vuxit till att ha kontor i Frankrike, Tyskland, Taiwan, Indien, Brasilien, Hongkong och Kina utöver sitt huvudkontor i USA.
KaiOS har ett användargränssnitt som är optimerat för ”smarta funktionstelefoner” utan beröringsteknik med fysiska tangentbord och små färgskärmar. Detta inkluderar den enormt populära JioPhone i Indien, HMD:s nostalgiska nylansering av Nokia 8110 och den nyligen tillkännagivna WizPhone för 7 dollar i Indonesien. Med dessa enheter fortsätter KaiOS i hög grad Firefox OS:s vision om att ”ansluta nästa miljard”, med lågprismodeller som främst riktar sig till tillväxtmarknader.
I Indien har det en marknadsandel på 4,55 % och slår därmed Apples iOS på andra plats.
Strategy Analytics förutspår att leveranserna av KaiOS-enheter kommer att öka med 50 % på årsbasis under 2019, där mer än 30 % av dessa leveranser kommer från marknader utanför Indien som Afrika, Sydostasien och Latinamerika. Detta, säger de, kommer att göra den till ”världens snabbast växande stora plattform”.
Panasonic My Home Screen
KaiOS är inte den enda förgreningen av B2G. Panasonic var den första hårdvaruleverantören att skapa Firefox OS-baserade smarta tv-apparater, som fick bra kritik för sin användarvänliga design när de släpptes 2015. När Mozilla slutade arbeta med Firefox OS fortsatte Panasonic utvecklingen av programvaran som My Home Screen 2.0 och senare My Home Screen 3.0.
Vid 2019 körs de flesta Panasonic-smart-TV:n fortfarande denna B2G-fork. Det finns lokaliserade varianter som säljs med My Home Screen över hela världen, bland annat i Nordamerika, Latinamerika, Europa, Mellanöstern, Afrika, Asien och Oceanien. De sträcker sig från den billiga 24-tums LED TX-24FS500B i Storbritannien för £279 (359 dollar) till den mycket avancerade 77-tums OLED TH-77EZ1000H i Hongkong för HK$139 000 (17 700 dollar).
Ett anmärkningsvärt undantag är USA, där Panasonic nyligen slutade sälja tv-apparater på grund av svåra marknadsförhållanden. Men här i Storbritannien kommer du att stöta på dessa smarta TV-apparater när du går in hos de flesta populära elektronikåterförsäljarna på den stora gatan som John Lewis, Currys och Argos. Vissa listor i nätbutiker hänvisar till och med fortfarande till dessa TV-apparater som ”powered by Firefox OS”, trots den officiella ändringen av varumärket.
My Home Screen 3.0 är förmodligen lite av en Frankenstein av webb- och inhemsk kod under huven i dagsläget, med stöd för ett stort antal plattformar för live- och on-demand-video, men användargränssnittet har förblivit i stort sett detsamma.
Jag har Panasonic TV-apparater som kör både Firefox OS med varumärket Firefox och My Home Screen 3.0 och medan webbläsaren knappt har förändrats har apputvecklingen blivit mycket mer låst.
Med den senaste ”HTML v3 SDK” (baserad på ”Hybrid broadcast broadband TV”-standarden) är utvecklarkonton i princip endast tillgängliga för inbjudningar. Jag ansökte om ett konto och Panasonic ville först veta vilken app jag utvecklade så att de kunde avgöra om de ville ha den i sin butik.
Detta är en stor kontrast till den ursprungliga Firefox OS TV-apparaten där vem som helst kunde aktivera utvecklarläget och och vem som helst kunde skicka in en app till Firefox Marketplace.
Med de flesta stora appar som Netflix, YouTube och Amazon Prime Video som redan stöds fortsätter My Home Screen att erbjuda en smidig och övertygande användarupplevelse för smarta tv-apparater.
Totalt säljer Panasonic cirka 7 miljoner tv-apparater per år över hela världen.
Servonk
I januari 2018 startade den tekniska ledaren för KaiOS, Fabrice Desré (tidigare teknisk ledare för B2G på Mozilla), ett projekt med öppen källkod som heter Servonk. Servonk är ett slags ”Boot to Servo” likt det ursprungliga Boot to Gecko-projektet, men baserat på Mozillas experimentella Servo-renderingsmotor.
Servonk drar nytta av de senaste funktionerna i Servo, bygger till stor del på programmeringsspråket Rust och följer i stort sett den slimmade arkitektur som vi började övergå till mot slutet av B2G-projektet.
Servonk är visserligen ett mycket coolt projekt med öppen källkod, men det är osannolikt att det kommer att levereras på kommersiella enheter inom en snar framtid, även om det finns vissa tidiga diskussioner om att leverera en version av Necunos NC_1 (community edition) med B2G eller Servonk förinstallerad.
Servo är fortfarande en mycket experimentell webbläsarmotor som inte kan rendera majoriteten av de webbsidor som finns på webben idag. Inom Mozilla har arbetet med Servo på senare tid främst varit inriktat på VR-tillämpningar och på att flytta över delar av Servo till Gecko som en del av Quantum-projektet. Servo i sig är för närvarande fortfarande ett forskningsprojekt.
Enligt README är huvudmotivationen för Servonk att klia på en personlig klåda att bygga ett alternativt operativsystem med öppen källkod, och att uppmuntra bidrag till Servo från andra än Mozilla. Om du går med i den (fortfarande förvånansvärt välbesökta) kanalen #b2g på irc.mozilla.org kommer du att upptäcka att de senaste diskussionerna handlar om Servonk.
Webian
Mitt eget Webian-projekt föregick B2G, men fortsätter ändå att krypa fram, och drar lärdom av många av lärdomarna från Firefox OS och använder de webbstandarder som det bidrog till att skapa. Webian är ett operativsystem som är inriktat på att köra standardiserade webbapplikationer.
Den stationära versionen är för närvarande byggd på den experimentella Quantum Browser Runtime (qbrt) från Mozilla och touchversionen är baserad på Android Things och GeckoView.
Det nuvarande tillvägagångssättet jag använder för touch-baserade enheter är att implementera systemets användargränssnitt som en Android-app som körs ovanpå Android Things. Android Things är i princip en särskild version av Android som bara kör en enda app (ingen standardanvändargränssnitt som statusfält eller aktivitetshanterare ingår), vilket gör det möjligt för tillverkarna av enheter att ha full kontroll över systemanvändargränssnittet.
Android Things har använts för att bygga en rad kommersiella ”smarta bildskärmar” från Lenovo, LG och Samsung (dock inte Googles egen smarta bildskärm Home Hub, som är baserad på den mer lättviktiga Google Cast-plattformen). Jag använder Android Things för att bygga mitt eget webbläsarbaserade operativsystem med hjälp av Gecko via GeckoView med ett inhemskt systemgränssnitt skrivet i Java. Tanken är att vanliga webbappar sedan kan upptäckas och installeras från webben med hjälp av deras Web App Manifest och Service Workers där det finns tillgängligt.
Fördelen med att bygga på Android Things är att Google upprätthåller det underliggande operativsystemet och Android API:erna, medan jag har full kontroll över systemgränssnittet och kan använda Gecko via dess befintliga, välstödda Android widget-lager. Nackdelen är att det förmodligen aldrig kan prestera lika bra som B2G kunde ha gjort på samma hårdvara eftersom det kräver det extra Java-skiktet, vars avlägsnande var en av B2G:s största fördelar. Och naturligtvis kontrolleras Android självt av Google.
Astian OS
Astian OS kallar sig självt för en efterföljare till Firefox OS, men det är mer en andlig förgrening än ett faktiskt derivat. Det är egentligen en Linuxdistribution för stationära datorer med en förkärlek för webbapplikationer, baserad på Devuan (en förgrening av Debian).
IceWolf OS
Originellt känd som Plánium OS, IceWolf OS (se vad de gjorde där?) är ett projekt med öppen källkod som startades i Brasilien. Enligt dess Twitter-profil är IceWolf OS inspirerat av Firefox OS och bygger på webbteknik.
Efter att ha experimenterat med NodeJS & Chromium, Electron och NW.js gör projektledaren Patrick A Lima nu ett försök att gå tillbaka till Gecko, tillsammans med sitt nya Firefox OS-inspirerade namn. Tyvärr (vilket jag själv har upplevt) är Gecko mycket svårare att bädda in på grund av den monolitiska karaktären hos dess arkitektur.
Mozilla Projects
Mitt nuvarande jobb är att jobba med forskning &utveckling på avdelningen för framväxande teknik hos Mozilla. Många av de aktuella projekten inom Emerging Technologies har sitt ursprung i Firefox OS.
Satsningen på WebVR, som kulminerar i webbläsaren Firefox Reality, startades först som en potentiell ny formfaktor för Firefox OS i VR-headsets.
DeepSpeech föddes som en del av röstassistenten Vaani för Firefox OS och kan så småningom komma att användas i en röstläsare kallad Firefox Listen.
Mozillas nuvarande IoT-satsning omfattar en del tidiga arbeten med smarta skärmar som använder Android Things och GeckoView.
Legacy
Under de fem åren under Mozillas ledning levererades omkring fem miljoner enheter med Firefox OS. Sedan dess har över 50 miljoner smarta telefoner och miljontals smarta TV-apparater levererats med B2G-kod, och flera nya programvaruprojekt har härletts från eller inspirerats av den.
Enligt StatCounter finns det nu fler användare av webbläsaren KaiOS än Firefox i mobilen (1,13 % mot 0,34 %).
Dess siffror visar att KaiOS webbläsares marknadsandel gick om Firefox i mobilen någon gång i april 2018 och visar inga tecken på att stanna.
Med den nuvarande tillväxttakten för KaiOS och motsvarande minskning av Firefox marknadsandel, om KaiOS håller fast vid Gecko och Mozilla inte lyckas vända utvecklingen, är det möjligt att KaiOS så småningom kan bli den största konsumenten av Gecko helt och hållet.
Men KaiOS kör för närvarande en mycket gammal patchad version av Gecko 48 och Panasonics My Home Screen 3.0 kör Gecko 34, medan den senaste versionen av Gecko i Firefox är 64.
KaiOS Technologies och Panasonic hindras från att uppgradera till en nyare version av Gecko eftersom Mozilla har tagit bort all B2G-kod från mozilla-central code repository, inklusive Gonk widget layer. Sedan dess har det skett betydande arkitektoniska förändringar av Gecko som en del av Quantum-projektet som gör det mycket svårt för projekt i efterföljande led att anpassa B2G till den senaste versionen.
Detta innebär tyvärr att arvet från Firefox OS för närvarande består av tiotals miljoner telefoner och TV-apparater över hela världen som kör en föråldrad webbläsarmotor som troligen aldrig kommer att kunna uppdateras. Detta innebär en potentiell risk för användarna av dessa enheter, men håller också tillbaka webbplattformen som helhet.
Framtiden
Så vad kommer dessa företag att göra härnäst? Det är mycket troligt att KaiOS utan stöd från Mozilla kommer att tvingas migrera från Gecko till Googles Blink-motor. Jag har faktiskt förstått att det redan pågår arbete för att göra detta, med stöd från Google Chrome-teamet.
Den resulterande arkitekturen skulle kunna se mycket ut som en hybrid av Android/Chrome OS, något som det har spekulerats om i flera år. Panasonic skulle då kunna använda samma kodbas, eller bara gå över till en annan mjukvarustapel helt och hållet.
En portering av B2G till Blink är ett stort åtagande, men om det blir verklighet skulle det ytterligare bidra till den WebKit/Blink-monokultur som vi i allt högre grad ser på webbplattformen i dag med Chrome, Safari, Opera, Samsung Internet, Edge och Brave.
Med tanke på att både Opera och Microsoft har gett upp sina egna webbläsarmotorer till förmån för att bygga Chromium-baserade webbläsare, har Mozilla verkligen den sista alternativa implementeringen från grunden av webbplattformen. Detta är oerhört viktigt eftersom det inte kan finnas några webbstandarder utan flera interoperabla implementationer.
Mozilla arbetar ständigt för att rikta in sig på nya Android-baserade plattformar med Gecko-baserade webbläsarprogram på FireTV, Amazon Echo Show och VR-headsets, samt specialiserade webbläsare som är avsedda för tillväxtmarknader. Men även om nedgångstakten för Firefox marknadsandelar har avtagit på senare tid, med konkurrenter som konvergerar mot Chromium-kodbasen och Mozillas totala marknadsandelar fortfarande krymper, ser framtiden för Gecko och webbplattformens mångfald och hälsa lite dyster ut.
Slutsatser
Sedan Mozilla avvecklade Firefox OS har B2G-källkoden letat sig in i ett förvånansvärt stort antal kommersiella produkter och utgör nu grunden för det tredje största och snabbast växande mobiloperativsystemet i världen. Dessa enheter kör dock för närvarande föråldrade versioner av Gecko, använder låsta paketerade appbutiker, utvecklas bakom stängda dörrar och är utan tvekan inte ett bra skyltfönster för den öppna webben på det sätt som B2G ursprungligen var tänkt att vara.
Jag tror inte nödvändigtvis att smarta funktionstelefoner och smarta TV-apparater skulle ha blivit en stor framgång för Mozilla om de hade drivit dessa produktriktningar själva med Firefox OS. Dessa formfaktorer är inte heller nödvändigtvis det bästa sättet att visa upp den öppna webbens möjligheter. Det oväntade fortsatta arvet från B2G visar dock hur mycket värde som fortfarande fanns i vad som har visat sig vara en mycket mångsidig och skalbar plattform.
Från billiga $7-telefoner med små 2.4-tumsskärmar till avancerade tv-apparater för 17 000 dollar med 77-tums 4K-skärmar har B2G fortsatt att fungera.
Men enligt min personliga åsikt bör Mozilla allvarligt överväga att samarbeta med KaiOS Technologies för att återinföra Gonk-widgetlagret till mozilla-central och återta äganderätten till B2G-kodbasen. KaiOS skulle då kunna använda en slimmad B2G-arkitektur med lokala systemtjänster, vilket hade varit planen med B2G Transition Project, och anta moderna webbstandarder för installerbara webbapplikationer.
Detta skulle göra det möjligt för KaiOS att fortsätta att köra en uppdaterad version av Gecko på miljontals enheter i stället för att gå över till Blink, vilket många av deras anställda och samarbetspartners faktiskt skulle föredra, och det skulle kunna bidra avsevärt till mångfalden och hälsan på webben. Jag tror också att detta skulle kunna öppna upp enorma framtida möjligheter för nya produktområden även för Mozilla.
Det finns nya formfaktorer som dyker upp i dag, t.ex. smarta skärmar (Amazon Echo Show, Lenovo Smart Display, Google Home Hub) och hybridenheter för surfplattor (Pixel Slate, ASUS Chromebook Flip) som skulle kunna passa utmärkt för B2G och den öppna webben.
Med fortsatta utforskningar inom röst, blandad verklighet och IoT finns det många nya potentiella produktområden för Mozilla som skulle kunna dra nytta av B2G-mjukvarustaket.
Smarta bildskärmar skulle till exempel kunna vara det idealiska hemmet för en röststyrd pålitlig personlig agent, vilket är förenligt med Mozillas nya treåriga strategi. Även om tidiga produkter för smarta skärmar byggs på Googles Android Things-plattform och det skulle kunna vara ett alternativ även för Mozilla, använde även Google själv Google Cast för sin egen Google Home Hub-produkt, en mer lättviktig teknikstack som är mycket mer lik B2G. B2G skulle kunna ge Mozilla och partners en fördel på den här marknaden, med en plattform som är mindre kontrollerad av Google.
Det kan finnas andra användningsområden för B2G i VR-headsets, det smarta hemmet och oräkneliga uppkopplade enheter som vi ännu inte har drömt om.
Personligen skulle jag gärna vilja se Mozilla ta sig ut ur den bekvämlighetszon som jag är rädd att de har dragit sig tillbaka till under de senaste åren, genom att leverera Firefox-browsers på andras plattformar där webben alltid är en andra klassens medborgare. Jag skulle vilja se några nya storsatsningar på produkter och partnerskap där webbplattformen tillåts stå i centrum igen, där Mozilla inte begränsas av andra plattformars regler.
The web is the platform. Låt den få glänsa.