Virtualisering av XP i Windows 7
För att säkerställa bakåtkompabilitet i Windows 7 kommer en virtuell maskin med Windows XP kunna köras till att köra programvara i ett speciellt kompabilitetsläge om så krävs. Även om virtualisering både är gammalt och välbeprövat har åsikterna kring microsofts lösning skiljt sig väldigt mycket.
I den här artikeln har jag tänkt förklara varför jag tror att virtualisering är en bra lösning på många problem samt reda ut några vanliga missuppfattningar som ofta dyker upp på diskussionsforumen.
För att sammanfatta så kommer man till Windows 7 kunna ladda hem en virtuell maskin med Windows XP SP3. Denna virtuella maskin bygger på Virtual PC, microsofts virtualiseringsprogramvara. Till skillnad från vanliga virtualiseringsprogram rör det sig inte om att virtualisera hela operativsystemet med skrivbordsmiljö och allt där till, utan att ha ett slags ramverk i bakgrunden som applikationerna körs på, samtidigt som allt beter sig precis som vanligt för användaren gällande exekvering, fönsterhantering och liknande.
Tanken är alltså att använda XP till att köra ej kompatibel programvara, men det ska se ut som och fungera precis som den gick att köra i Windows 7.
En vanlig missuppfattning är att det är ett misslyckande att inte upprätthålla full bakåtkompabilitet. För att kunna ge en bra förklaring på detta väljer jag att gå tillbaka något i tiden, närmare bestämt till millennieskiftet.
Många av oss minns kanske när Windows 2000 kom ut, det var så pass mycket bättre än Windows 98 och ME att man hade överseende med kompabilitetsbristerna mot äldre applikationer. En vanlig lösning var att dualboota med 98/ME, bara för att kunna köra vad det nu var som krånglade när man väl behövde det.
Men varför var då kompabiliteten lägre? För att Windows 2000 hade många stora skillnader i hur det fungerade, säkerhet, drivrutiner och självklart mycket annat. Koden var omskriven till det bättre och en del ”bagage” hade tagits bort. Ser vi tillbaka nu är det få av oss som är intresserade av att köra med Windows 98 för att upprätthålla kompabiliteten.
Under ungefär samma tid gick Apple över från OS9 till OSX. För er som inte är insatta var OS9 ett ganska mediokert system troligtvis jämförbart med Windows 98 och OSX är ett unixbaserat system. Apples operativsystem skiljde ännu mer än 98 och 2000, kompabilitet mellan dem var inte att prata om. Lösningen var att virtualisera, majoriteten av program fungerade i ett läge som kallades classic. Till skillnad från vmware och liknande startade man inte upp ett helt operativsystem med skrivbordsmiljö, utan endast en kärna i bakgrunden som programmen kommunicerade med. På detta sätt kunde man låta virtualiserade applikationer fungera i den moderna skrivbordsmiljön. På detta sätt kunde man relativt smärtfritt migrera till ett nytt stabilt operativsystem utan att lämna användare i kläm.
I fallet med Windows 2000 blev bakåtkompabiliteten bättre med tiden, men att röra runt i koden för kompabilitet ger också risken att stödet för en applikation kommer på bekostnaden att någon annan slutar fungera. Det är inte heller omöjligt att nödvändiga säkerhetsuppdateringar i operativsystemet kan behöva sänka bakåtkompabilitet. Med en virtuell maskin minskar dessa risker. Det går att styra vilka rättigheter den ska ha och en uppdatering av huvudoperativet behöver inte påverka den virtuella maskinen.
En annan vanlig missuppfattning är att den virtuella maskinen skulle ligga i bakgrunden och dra resurser ur systemet. Detta är sant, förutsatt att man behöver köra applikationer i kompabilitetsläge hela tiden. De tillfällen när gamla program inte behöver köras i kompabilitetsläge kommer systemet troligtvis vara mer resurssnålt eftersom mycket kompabilitetskod kan bli urlyft till förmån för virtualiseringen.
Att virtualisering är något mer resurskrävande var troligtvis ett större problem för Apple vid migreringen mellan OS9 och OSX än vad det är idag. De flesta sitter idag på maskiner med två eller fler kärnor, ramminne är billigare än någonsin och majoriteten av de äldre program vi vill köra kan bara utnyttja en kärna och 2GB av ramminnet.
Så här i efterhand hade det kanske inte varit så dumt om microsoft hade släppt en liknande lösning för att kunna köra Windows 98 och dos-applikationer i Windows 2000. Det hade nog sparat både tekniker och fantaster av retrospel en hel del blod svett och tårar.
Länkar
Virtualisering i Windows 7 hos winsupersite.com
Virtualisering i OSX hos wikipedia
Senaste aktivitet i forumet
- 64bits i en lärobok av SpiXx^Orginalet
- Kanske lite åsiktregistrering vore praktiskt av SpiXx^Orginalet
- "Case sensitive" MySQL av Peter Wall
- Hypnos av Ghlargh
- Öldator blev vattendator och överlevde! av Ghlargh
