Det är god ingenjörskonst |
Virtualisering togs i bruk redan för fyra decennier sedan. Man sparar hårdvara genom att lägga flera servrar på samma processor. I pc-världen finns många skäl att välja virtualisering. Apple OS X kör både Windows och tidigare versioner av Mac OS virtuellt. Linux och Windows på samma pc kommer att bli en vanlig syn när x86:orna får virtualiseringsstöd. Den senaste servertrenden är att sälja mjukvara och operativsystem i paket och sedan köra alla program i varsitt virtuellt operativsystem - för att slippa problem med bakåtkompatibilitet. I inbyggnadsvärlden plockar konstruktörerna in Windows och Linux för att komma åt deras användargränssnitt och program. En annan drivkraft är säkerhet - vattentäta skott mellan operativsystemen gör att de inte kan störa varandra. Tekniken kommer också att användas för att bygga redundans. Men framför allt handlar det hittills precis som i servervärlden om konsolidering - att spara hårdvara. Det finns ingenjörer där ute som fnyser åt klumpigheten i att addera ett helt operativsystem bara för att komma åt några drivrutiner. Men priset i klockcykler och kilobyte har blivit lägre i de nya virtualiserarna. Och framför allt är virtualisering god ingenjörskonst - ett exempel på hur man gör för inte uppfinna hjulet på nytt. Virtualisering borde komma högt upp på alla listor över lösningar på problem som handlar om komponentisering, plattformsoberoende och time-to-market. |
Det är tre av många utvecklingsprojekt som pågår just nu där en enda fysisk processor sätts att utföra flera processorers jobb.
Linux/µItron-systemet spar 25 procent i hårdvarukostnad genom att exekveras på samma kärna i stället för på varsin.
Tekniken som används kallas virtualisering och innebär att ett operativsystem kör andra operativsystem som ”gäster” i virtuella maskiner.
De bästa virtualiseringssystemen skapar vattentäta skott mellan de olika operativsystemen. I extremfallet kan ett säkerhetskritiskt realtidssystem samexistera med ett öppet användaroperativsystem. Det senare ska kunna bootas om eller angripas av virus utan att det förras funktioner rubbas.
Mikrokärnan L4 satte ny standard
Just nu kommer en våg av ny virtualiseringsteknik. Det kan vi tacka den tyske forskaren Jochen Liedtke för.
För tio år sedan presenterade han en mikrokärna - ett minimalt operativsystem utan exempelvis nätverk och filsystem - med en magnitud högre prestanda än mikrokärnan Mach, den tidens facit.
Idag mognar Johan Liedkes kärna till produkter, under namnet L4, och används med fördel som grundteknik för virtualisering.
De nya lösningar som kommer ur detta ger de existerande virtualiseringsföretagen på marknaden en utmaning och tvingar i sin tur dem att utveckla sig.
- Virtualisering har kommit dramatiskt inom inbyggnadsområdet de senaste 1,5 åren, säger Torsten Voegler, produktchef på tyska Linuxleverantören Sysgo.
Sysgo var det företag som var först ut på marknaden med teknik som officiellt grundade sig på L4-forskningen. Mikrokärnan heter Pike OS och lanserades för ett år sedan. Kunder är bland annat Sharp, EADS och Daimler-Chrysler.
Sysgo har rekryterat minst två ingenjörer från Jochen Liedtkes institution på universitetet i Karlsruhe.
Qualcomm kör australisk L4
Men den L4-forskning som gör mest väsen av sig just nu kommer inte därifrån, utan från det australiska IT-forskningscentrumet Nicta, som bestämt sig för att kommersialisera L4. I november 2005 annonserade Nicta att man utvecklar en mobiltelefon med Qualcomm.
Nicta blev därmed nummer två på marknaden med en officiell L4-kärna.
- Vi har mycket mer kommersiell verksamhet än vi kunde drömma om för ett år sedan, säger Gernot Heiser, professor på Nicta.
- Vi jobbar med hur vi ska kunna hantera det. Helt klart är att vi inte kan äventyra forskningen, för den är grundläggande för vår fortsatta konkurrenskraft - om våra projekt lyckas blir våra produkter helt överlägsna allt annat.
Nictas och Sysgos L4-versioner har vidareutvecklats parallellt. Enligt Gernot Heiser har man i många fall valt samma lösningar. Men han ser en nyansskillnad i inriktningen.
- De har medvetet hållit kärnan enkel för att göra certifiering mindre omständlig. Medan vi har satsat på prestanda, säger Gernot Heiser.
Torsten Voegler på Sysgo reserverar sig mot den beskrivningen.
- Jag känner i och för sig inte till Nicta så bra. Men att optimera för certifiering och för prestanda innebär ofta samma sak, att man minskar antalet kodrader. Målen går ofta hand i hand.
Certifiering innebär att man styrker att operativsystemet är buggfritt, så att det kan användas i säkerhetskritiska system.
Bland Nictas framtida projekt för L4 finns även en verifierad variant av L4. Och ambitionsnivån är högt ställd. Man vill formellt bevisa korrektheten hos mikrokärnan. Detta mål går till och med utöver vad säkerhetscertifiering kräver.
- Vi utmanar gränserna för vad man kan göra med formella metoder. Men vi hoppas vara klara om två år och hittills löper allt enligt planerna, säger Gernot Heiser.
Ett annat framtidsprojekt är att skapa en L4 med maximal flexibilitet. Även grundläggande funktioner som schemaläggning och minnesallokering ska ligga utanför mikrokärnan och vara utbytbara moduler.
- Hittills vi har svårt att få bra prestanda i de försöken, säger Gernot Heiser.
Öppen källkod ”omstörtande”
All mjukvara som Nicta utvecklar är öppen källkod. Inkomsterna kommer från konsultandet.
Också lilla kanadensiska Sombrio System vill bli L4-konsult. Man gör egen utveckling av L4 som öppen källkod och integrerar den bland annat i realtidslinuxprojektet Xenomai.
- Jag ser oss inte som konkurrenter till de företag som säljer produkter för virtualisering. Däremot kommer vår källkod att bli ganska omstörtande för dem, eftersom den gör vad deras produkter gör, fast gratis, säger Christopher Stone på Sombrio Systems.
Företaget ligger i startgroparna för sin första L4-lansering i slutet av april.
Franska Trango är en annan ny spelare, men med en alldeles egen mikrokärna som man hävdar ställer självaste L4 i skuggan. Den ska bland annat ha en tiondel av fotavtrycket.
- Vi har kunder som utvärderar oss jorden runt: i Japan, Europa, och USA, säger Pierre Coulombeau, vd på Trango.
- En av dem har börjat bygga en prototyp och vi räknar med att starta ett projekt mot slutet av året.
Ett av projekten är en mobiltelefon och Trango säger sig också ha kontakter med underleverantören till ett ”stort berömt” svenskt företag. Trango kaxar upp sig mot konkurrenten Jaluna, vars virtualiseringsteknik enligt Trango gör det betydligt svårare för programmeraren att verkligen garantera oberoende mellan partitionerna.
- Vi är de enda på inbyggnadsmarknaden som kan integrera Windows CE med ett RTOS på ett säkert sätt, säger Pierre Coulombeau.
Franska Jaluna får tåla lite utmaningar som nestorn i sammanhanget med hela fyra år på nacken. Företagets teknik bygger på en gammal Sun-mikrokärna, Chorus OS, med rötter ända till 80-talet.
Jalunas virtualisering finns i mobiler, nätutrustning och tv-boxar. Och företaget deltar i ett treårigt projekt med franska försvarsdepartementet om att köra Linux i säkerhetskritiska system via virtualisering.
Programmen delar med sig
Några ännu äldre spelare som gör nylanseringar just nu är Lynuxworks, QNX och Tenasys.
Mikrokärnan Neutrino från kanadensiska QNX ligger egentligen vid sidan av denna text, eftersom den inte kör gästoperativsystem utan bara Neutrinoprogram.
Däremot erbjuder QNX strikt trådpartitionering - möjligheten att köra flera program parallellt i operativsystemet, och utan att de kan störa varandra. QNX delar upp programmen i grupper och genomdriver en strikt policy för hur mycket resurser programgrupperna får använda.
I februari lanserade företaget dessutom en finess som man hävdar är helt unik - adaptiv partitionering - grupperna kan skänka varandra processorcykler som de tillfälligt inte behöver.
Virtualiserare för inbyggda system. Klicka för större bild. |
- Det betyder att CPU:n kan utnyttjas fullt ut. Effektiv resursanvändning är mycket viktigt i inbyggda system, och i andras partitioneringslösningar är dessa klockcykler bortkastade, säger Paul Leroux, teknikanalytiker på QNX.
Amerikanska Lynuxworks är det företag som nått längst i tävlingsgrenen säkerhetscertifiering. Mikrokärnan Lynxsecure är visserligen fortfarande under utveckling, men USA:s försvarsdepartement tror så mycket på den att den får en huvudroll när operativsystemet Linux militäriseras i USA:s nätverksbaserade stridssystem FCS (Future Combat Systems). Det opålitliga Linux kommer att exekvera på samma kärna som säkerhetskritiska realtidssystem.
Amerikanska Tenasys har ända sedan MS-DOS dagar varit inriktad på en enda nisch: att blanda Microsofts operativsystem med det egna realtidsoperativsystemet Intime på x86-processorer.
Fram till idag. För nu lanserar Tenasys en teknik som bjuder in samtliga x86-kompatibla operativsystem i leken.
Windows med realtid
Det som gör det möjligt är virtualiseringsstödet VT-x i Intels nya processorer. Tenasys nya produkt heter Real-Time Hypervisor.
- Vi anser att VT-x och vad vi använder det till är det mest spännande som händer inom området partitionering idag, säger Paul Fischer, teknisk marknadsförare på Tenasys.
Han hänvisar stolt till att Intel demonstrerar VT-x på Tenasys plattform.
Tenasys klassiska tillämpning har varit att sy samman realtid i robotar och industritillämpningar med användargränssnitt och tillämpningsprogram från Windows.
Tenasys har haft stöd för dubbelkärnan Intel Core Duo sedan den lanserades och erbjuder bland annat den intuitivt tilltalande uppdelningen att köra XP och Intime på varsin kärna. Det ger en magnitud bättre realtidsresponser i Intime.
Också Jaluna, Sysgo, Nicta och Sombrio lovar att kunna dra nytta av virtualiseringsstödet i processorer från både AMD (Pacifica) och Intel (VT-x).
Gäster direkt ur kartongen
Stödet gör det möjligt att hoppa över paravirtualiseringen - att anpassa källkoden i gästoperativsystemet för virtualiseringen - och köra operativsystem i princip direkt ur kartongen. Det ger en tidsvinst. För Jaluna tar det exempelvis tre, fyra månader att paravirtualisera ett nytt operativsystem.
Dessutom öppnar det dörren för vem som helst för att virtualisera operativsystem med sluten källkod, som Windows XP, som idag är problematiska att paravirtualisera.
Sysgo är ännu inte riktigt nöjd med VT-x och diskuterar med Intel om hur det kan förbättras.
- En kombination av partitionering i hård- och mjukvara skulle vara ett verkligt lyft för både säkerhet och pålitlighet i kundernas projekt, säger Sysgos Torsten Voegler.
Jalunas affärsutvecklingschef Michel Gien anser att det är för tidigt att säga om VT-x blir tillräckligt effektivt för att ersätta all paravirtualisering på x86:or med äkta virtualisering.
Nictas Gernot Heiser är skeptisk vad gäller prestandan.
- Dagens virtualiseringsstöd löser bara delvis prestandaproblemen med äkta virtualisering. Vår paravirtualisering är helt överlägsen.
Den andra stora hårdvarunyheten just nu är multikärnor. Trenden tycks vid första påseendet slå undan benen för virtualisering - varför dela på en kärna när det finns så många?
Också multikärnor ska virtualiseras
Varför dela på bara en kärna när man kan dela på två? blir motfrågan.
Om man skiljer mellan fysiska och virtuella kärnor får man flexibilitet att avdela kanske 1,5 kärnor till det operativsystem som behöver det. Och dessutom till att skala upp sin lösning - kanske automatiskt - till ännu fler kärnor allteftersom de erbjuds.
För det andra kommer man också på en multikärna att behöva övervaka användningen av kringenheter som minne och gränssnitt.
En brandvägg i sig blir enklare att skydda mot virusangrepp om den kan exekveras i en parallell och oåtkomlig partition. Företag som Microsoft kan mycket väl tänkas utforma sitt nästa operativsystem Vista på detta vis, med virusskydd i en separat partition.
- Virtualisering kommer att finnas överallt där man behöver säkerhet, tror Jalunas Michel Gien.
Han ser dessutom bonusmöjligheter nu när nya multikärnor introduceras och branschens programmerare ännu inte hunnit lära sig utveckla för dem.
- Vi kan ta hand om schemaläggningen och distributionen på multikärnorna, säger Michel Gien.
Dagens enkärnelösning kanske består av två program som körs i ett operativsystem.
I en dubbelkärna skulle virtualisering placera de två programmen i var sitt operativsystem, i var sin kärna. Enkärnelösningen skulle på det viset parallelliseras utan någon modifiering av programmen.
Ytterligare en spännande idé från Michel Gien är att använda multikärnor som redundans för att höja pålitligheten. I en dubbelkärna skulle båda kärnorna kunna köra exakt samma gästoperativsystem och programvara. Ett tredje program skulle övervaka systemet och larma när kopiorna levererar olika resultat. Detta skulle vara ett sätt att upptäcka intermittenta fel.