God steming i kantina. 🥗 Deler av teamet bak IncludeOS og Mothership. 📸: Jørgen Jacobsen
God steming i kantina. 🥗 Deler av teamet bak IncludeOS og Mothership. 📸: Jørgen Jacobsen Vis mer

IncludeOS-gjengen tror ikke Linux er egna til alt det brukes til i dag

Satser på bittelite operativsystem.

Det er godt stemning på kontoret til teamet bak IncludeOS om dagen. Tilskudd av flere millioner i EU-midler gjør at de kan videreutvikle ideen som startet som et forskningsprosjekt i 2013.

IncludeOS er ideen som virker litt snodig ved første blikk. Et lite operativsystem for å kjøre en C++-applikasjon? Har vi ikke allerede Linux til det?

Det er først når man snakker med gjengen bak at man forstår hva motivasjonen er.

For hva skal man med et gigantisk tradisjonelt operativsystem, med all slags drivere og programvare, når man bare skal kjøre én enkel applikasjon i produksjon?

Bør ikke heller operativsystemet være så lite som mulig? Helst helt usynlig?

Startet på skolen

Det var tanken til Alfred Bratterud, skaperen av IncludeOS. I 2013 var han doktorgrad-student på Høyskolen i Oslo og Akershus, nå Oslo Met. Forskningsgruppens hans var spesielt interessert i sky-teknologier.

Alfred Bratterud startet IncludeOS på Høyskolen i Oslo og Akershus. 📸: Jørgen Jacobsen
Alfred Bratterud startet IncludeOS på Høyskolen i Oslo og Akershus. 📸: Jørgen Jacobsen Vis mer

- På skolen kjørte vi 400 virtuelle maskiner. Og så begynte jeg å tenke på hvordan man kunne skalere til én million. Da begynte jeg å sette spørsmålstegn ved hvorfor virtuelle maskiner er så store. Du vet, de bruker ofte over 600 MB RAM, og kjører Ubuntu. 90 prosent av den virtuelle maskinen er overhead, forteller Alfred.

Alfred satt i gang et prosjekt for å bygge et minimalistisk operativsystem. Vi snakker lavnivå-kode i Assembler, bootloader, den slags – og muligheten til å kjøre et program skrevet i C++ på toppen av det minimalistiske OS-et.

I starten var planen å bygge en prototype og skrive en avhandling. Samtidig fikk Alfred tanken om å gjøre kildekoden åpen. Prosjektet begynte så smått å vokse, godt hjulpet av flere samarbeidspartnere på høyskolen.

#include <os>
#include <iostream>
#include <net/inet4>

