Logoen til IncludeOS er ganske selvforklarende, i alle fall utviklere med erfaring fra C/C++. (Foto: IncludeOS, Wikimedia Commons (CC BY-SA 3.0))

IncludeOS

Nytt norsk operativsystem vekker oppsikt

IncludeOS er supereffektivt ved å snu opp-ned på vanlig konsept.

De fleste som har brukt en pc eller annen form for datamaskin, har fått med seg at applikasjoner eller programvare er noe som man installerer og kjører i et operativsystem. Men behøver det å være slik?

Alfred Bratterud er stipendiat ved Høgskolen i Oslo og Akershus (HiOA) og har sammen med masterstudent Alf-Andre Walla og forskningsgruppen Netsys utviklet et operativsystem som opptrer på en litt annen måte enn vanlig.

Inkludert i programmet

– Vi har kalt det IncludeOS fordi man inkluderer operativsystemet inn i programmet, i stedet for å installere programmet i operativsystemet, som vi er vant med på våre vanlige, personlige datamaskiner, forklarer Bratterud. Dette gjør at programmet kan startes direkte på en virtuell datamaskin, uten noe imellom.

Hensikten er å kunne redusere ressursbehovet ved kjøring av applikasjoner i for eksempel en nettsky. Eksperimenter har vist at IncludeOS krever 5 til 20 prosent mindre prosessorbruk enn Linux i en klassisk virtuell maskin for å utføre samme oppgaver. I eksperimentet ble det brukt en enkel DNS-tjeneste, med samme kompilerte binærfil i begge testsystemer.

Testen er omtalt i den vitenskapelige artikkelen som midlertidig er tilgjengelig her. Den skal senere bli publisert av IEEE Explore.

Operativsystemet kan inkluderes i et C++-program på samme måte som man inkluderer headerfiler ved å ha «#include <os>» som den første linjen i kildekoden. Et eksempel på hvordan dette kan gjøres, finnes her.

Fjerner overhead

– Du inkluderer det du trenger fra operativsystemet, inn i programmet du skriver, i stedet for å legge programmet inn i operativsystemet. Derfor kaller vi det «service oriented». Klassiske operativsystemer er mer «hardware oriented» – mesteparten av gigabytene går med til å lage støtte for et mylder av maskinvare. Dette slipper vi i nettskyer – det er ingen behov for printere, USB-dingser eller lydkort der, skriver Bratterud i en e-post til digi.no.

Ifølge Bratterud er den primære målgruppen i dag ressurskrevende nettjenester, gjerne med høyt krav til ytelse, robusthet og sikkerhet.

– Vi leter akkurat nå etter et godt case fra industrien – en kunde som har en forholdsvis liten, men ressurskrevende tjeneste, som de kanskje ønsker å kunne skalere opp ekstremt raskt i perioder, for eksempel før jul, forteller han.

– Til å begynne med er målet å kunne være en «drop-in replacement» av RESTful API-er skrevet i for eksempel Node.js. Sammenliknet med Node.js vil man da både få kapslet inn tjenesten i et hardware-beskyttet virtualiseringslag, og man vil få drastisk økt ytelse ved å oversette til C++, skriver Bratterud.

Blokkdiagram over IncludeOS
Slik er IncludeOS bygd opp. Bilde: IncludeOS
 

Fordeler med C++

Alfred Bratterud
Alfred Bratterud er stipendiat ved HiOA og leder utviklingen av IncludeOS. Bilde: Jørgen Lie Furuholt / HiOA
Han innrømmer at det generelt sett er litt vanskeligere å programmere i C++ enn for eksempel Java og JavaScript.

– Men det er helt udiskutabelt ansett som raskest (sammen med C), og det genererer også de minste programmene. Alle store dataspill, for eksempel for Xbox og Playstation skrives i C++. Også all infrastruktur, med høye krav til ytelse, skrives enten i C eller C++, i tillegg til operativsystemer, browsere, Spotify etc, skriver Bratterud.

