Unikernels zijn hot. Dat komt omdat ze nauw verbonden zijn met het idee van een cloud besturingssysteem; volgens sommigen de toekomst van besturingssystemen. Mocht dat inderdaad het geval zijn, waar moeten we dan zoal op letten?

De kern van elk besturingssysteem is de kernel. Je hebt daar verschillende varianten van met bijbehorende technische aanduidingen: monolithische kernels, microkernels, exokernels en unikernels. Eerstgenoemde komt verreweg het vaakst voor. Onder andere Linux, Windows en de BSD’s hebben allemaal monolithische kernels. De laatstgenoemde variant, de unikernel, is het minst bekend en was lange tijd eigenlijk niks meer dan exotisch, academisch speelgoed. Daar is de laatste tijd echter verandering gekomen, want de Amerikaanse virtualisatie koplopers van Docker kochten onlangs een bedrijf dat zich specialiseerde in die technologie.

 

OS in de cloud

De meningen verschillen over wat een cloud operating system dan precies inhoudt. Er zijn ruwweg twee interpretaties: óf het is een besturingssysteem dat vanaf de grond af is gebouwd voor de virtualisatie mechanismen van moderne cloud computing infrastructuur; óf het is een besturingssysteem dat letterlijk “in de cloud” (dus bijvoorbeeld in een browser) draait. De twee ideeën zijn niet per se onverenigbaar en hebben met elkaar gemeen dat de berekeningen achter het besturingssysteem zich grotendeels in de cloud, in plaats van op een lokale computer, bevinden.

 

Browser

Nu internettoegang (met min of meer acceptabele snelheid) in de westerse wereld langzamerhand gemeengoed aan het worden is, wordt er in de IT-wereld veel nagedacht over de toekomst van onze interactie met software. Het is duidelijk dat we steeds afhankelijker zullen worden van wat er in de cloud gebeurt. De logische volgende stap is dan: waarom plaatsen we dan niet ook het besturingssysteem zelf in de cloud? Ergens is die redenering misplaatst, want om met lokale hardware (zoals je mobiel, laptop of thin client) te kunnen samenwerken, heb je nog steeds een lokaal besturingssysteem nodig. De crux zit hem dus vooral waar de applicaties draaien en dat zal inderdaad steeds meer in de cloud zijn. Het bekendste voorbeeld van dat browser-gebaseerde idee is Google’s Chrome OS. De Chrome browser draait daar lokaal, maar alle applicaties draaien via het Web in Chrome en bevinden zich daarmee dus “in de cloud”.

 

Jolicloud

Eén van de bekendste cloud besturingssystemen en voorloper van Chrome OS was JoliOS, dat naar eigen zeggen miljoenen gebruikers kende. Jolicloud, het bedrijf achter het systeem, trok er echter de stekker uit, omdat het zich op andere cloud-gerelateerde diensten wilden richten, gebaseerd op Chrome OS. Hetzelfde lot trof overigens veel van dit soort desktop besturingssystemen: van online lijstjes over cloud besturingssystemen uit 2013 (destijds al uitgeroepen als mogelijk “next big thing”) functioneert vandaag de dag nog slechts een handjevol.

 

Os.js en CorneliOS

Twee open source cloud OS’en zijn OS.js en CorneliOS. Beiden zijn beschikbaar onder de GPL. Os.js is, zoals de naam al aangeeft, geschreven in Javascript. Op de website (os.js.org) treffen we een erg coole demo, waarin we zelfs onder andere een prehistorische Wolfenstein 3D kunnen spelen. CorneliOS is perl-gebaseerd en is het onderliggende platform dat wordt gebruikt door Joopita, een Luxemburgse non-profit voor educatieve projecten. Maar CorneliOS kan dus ook op zichzelf als besturingssysteem worden gebruikt.

 

Veelvoud

Zo zijn er meerdere van dit soort desktop besturingssystemen, Web OS’en of cloud besturingssystemen te vinden. Vaak zijn het hobbyprojecten, die door een paar programmeurs zijn gebouwd en soms zijn het bedrijven, die denken goud in handen te hebben. Je kunt je echter afvragen wat het nut is van een OS in je browser. Het integreren van cloud diensten kan handig zijn, maar de aanbieders van die diensten (bedrijven als Google, Microsoft, Facebook, Yahoo, etc.) hebben zelf al applicaties, die op het web draaien en die vaak stukken beter werken. Tenzij het dus om Chrome OS gaat, lijkt het concept van een desktop OS in de cloud een beetje nutteloos.