void Service::start()
{

Navnet IncludeOS kom fra måten IncludeOS brukes på. Du inkluderer det nemlig som en hvilken som helst annen modul i en C++-applikasjon.

Alfred satt opp en Github-side og la ut en beskjed om at snart kommer det et unikernel-operativsystem for å kjøre én applikasjon: IncludeOS.

Så eksploderte det.

Cambridge ringer

Plutselig havnet prosjektet blant annet på Hacker News og C++-nettstedet isocpp.org. Jungeltelegrafen sendte rykter over hele nettet, og en dag tok Universitetet i Cambridge kontakt.

Det viste seg at en gruppe ved det prestisjetunge britiske universitetet drev med akkurat samme type prosjekt.

- Da tenkte jeg: Oj, kanskje dette ikke er så nytt, forteller Alfred.

Alfred Bratterud til venstre startet IncludeOS. Kristian Jerpetjøn i midten er nyansatt senior-utvikler, mens Alf-Andre Walla til høyre har bidratt på IncludeOS siden starten på Høyskolen i Oslo og Akershus. 📸: Jørgen Jacobsen
Alfred Bratterud til venstre startet IncludeOS. Kristian Jerpetjøn i midten er nyansatt senior-utvikler, mens Alf-Andre Walla til høyre har bidratt på IncludeOS siden starten på Høyskolen i Oslo og Akershus. 📸: Jørgen Jacobsen Vis mer

Operativsystemet på Cambridge het MirageOS, og baserte seg på programmeringsspråket Caml, og implementasjonen OCaml. I motsetning til Alfred og gjengens prosjekt, som baserte seg på C++, et mye mer utbredt språk.

Det viste seg at gjengen på Cambridge ikke hadde kommet spesielt mye lenger enn IncludeOS. Og var for det meste bare nysgjerrig på løsningen til Alfred.

Satser på innovasjon

Alfred bestemte seg der og da for å starte et selskap rundt ideen. Han fikk kontakt med innovasjonspartnere via høyskolen, og fikk stablet på beina flere investorer. I tillegg til en god slump med penger fra Forskningsrådet, åtte millioner for å være eksakt.

AS-et Lillestrøm Unikernel Klubb ble stiftet i april 2016, og er fortsatt selskapet bak IncludeOS. Flere av bidragsyterne til prosjektet på høyskolen er nå ansatte med eierandeler.

- Får man til å starte selskap gjennom forskning, er det mye større sjanse for å få tilskudd. Forskningsrådet vil hjelpe norske forskningsprosjekter å kommersialisere. Man kan bare glemme å få åtte millioner tildelt i det private, forteller Alfred.

Bedre enn Linux

Så satt gjengen der, med et operativsystem de visste hadde enormt potensiale. Men hvem skulle egentlig bruke det?

- Da jeg startet IncludeOS var det ikke et kommersielt motiv. Jeg hadde fokus på miljøgevinster. Tenk hvis en gigant i skybransjen hadde valgt å legge om til oss, sier Alfred.

Per Buer kom fra Varnish i 2017, og er nå CEO i IncludeOS. 📸: Jørgen Jacobsen
Per Buer kom fra Varnish i 2017, og er nå CEO i IncludeOS. 📸: Jørgen Jacobsen Vis mer

Gjengen visste at IncludeOS var raskt. Tester gjort ved OsloMet viste at de slo Linux med 100 til 200 prosent i enkelte nettverkstester. Oppstart av IncludeOS kunne gå så fort som 300 millisekunder.

- Det er mange som ikke trenger det operativsystemet de sitter med. Jeg tror ikke Linux er egna til alt det brukes til i dag, forklarer Per Buer.

Buer kom inn som CEO i IncludeOS fra Varnish i 2017.

- Linux er ikke forutsigbart nok. Linux kan plutselig være opptatt med noe annet, som cache-flushing. Det skjer masse ting inne i et Linux-system, men mange applikasjoner er avhengig av å gi umiddelbar respons.

Men hvilke applikasjoner er det snakk om?

Basefarm bruker IncludeOS

Gjengen kom etter hvert frem til at IncludeOS kunne fungert veldig bra som brannvegg og lastbalanserer. Fordelen med IncludeOS er nemlig at de har sin helt egne nettverksimplementasjon, og har tilgang til nettverksdata på et mye lavere nivå enn man vil få hvis man kjører en applikasjon gjennom Linux.

Basefarm, et av Norges aller største datasenter med storkunder som Norwegian, Altinn og Lånekassen sa seg villig til å teste IncludeOS. I skrivende stund holder Basefarm på å rulle ut IncludeOS til hele nettverket sitt.

- De synes IncludeOS er kjempekult! forteller Alfred entusiastisk.

Likevel er ikke Basefarm nok til å få hjulene til å gå rundt for IncludeOS. Bruken av operativsystemet begrenser seg fortsatt til entusiaster og forskning.

Men en forespørsel fra et par brukere i samfunnet rundt IncludeOS har endret fokus for fremtiden.

Program Horizon

- Dette er årets store erkjennelse for oss, forklarer Buer.

Han snakker om valget IncludeOS har tatt om å støtte ARM, en av de mest populære lettvekt-CPU-ene i verden, som brukes i alt fra mobiltelefoner til Raspberry PI. Og ikke minst innen IoT – Internet Of Things.

Gjengen i IncludeOS skal satse på ARM-basert teknologi fremover. 📸: Jørgen Jacobsen
Gjengen i IncludeOS skal satse på ARM-basert teknologi fremover. 📸: Jørgen Jacobsen Vis mer

Valget hadde riktignok ikke vært mulig uten Program Horizon, et initiativ i EU for å støtte europeisk forskning. Gjengen søkte programmet, og fikk 1,25 millioner euro.

Utviklerne tror Internet Of Things kan være fremtiden til IncludeOS. Da er de i så fall midt i smørøyet i Norge.

- Norge er hub-en i verden for lavenergiradioer, slik som Bluetooth Low Energy, forklarer Buer.

- Fordelen med IoT-selskaper er at de har egen hardware, og ofte skriver drivere selv. Dermed trenger de ikke et operativsystem som kommer med masse ferdiginstallerte drivere, forklarer Alfred.

Oppforderer utviklere til å prøve

Har du lyst til å prøve IncludeOS? Gjør det gjerne, ifølge Alfred.

IncludeOS er fortsatt på versjon 0.12, men mesteparten av operativsystemet er blitt temmelig robust, forteller Buer.

Selv om det fortsatt finnes områder som ikke er godt nok testet har systemet stått i produksjon en god stund, og versjon 1.0 er i følge Buer rett rundt hjørnet.

Dessuten krever det en viss forståelse for C++. IncludeOS fungerer nemlig kun ved å inkluderes i en C++-applikasjon. Men ifølge Alfred er det lett å komme i gang via eksempelfilene de har vedlagt på Github.

IncludeOS har troa på at operativsystemet deres skal prege fremtidens skytjenester. 📸: Jørgen Jacobsen
IncludeOS har troa på at operativsystemet deres skal prege fremtidens skytjenester. 📸: Jørgen Jacobsen Vis mer

Får selskapet ditt sansen for IncludeOS sitter gjengen klar med Mothership. En Go-applikasjon som snakker med IncludeOS-instanser gjennom en hjemmesnekret protokoll, og kan overvåke og bygge endringer lynkjapt. En løsning blant annet Basefarm benytter seg av.

IncludeOS-gjengen mener de vil strekke seg lagt for å skape verdi for kunder så fort som mulig. På spørsmål om de bruker SCRUM eller andre metolodogier i utvikling av kjernen til IncludeOS, begynner gjengen å le.