Microsoft utvikler et nettsentrert OS

«Midori» kan tolkes som en forberedelse på en framtid der Windows er gått ut på dato.

De siste ukene har stadig flere teknologinettsteder skrevet om et prosjekt som Microsoft driver, under navnet «Midori». I går slo Software Develoment Times til med en svært omfattende artikkel basert dels på interne dokumenter, dels på samtaler med forskere som er engasjert i prosjektet, dels på samtaler med uavhengige utenforstående: Microsoft's plans for post-Windows OS revealed.

Av denne artikkelen, og av tidligere skriving, går det fram at Midori representerer noe helt nytt: Det dreier seg ikke om en oppgradering av Windows, men om en ny type komponentbasert operativsystem som bygger på moderne tanker om distribuert, nettbasert databehandling, og på tjenesteorientert arkitektur.

Midori er komponentbasert og beregnet på alle slags apparater og systemer, fra små mobiltelefoner til store datasentraler. Midori-applikasjoner skal kunne settes sammen av etablerte tjenester, og skal kunne fordele sine oppgaver på tilgjengelige noder i nettverket.

Microsoft har ennå ikke offisielt anerkjent at Midori eksisterer, men lekkasjene er nå så omfattende at en innrømmelse må være nært forestående. Det skal opprinnelig stamme fra et offisielt prosjekt kjent som Singularity, som dreier seg om utvikling av fullt ut pålitelige programvaresystemer.

Midori-prosjektet antas å være ledet av Eric Rudder som fram til omorganiseringen i 2005 ledet Microsofts avdeling for servere og verktøy, og som i dag har tittelen «senior vice president for technical strategy».

Maskinvareplattformer som nevnes i forbindelse med Midori er x86, x64 og ARM. Midori skal også kunne være gjest på Microsofts hypervisor Hyper-V. Av hensyn til bakoverkompatibilitet med Windows, skal det også være mulig å kjøre Midori som gjest hos en Windows-prosess.

Vesentlige egenskaper ved Midori er samtidig kjøring av mange oppgaver, og parallell bruk av lokale og distribuerte ressurser. Man tenker seg alle mulig topologier for distribusjon av ressurser, som klient-tjener, hierarkiske flertrinnsmodeller, likeverdige noder i randen av et nettverk («peer to peer») og datasentraler lagt ut som ressurs for «cloud computing», det vil si der datakraft, lagring og tjenester er tilgjengelig for brukere over en internettforbindelse.

Disse beskrivelsene innebærer at Midori selv må kunne håndtere en høy grad av virtualisering. En del av systemet er følgelig i ny høynivå applikasjonsmodell som abstraherer bort detaljer om fysiske maskiner og prosessorer. Denne modellen skal være døpt «Asynchronous Promise Architecture».

Et sentralt poeng med Midori er at utviklere skal kunne skrive programvare som gjør effektiv bruk av massiv parallellisme uten å kreve inngående kunnskap om parallelle systemer. Blant annet skal Midori selv håndtere delt minne ved parallellkjøring på lokale prosessorer. Dette skal ikke skje gjennom vanlig låsing av data, men ved et prinsipp kjent som transaksjonelt minne («transactional minne»). Det innebærer at Midori kjører en kontrollprosess for å oppdage om det kan ha oppstått feil når forskjellige prosesser endrer den samme dataen, og for å kjøre disse prosessene om igjen uten feil. I flertrådsprosessering i dag er det vanlig med låser slik at data bare aksesseres av én prosess om gangen. Det verner mot feil, men erfaringen er at 99 prosent av låsene er unødvendige. Sun arbeider med transaksjonelt minne i sine kommende flertrådsprosessorer.

Bedre sikkerhet og feilhåndtering er også viktige for Midori. Utviklingsmodellen skal legges opp med tanke på at utviklere ikke har anledning til å begå feil som i dag er typiske, og at vanskelige oppgaver som beregninger rundt pekere skal kunne overlates til automatikken. Under kjøring skal systemet kunne merke seg nøyaktig hvilke prosesser som skades når det oppstår kjeder av feil, og selv være i stand til å korrigere feilen og sette prosessene i gang igjen.

En kommentator sier programmeringsmodellen til Midori innebærer at man kjører SOA inn i runtime.

Det innebærer mindre behov for å forholde seg til vanskelig mellomvare, og at den typiske utvikleren vil kunne forestille seg sin applikasjon med utgangspunkt i tynne og asynkrone tjenester.

Det skal ikke være satt noen bestemt tidsramme for Midori-prosjektet.

    Les også:

Til toppen