Mochten cloud besturingssystemen ooit aanslaan, dan is het onwaarschijnlijk dat het uit de hoek van de browsersystemen komt. Tenzij het gaat om oplossingen, zoals de startup Deskdoo. Zij richten zich puur op de zakelijke markt en proberen online collaboratie in de browser te vergemakkelijken. Ze doen dit als een soort concurrentie voor Microsoft en er zijn maar weinig startups die dat aandurven…

 

Unikernels

Maar waarom dan de hype rondom cloud besturingssystemen? We moeten het dan in de andere definitie van het concept zoeken. Het Amerikaanse bedrijf Docker, dat met rappe schreden erg populair is geworden in de wereld van virtualisatie en de zogenaamde DevOps, schafte eind vorig jaar het Britse bedrijf Unikernel Systems aan. Volgens Docker CTO Solomon Hykes was het de meest opwindende acquisitie van Docker ooit. Waar Docker vooral bekend staat om containers (waarbij een applicatie als een opzichzelfstaande dienst in de cloud draait) blijken ze zichzelf steeds meer te zien als algemene leverancier van “microdiensten”, waaronder containers. Unikernel Systems, met nauwe banden met de Universiteit van Cambridge, werkte aan het concept van zogenaamde unikernels en die passen precies in dat plaatje. Een unikernel is namelijk een soort van container, maar dan met alle abstractielagen van het besturingssysteem er tussenuit gehaald. In feite is het een radicale herinterpretatie van de interactie tussen hardware en software, ontstaan uit academische debatten aan universiteiten en op conferenties. Unikernels verweven in eerste instantie enige bekendheid door MirageOS, een open source unikernel die op de virtualisatieserver Xen werkte, en OSv van het bedrijf Cloudius. De projectleider van MirageOS is overigens de eigenaar van Unikernel Systems, wat de acquisitie van Docker natuurlijk extra verklaart. Unikernels zijn, aldus Hykes, eigenlijk de volgende stap qua virtualisatie: “the next step in shrinking the payload from VM’s to containers to unikernels”.

 

Fugue

Als er inderdaad iets spannends te gebeuren staat in de wereld van cloud besturingssystemen, dan moeten we het dus duidelijk in de hoek van virtualisati zoeken. Dat betekent dat we ons richten op DevOps en niet zozeer op gewone consumenten, die applicaties gebruiken die al dan niet in de cloud draaien. Een ander vergelijkbaar project dat de laatste tijd veel aandacht heeft gekregen, is Fugue. Fugue is een startup, die nog in “stealth mode” is. Dat wil zeggen dat het alleen voor een selectief publiek te bekijken is. De startup wordt hoog ingeschat: in januari werd er, na verschillende eerdere miljoeneninvesteringen, een investeringsronde van 20 miljoen dollar afgesloten. Fugue werkt op AWS (de cloud van Amazon) en schijnt veel gebruik te maken van functionele programmeertalen in samenwerking met Amazon Lambda. De ontwikkelaars van Fugue zijn naar eigen zeggen met een schone lei begonnen. “Hoe bouwen we het beste besturingssysteem om samen te werken met cloud infrastructuur?” Het is onduidelijk wanneer de precieze launch is, maar de verwachtingen zijn in ieder geval hooggespannen.

 

Voorspelling

Je zou kunnen zeggen dat moderne besturingssystemen sowieso al steeds meer cloud-based worden, zoals goed te zien is bij pogingen van Canonical om Ubuntu meer cloud-based te maken en Microsoft’s integratie van OneDrive en Office in de cloud. Dit maakt het nog onwaarschijnlijker dat er opeens een nieuw cloud besturingssysteem langskomt, die de consumentenmarkt verovert. In de wereld van virtualisatie en DevOps zou het echter best weleens kunnen, dat er een revolutie aan zit te komen: Unikernels, OSv, Docker en Fugue zijn dan zeker projecten om in de gaten te houden.

 

Links

 

Jolicloud – jolicloud.com
OS.js – os.js.com
CorneliOS – cornelios.org
MirageOS – mirage.io
OSv – osv.io
Unikernel Systems – unikernel.com
Fugue – fugue.co