V informatice je plná virtualizace technologie používaná k poskytování specifického virtuálního prostředí, které poskytuje kompletní simulaci základního hardwaru. Jakýkoli software , který lze spustit na základním hardwaru, lze provozovat ve virtuálním prostředí, přičemž obecným pravidlem je, že jakýkoli operační systém by měl ve virtuálním prostředí běžet bez problémů za předpokladu, že běží na základním hardwaru. Jiné typy virtualizace platforem umožňují běh pouze některého nebo upraveného softwaru ve virtuálním prostředí.
Příklad plné virtualizace je implementován v řídicím programu OS IBM CP / CMS . Poprvé byl demonstrován na výzkumném systému IBM CP-40 v roce 1967 , poté byl na CP/CMS 1967-1972 vytvořen jako open source a byl zaveden do řady VM od roku 1972 do současnosti. Každý uživatel CP/CMS dostal simulovaný samostatný počítač. Každý takový virtuální stroj měl všechny možnosti základního stroje a pro jeho uživatele byl virtuální stroj k nerozeznání od skutečného. Tato simulace byla kompletní a založená na principu návodu k obsluze zařízení. Zahrnuje tedy prvky jako: instrukční sada, RAM, přerušení, výjimky a přístupová zařízení. Výsledkem byl systém, který mohl multiplexovat mnoho uživatelů.
Plná virtualizace je možná pouze se správnou kombinací hardwaru a softwaru. Například to nebylo možné v řadě IBM System/360 kromě IBM System/360-67, ani v raném IBM System/370 , dokud IBM v roce 1972 nepřidala ke svému System/370 hardware virtuální paměti.
U platformy x86 je situace podobná: plná virtualizace nebyla plně možná před přidáním technologií AMD-V a Intel VT (těmto technologiím se budeme podrobněji věnovat níže v sekci Hardwarová virtualizace). Mnoho virtualizačních produktů pro platformu x86 se přiblížilo a oznámilo plnou virtualizaci ještě před implementací AMD-V a Intel-VT . Příklady zahrnují ADEOS, Mac-on-Linux, Parallels Desktop pro Mac, Parallels Workstation, VMware Workstation, VMware Server (dříve GSX Server), VirtualBox, Win4BSD a Win4Lin Pro.
VMware například používá techniku zvanou „ binární překlad “ k automatické úpravě x86 softwaru za běhu, aby nahradil instrukce sekvencemi instrukcí bezpečnými pro virtuální stroje. Tato technologie poskytuje zdání plné virtualizace.
Klíčovým cílem plné virtualizace je zachytit a simulovat privilegované operace, jako jsou I/O instrukce. Efekt spuštění každého procesu běžícího na konkrétním virtuálním stroji by měl být zachován pouze v rámci tohoto virtuálního stroje – virtuálním procesům by nemělo být povoleno měnit stav jiných virtuálních strojů, démonů nebo hardwaru. Některé strojové instrukce lze provádět přímo na hardwaru, protože jejich výsledky jsou zcela obsaženy v prvcích řízených řídicím programem, jako je paměť a aritmetické registry. Ale jiné instrukce nemohou být provedeny přímo - musí být zachyceny a simulovány. Toto jsou pokyny pro přístup nebo úpravu statických informací, které se nacházejí mimo virtuální počítač.
Plná virtualizace byla úspěšně testována pro: