Full virtualisering

Inom datavetenskap är full virtualisering  en teknik som används för att tillhandahålla en specifik virtuell miljö som ger fullständig simulering av den underliggande hårdvaran. All programvara som kan köras på den underliggande hårdvaran kan köras i en virtuell miljö, som en generell regel bör vilket operativsystem som helst köras utan problem i en virtuell miljö, förutsatt att det körs på den underliggande hårdvaran. Andra typer av plattformsvirtualisering tillåter endast en del eller modifierad programvara att köras i en virtuell miljö.

Ett exempel på fullständig virtualisering är implementerat i IBM CP / CMS OS -kontrollprogrammet . Den demonstrerades första gången på IBM CP-40-forskningssystemet 1967 , sedan gjordes den öppen källkod vid CP/CMS 1967-1972 och har introducerats i VM-linjen från 1972 till idag. Varje CP/CMS-användare fick en simulerad fristående dator. Varje sådan virtuell maskin hade alla basmaskinens kapacitet, och för dess användare var den virtuella maskinen omöjlig att skilja från den riktiga. Denna simulering var komplett och baserad på principen om bruksanvisningar för utrustning. Den innehåller alltså element som: instruktionsuppsättning, RAM, avbrott, undantag och åtkomstenheter. Resultatet blev ett system som kunde multiplexera många användare.

Full virtualisering är endast möjlig med rätt kombination av hårdvara och mjukvara. Till exempel var det inte möjligt i IBM System/360 -serien förutom IBM System/360-67, inte heller i det tidiga IBM System/370 förrän IBM lade till virtuell minneshårdvara till sitt System/370 1972.

Situationen är liknande med x86-plattformen: full virtualisering var inte fullt möjlig före tillägget av AMD-V och Intel VT-teknologier (dessa tekniker kommer att diskuteras mer i detalj nedan i avsnittet Hardware Virtualization). Många virtualiseringsprodukter för x86-plattformen kom nära och tillkännagav full virtualisering redan innan implementeringen av AMD-V och Intel-VT . Exempel inkluderar ADEOS, Mac-on-Linux, Parallels Desktop för Mac, Parallels Workstation, VMware Workstation, VMware Server (tidigare GSX Server), VirtualBox, Win4BSD och Win4Lin Pro.

VMware , till exempel, använder en teknik som kallas " binär översättning " för att automatiskt modifiera x86-programvara i farten för att ersätta instruktioner med virtuella maskinsäkra sekvenser av instruktioner. Denna teknik ger intrycket av full virtualisering.

Ett huvudmål med full virtualisering är att fånga upp och simulera privilegierade operationer som I/O-instruktioner. Effekten av att exekvera varje process som körs i en specifik virtuell maskin bör endast bevaras inom den virtuella maskinen – virtuella processer ska inte tillåtas ändra tillståndet för andra virtuella maskiner, demoner eller hårdvara. Vissa maskininstruktioner kan exekveras direkt på hårdvaran, eftersom deras resultat helt och hållet finns i element som styrs av kontrollprogrammet, såsom minne och aritmetiska register. Men andra instruktioner kan inte tillåtas exekvera direkt - de måste fångas upp och simuleras. Det här är instruktioner för att komma åt eller ändra statisk information som finns utanför den virtuella maskinen.

Full virtualisering har testats framgångsrikt för:

Se även