Tietojenkäsittelytieteessä täydellinen virtualisointi on tekniikka , jota käytetään tarjoamaan tietty virtuaaliympäristö, joka tarjoaa täydellisen simuloinnin taustalla olevasta laitteistosta. Mitä tahansa ohjelmistoa , joka voi toimia taustalla olevassa laitteistossa, voidaan käyttää virtuaaliympäristössä. Yleissääntönä on, että minkä tahansa käyttöjärjestelmän tulisi toimia ilman ongelmia virtuaaliympäristössä, jos se toimii taustalla olevassa laitteistossa. Muun tyyppinen alustan virtualisointi sallii vain joidenkin tai muokatun ohjelmiston ajamisen virtuaaliympäristössä.
Esimerkki täydellisestä virtualisoinnista on toteutettu IBM CP / CMS -käyttöjärjestelmän ohjausohjelmassa . Se esiteltiin ensimmäisen kerran IBM CP-40 -tutkimusjärjestelmässä vuonna 1967 , sitten se tehtiin avoimeksi lähdekoodiksi CP/CMS:ssä 1967-1972, ja se on otettu käyttöön VM-linjalla vuodesta 1972 tähän päivään. Jokaiselle CP/CMS-käyttäjälle annettiin simuloitu erillinen tietokone. Jokaisessa tällaisessa virtuaalikoneessa oli kaikki peruskoneen ominaisuudet, ja sen käyttäjille virtuaalikonetta ei voinut erottaa todellisesta. Tämä simulaatio oli täydellinen ja perustui laitteiden käyttöohjeiden periaatteeseen. Siten se sisältää elementtejä, kuten: käskysarja, RAM, keskeytykset, poikkeukset ja pääsylaitteet. Tuloksena oli järjestelmä, joka pystyi multipleksoimaan monia käyttäjiä.
Täysi virtualisointi on mahdollista vain oikealla laitteiston ja ohjelmiston yhdistelmällä. Esimerkiksi IBM System/360 -sarjassa se ei ollut mahdollista IBM System/360-67:ää lukuun ottamatta eikä varhaisessa IBM System/370 :ssä, ennen kuin IBM lisäsi virtuaalimuistilaitteiston System/370 -järjestelmäänsä vuonna 1972.
Tilanne on samanlainen x86-alustalla: täydellinen virtualisointi ei ollut täysin mahdollista ennen AMD-V- ja Intel VT -tekniikoiden lisäämistä (näitä teknologioita käsitellään tarkemmin jäljempänä Hardware Virtualization -osiossa). Monet x86-alustan virtualisointituotteet tulivat lähelle ja ilmoittivat täydellisestä virtualisoinnista jo ennen AMD-V :n ja Intel-VT: n käyttöönottoa . Esimerkkejä ovat ADEOS, Mac-on-Linux, Parallels Desktop for Mac, Parallels Workstation, VMware Workstation, VMware Server (entinen GSX Server), VirtualBox, Win4BSD ja Win4Lin Pro.
Esimerkiksi VMware käyttää " binäärikäännökseksi " kutsuttua tekniikkaa, joka muuttaa x86-ohjelmiston automaattisesti lennossa korvatakseen ohjeet virtuaalikoneen turvallisilla käskysarjoilla. Tämä tekniikka tarjoaa täydellisen virtualisoinnin vaikutelman.
Täydellisen virtualisoinnin päätavoite on siepata ja simuloida etuoikeutettuja toimintoja, kuten I/O-käskyjä. Jokaisen tietyssä virtuaalikoneessa ajettavan prosessin suorittamisen vaikutus tulisi säilyttää vain kyseisessä virtuaalikoneessa – virtuaalisten prosessien ei pitäisi antaa muuttaa muiden virtuaalikoneiden, demonin tai laitteiston tilaa. Jotkut konekäskyt voidaan suorittaa suoraan laitteistolla, koska niiden tulokset sisältyvät kokonaan ohjausohjelman ohjaamiin elementteihin, kuten muistiin ja aritmeettisiin rekistereihin. Mutta muiden käskyjen ei voida antaa suoriutua suoraan - ne on siepattava ja simuloitava. Nämä ovat ohjeet virtuaalikoneen ulkopuolella olevien staattisten tietojen käyttämiseen tai muokkaamiseen.
Täysi virtualisointi on onnistuneesti testattu: