У комп'ютерних науках повна віртуалізація - це технологія, яка використовується для надання певної віртуальної середовища, яка забезпечує повне симулювання базового обладнання. Будь-яке програмне забезпечення, яке може працювати на базовому обладнанні може бути запущено у віртуальному середовищі, як правило будь-яка операційна система повинна виконуватися без проблем у віртуальному середовищі, за умови, що вона працює на базовому обладнанні. Інші типи платформної віртуалізації дозволяють виконуватися в віртуальному середовищі тільки деякого або модифікованому програмному забезпеченню.
Приклад повної віртуалізації реалізований в керуючій програмі IBM CP / CMS ОС. Вона вперше продемонстрована в дослідницькій системі IBM CP-40 в 1967-му році, потім вона надавалася з відкритим вихідним кодом в CP / CMS 1967-1972 рр і була впроваджена в лінійку VM з 1972 до теперішнього часу. Кожному користувачеві CP / CMS була надана імітація автономного комп'ютера. Кожна така віртуальна машина мала всі можливості базової машини, і для своїх користувачів віртуальна машина була нічим не відрізняється від реальної. Ця імітація була повною грунтувалася на принципі оперативних інструкцій до обладнання. Таким чином вона включає такі елементи як: набір інструкцій, оперативну пам'ять, переривання, виключення і пристрої доступу. В результаті отримали систему, яка могла мультиплексировать багато користувачів.
Повна віртуалізація можлива виключно за умови правильної комбінації обладнання та програмного забезпечення. Наприклад, вона була неможливою ні в серії IBM System / 360. за винятком IBM System / 360-67, ні в ранніх IBM System / 370, поки IBM ще не додала обладнання віртуальної пам'яті в своїх System / 370 в 1972 р
Аналогічна ситуація і з платформою х86: повна віртуалізація була можлива не в повній мірі, до додавання технологій AMD-V і Intel VT (ці технології нижче будуть розглянуті більш детально в пункті «Апаратна віртуалізація»). Багато продуктів віртуалізації для платформи x86 підійшли впритул і заявляли про повну віртуалізації ще до реалізації AMD-V і Intel VT. Приклади включають такі рішення як: ADEOS, Mac-на-Linux, Parallels Desktop для Mac, Parallels Workstation, VMware Workstation, VMware Server (колишній GSX Server), VirtualBox, Win4BSD і Win4Lin Pro.
VMware, наприклад, використовує технологію, звану «бінарної трансляцією», для автоматичної зміни ПО для x86 «на льоту», для заміни інструкцій безпечними для віртуальної машини послідовностями інструкцій. Ця технологія надає видимість повної віртуалізації.
Ключовим завданням повної віртуалізації є перехоплення і симуляція привілейованих операцій, таких як інструкції введення-виведення. Ефект виконання кожного процесу, запущеного в певній віртуальній машині, повинен бути збережений лише в межах цієї віртуальної машини - не можна допустити, щоб віртуальні процеси змінювали стан інших віртуальних машин, керуючої програми або обладнання. Деякі машинні команди можуть бути виконані безпосередньо на обладнанні, оскільки їх результати цілком містяться в елементах, керованих керуючої програмою, таких як пам'ять і арифметичні регістри. Але інші інструкції, не можна дозволяти виконувати безпосередньо, - вони повинні бути перехоплені і симулювати. Це інструкції до доступу або зміни статичної інформації, яка знаходиться за межами віртуальної машини.
Повна віртуалізація була успішно випробувана для:
- спільного використання комп'ютера декількома користувачами;
- ізоляції користувачів один від одного (і від керуючої програми);
- емуляції нового обладнання для забезпечення кращої надійності, безпеки і продуктивності.