Inden for datalogi er fuld virtualisering en teknologi, der bruges til at levere et specifikt virtuelt miljø, der giver fuldstændig simulering af den underliggende hardware. Enhver software , der kan køre på den underliggende hardware, kan køres i et virtuelt miljø, som en generel regel bør ethvert operativsystem køre uden problemer i et virtuelt miljø, forudsat at det kører på den underliggende hardware. Andre typer platformsvirtualisering tillader kun noget eller modificeret software at køre i et virtuelt miljø.
Et eksempel på fuld virtualisering er implementeret i IBM CP / CMS OS kontrolprogrammet . Det blev først demonstreret på IBM CP-40-forskningssystemet i 1967 , derefter blev det lavet til open source på CP/CMS 1967-1972 og er blevet introduceret i VM-linjen fra 1972 til i dag. Hver CP/CMS-bruger fik en simuleret stand-alone computer. Hver sådan virtuel maskine havde alle basismaskinens muligheder, og for dens brugere var den virtuelle maskine ikke til at skelne fra den rigtige. Denne simulering var komplet og baseret på princippet om betjeningsvejledning for udstyr. Det omfatter således elementer som: instruktionssæt, RAM, interrupts, undtagelser og adgangsenheder. Resultatet var et system, der kunne multiplekse mange brugere.
Fuld virtualisering er kun mulig med den rigtige kombination af hardware og software. For eksempel var det ikke muligt i IBM System/360 -serien bortset fra IBM System/360-67, og heller ikke i det tidlige IBM System/370 , indtil IBM tilføjede virtuel hukommelseshardware til sit System/370 i 1972.
Situationen er den samme med x86-platformen: fuld virtualisering var ikke fuldt ud mulig før tilføjelsen af AMD-V og Intel VT-teknologier (disse teknologier vil blive diskuteret mere detaljeret nedenfor i afsnittet Hardwarevirtualisering). Mange virtualiseringsprodukter til x86-platformen kom tæt på og annoncerede fuld virtualisering allerede før implementeringen af AMD-V og Intel-VT . Eksempler inkluderer ADEOS, Mac-on-Linux, Parallels Desktop til Mac, Parallels Workstation, VMware Workstation, VMware Server (tidligere GSX Server), VirtualBox, Win4BSD og Win4Lin Pro.
VMware , for eksempel, bruger en teknik kaldet " binær oversættelse " til automatisk at ændre x86-software på farten for at erstatte instruktioner med virtuelle maskine-sikre sekvenser af instruktioner. Denne teknologi giver udseendet af fuld virtualisering.
Et centralt mål med fuld virtualisering er at opfange og simulere privilegerede operationer såsom I/O-instruktioner. Effekten af at udføre hver proces, der kører på en specifik virtuel maskine, bør kun bevares inden for den virtuelle maskine – virtuelle processer bør ikke have lov til at ændre tilstanden af andre virtuelle maskiner, dæmoner eller hardware. Nogle maskininstruktioner kan udføres direkte på hardwaren, da deres resultater udelukkende er indeholdt i elementer styret af kontrolprogrammet, såsom hukommelse og aritmetiske registre. Men andre instruktioner kan ikke få lov til at udføre direkte - de skal opsnappes og simuleres. Disse er instruktioner til at få adgang til eller ændre statisk information, der findes uden for den virtuelle maskine.
Fuld virtualisering er blevet testet med succes for: