Det var uden de store PR-armbevægelser – faktisk var der slet ingen – at Google i løbet af den forgangne sommer uploadede et nyt styresystem til Github med navnet Fuchsia.
Der er tale om et eksperimentelt styresystem, som endnu ikke er produktionsmodent, men det afholder ikke Prosabladet fra at se nærmere på Fuchsia.
Den kryptiske beskrivelse af Fuchsia på Github lyder blot ”Pink + Purple == Fuchsia (a new Operating System)”. Fuchsia-blomsten er lyserød og lilla, men graver man lidt rundt på nettet, finder man en lidt mere detaljeret forklaring på, hvad den kryptiske beskrivelse egentlig dækker over.
Kodenavne for Apple-styresystemer
I en Hackernews-diskussionstråd nævnes, at Pink og Purple var kodenavne for Apple-styresystemer, så måske Googles nye styresystem har noget med de styresystemer at gøre?
Ja, med dem og en række andre styresystemer for indlejrede systemer og smartphones, viser det sig.
”Hvis du hænger ud på #fuchsia længe nok, vil du se, at vi alle er en flok OS-nørder, som med tiden har arbejdet med mange, mange systemer (BeOS, ChromeOS, Android, webOS, QNX, DangerOS, iOS, MacOS, …),” som Chris McKillop, Engineering Manager hos Google med ansvar for Fuchsia skriver som svar på spekulationerne i Hackernews-tråden. Chris var med i det oprindelige team, der udviklede Apples iPhone, ligesom han var med til udviklingen af webOS samt QNX, som BlackBerry købte.
Linux-kernen ud, Little Kernel ind
Jeg hænger ud på Fuchsia-repository'et og finder ud af, at udviklerne tilknyttet Fuchsia-repository'et vitterligt er en flok styresystem-nørder. Blandt andet er der Travis Geiselbrecht, som var med til at udvikle Apples iOS og HP's WebOS.
”Lavniveaus generalist med masser af erfaring fra styresystemudvikling og hardware-interfaces. Masser af erfaring med smartphone-styresystemudvikling,” som han beskriver sig selv på sin LinkedIn-profil.
Det mest interessante i relation til Fuchsia er, at han var med til at udvikle Little Kernel (LK). Til forskel fra Googles Android er Fuchsia nemlig ikke baseret på Linux-kernen, men derimod på LK. LK er designet til små, indlejrede systemer med en begrænset mængde ram til rådighed, et lille udvalg af eksterne enheder samt en afgrænset funktionalitet.
Der er dog et lag mere i Fuchsia-arkitekturen. Fuchsia er baseret på Magenta, som er baseret på LK.
Og hvad er så Magenta?
Til forskel fra LK er Magenta rettet mod større enheder som smartphones og pc'er med hurtige processorer, masser af ram og mange eksterne enheder.
Eller med en anden af styresystem-nørdernes ord:
”Magenta-kernen er måske mere en form for minikerne (97 procent af driverne og services findes i userspace ...). Det nedstammer fra LK, som var skrevet i C, men de nye områder i Magenta-kernen er skrevet i C++ (en begrænset C++, som udnytter de gode ting i C++ uden at give os for mange problemer i det kontrollerede kerne-miljø).”
Ordene er skrevet af Brian Swetland, som var med til at udvikle det visionære, men kommercielt fejlslagne BeOS tilbage i 1990'erne. Han var Systems/Kernel Lead for et andet projekt fra 2005 til 2014, som i modsætning til BeOS blev en massiv kommerciel succes: Android.
Derefter arbejdede han med robotteknologi, indtil han i marts i år begyndte at arbejde på Magenta og Fuchsia.
Nyt styresystem til flere platforme?
Det er med andre ord nogle meget kompetente og erfarne styresystemudviklere, der står bag Fuchsia, der potentielt kan spænde over flere platforme: fra små indlejrede systemer over smartphones til pc'er. Men er det virkelig planen med Fuchsia?
En Universal Platform fra Google, nu hvor Microsoft endnu ikke er lykkedes helt med sin Universal Windows Platform?
Det vil kræve, at Android enten helt skiftes ud, eller at den Linux-baserede kerne erstattes med dele af Fuchsia, hvilket er en stor ændring for Android-miljøet. Formentlig en for stor ændring, til at Google vil satse sit succesrige smartphone-marked på det, men selvfølgelig kan det være en plan B for Google, hvis Oracles søgsmål om Androids Java-implementering får alvorlige konsekvenser for Android. Hvis det sker, vil Google have et styresystem klar, der ikke har Java som foretrukkent programmeringssprog. Det er derimod Dart, som er førsteklasses-udviklingssprog på Fuchsia. Fuchsia kommer simpelthen med Dart indbygget.
Dart er førsteklasses-sprog
Men måske skal vi længere ned i device-størrelse?
Et stykke tid inden jeg begyndte min research, interviewede jeg Kasper Lund om planerne for Dart. Han fortalte mig, at en speciel Dart-baseret virtuel maskine, Dartino, skal gøre programmering af Internet of Things-enheder nemmere. Så med det in mente vil det give mening, hvis Fuchsia er rettet mod IoT-markedet. Det rejser så spørgsmål om, hvordan Fuchsia passer sammen med den Android-baserede Brillo-platform, som Google lancerede i 2015.
Brillo er rettet direkte mod IoT-segmentet, så hvordan passer det med Fuchsia, hvis Fuchsia også er rettet mod IoT?
Jo, Brillo består af tre ting; Et styresystem (Android), kerne-services (som IoT-kommunikationsplatformen Weave) og et Developer Kit.
Skal Fuchsia erstatte Android i Googles IoT-stak?
Eksistentielt gætteri
Jeg får kontakt med Chris McKillop via LinkedIn.
”Dartino er ikke del af det her. Vi anvender den fulde Dart-VM,” skriver Chris McKillop og afkræfter således visse it-mediers sommerspekulationer om, at Fuchsia er et IoT-styresystem. Dartino-projektet blev startet, fordi den fulde Dart-VM ikke kunne køre på mikro-controllere med begrænset ram til rådighed.
Hvorfor er Fuchsia baseret på LK og ikke Linux-kernen?, lyder et andet af mine spørgsmål.
”Vi taler endnu ikke om 'hvorfor' på det her projekt. Undskyld,” lyder det fåmælte svar.
Det hjælper ikke, at jeg henviser til, at jeg er dansker og dermed relateret til Kierkegaard og eksistentielle spørgsmål som 'hvorfor'. Jeg spørger også, om Fuchsia er relateret til Googles såkaldte Andromeda-projekt, som ifølge rygter skal smelte Android og ChromeOS sammen.
”Jeg kan sige, at det er meget eksperimentelt og ikke har noget med ChromeOS eller Android at gøre,” svarer Chris McKillop.