Virtuell maskin, virtuell dator, är en virtuell miljö skapad genom programvara. Denna virtuella miljö ses av programmen som körs i miljön som om den vore den äkta maskinvaran.

VirtualBox

Virtuella maskiner kan användas såsom i programspråket C, där virtualmaskinen betyder att program kan skrivas för en av språket definierad maskintyp istället för den faktiska maskinvaran, som en ”sandlåda” som hindrar datorprogram att påverka miljön utanför sandlådan (såsom virtualmaskinen i Java), för att möjliggöra körandet av program skrivna för en annan miljö (jfr emulator) eller för körande av främmande operativsystem, som är skrivna med antagandet att de har full access till maskinvaran (vilket inte är fallet då de körs under ett annat operativsystem).

Virtuella maskiner har blivit populära den senaste tiden[när?], då den extra kapacitet den virtuella maskinen kräver inte längre har så stor betydelse, då datorerna blivit allt kraftfullare. Viktiga nya användningsområden är webbhotell (flera kunder kan erbjudas ”maskiner” de fritt kan rå över på ett fåtal verkliga datorer, främmande (eventuellt illasinnad) programvara som skall köras av webbläsare samt parallell användning av Linux och Windows.

För programspråket C var kapacitetsbehovet oväsentligt, då kompilatorn sköter konverteringen. Däremot betydde den virtuella maskinen att endast själva kompilatorn (och en mindre mängd systemnära funktioner) behövde porteras till ny maskinvara, vilket var revolutionerande.

IBM:s stordatorer gav redan på 1960-talet möjligheten att köra operativsystem i virtuella maskiner som tillhandahölls av ett operativsystem skrivet för ändamålet. Varje användare hade tillgång till en egen virtualmaskin (eller flera), vilket betydde att det egentliga operativsystemet slapp fördela resurser mellan enskilda program, och istället fördelade resurser mellan virtualmaskiner. Konceptet har utvecklats så att till och med centralprocessorer kan tas bort eller läggas till utan att de virtuella maskinerna berörs (annat än prestandamässigt).

Se även redigera