Han påpeker at en tjeneste som er skrevet for IncludeOS også blir direkte flyttbar mellom alle moderne x86-maskiner.

– Med andre ord kan du sende en ferdig bygget webserver på 1 megabyte fra din Mac til din Windows-maskin, og den kjører begge steder uten å bygge på nytt, skriver han.

Ved å slå sammen programmet, som Node.js, med operativsystemet som i dag alltid er til stede i vanlige virtuelle maskiner, sparer man ifølge Bratterud både minne, CPU-tid og diskplass. Med IncludeOS fjerner med mest mulig av slike overflødigheter.

Fantastiske egenskaper

– Man tar en applikasjon og lar den selv hente ut det den trenger fra operativsystembiblioteket (library operating system), når den kompileres. Til slutt hekter man på en «bootloader», og kan da starte opp applikasjonen direkte på virtuell maskinvare, uten noe annet operativsystem imellom, forklarer Bratterud, som legger til at man samtidig oppnår bedre sikkerhet, fordi tjenestene som helhet blir mindre kompliserte.

– Det som er fantastisk med informatikk er at de løsningene som er mest bærekraftige og ressurseffektive, også er de raskeste og råeste. Med andre ord er det de raskeste programmene er også de som bruker minst strøm, og som tar minst plass, skriver han. Dette er viktig, fordi dagens bruk av datasentre og nettskyen er ekstremt ressurskrevende.

Bratterud forteller at han allerede i 2013 leste en rapport fra Greenpeace hvor det ble opplyst at cloud computing globalt bruker mer strøm enn det som var totalforbruket i India.

«The Jedi Council»

Inntil nylig har IncludeOS i liten grad blitt omtalt av pressen, men dette endret seg etter at Bratterud deltok på IEEE CloudCom-konferansen i Vancouver i begynnelsen av desember. Der ble IncludeOS formelt introdusert. Samtidig ble kildekoden gjort tilgjengelig på Github, utgitt med Apache 2.0-lisens.

Responsen skal ha vært overveldende, og IncludeOS ble i dagene som fulgte omtalt av flere amerikanske teknologiaviser. Ekstra stas syns Bratterud det var at IncludeOS ble trukket fram på forsiden av nettstedet til Standard C++ Foundation den 2. desember.

– Det var helt spesielt. Det er dem jeg konsekvent omtaler som «The Jedi Council». For meg er det en stor ære. Samtidig er jeg smertelig klar over alt som er uferdig, feilene og manglene. Det er et stort steg fra forskningsprototype til ferdig produkt, forteller Bratterud.

Allerede er det mange tusen som har vært innom Github-siden til IncludeOS. Bratterud mener viktig at utviklere og bedrifter signaliserer at dette er teknologi de kunne tenke seg å bruke.

– Det har også vært veldig morsomt å få direkte bidrag til koden og dokumentasjonen, fra vilt fremmede. En av de virkelig store fordelene med åpen kildekode er at du kan få tilbakemeldinger og bidrag fra dyktige utviklere verden over, sier Bratterud, som håper interessen vil holde seg.

Kommersialisering

Det planlegges også en kommersiell og markedsrettet versjon av IncludeOS. HIOA samarbeider med Kjeller innovasjon, som er støttet av Forskningsrådets Forny-program, for å bidra til denne prosessen.

– Neste steg for prosjektet er å demonstrere fordelene med IncludeOS i realistiske og brukerdefinerte applikasjoner, sier Fredrik Häger, prosjektleder i Kjeller Innovasjon, i en pressemelding.

Sammen med høyskolen skal kommersialiseringsaktøren ha gjort grundige vurderinger av anvendelsesområder og potensielle markeder.

– Vi ser at IncludeOS ligger klart i tet blant konkurrerende initiativer. Vi arbeider nå med å hente offentlige midler til videre utvikling, og har grunn til å tro at IncludeOS raskt vil kunne bli attraktivt for investorer, sier Häger.

Til toppen