В компютърните науки пълната виртуализация (full virtualization) е техника за виртуализация, използвана за предоставянето на определен вид среда за виртуални машини, а по-точно, вид, който представлява пълна симулация на основния хардуер. Пълната виртуализация изисква всяка особена характеристика на хардуера да бъде отразена върху една от няколкото виртуани машини; включително и пълния набор от инструкции, входни/изходни операции, прекъсвания, достъп до памет и каквито и да е други елементи, които са използвани от софтуера, който работи директно върху машината, без допълнителни инсталации (bare machine), и който е предназначен за работа на виртуална машина. В такава среда, всеки софтуер, способен да работи на недообработения хардуер, може да бъде стартиран във виртуална машина. В това число се включват и каквито и да било операционни системи. Очевидният тест на виртуализацията е дали една операционна система, предназначена за самостоятелно използване, може успешно да работи във виртуална машина.

Screenshot of one virtualization environment

Други форми на виртуализация на платформата (platform virtualization) позволяват само на определен или модифициран софтуер да работи в рамките на виртуалната машина. Идеята за „пълна виртуализация“ се е затвърдила в литературата, но не винаги се има предвид този конкретен термин. Вижте виртуализация на платформа като термин.

Важен пример за пълна виртуализация беше предоставен чрез програмата за контрол на операционната система CP/CMS на IBM. Първо беше демонстрирана чрез системата за проучвания CP-40 на IBM през 1967, после разпространена чрез отворен код (open source) в CP/CMS в периода 1967-1972 и имплементирана повторно във фамилията VM (VM family) на IBM от 1972. Всеки CP/CMS потребител е бил осигурен със симулиран, самостоятелен компютър. Всяка такава виртуална машина е имала пълните възможности на основната машина и (за своите потребители) виртуалната машина е била неразличима от частната система. Тази симулация е изчерпателна и се основава на наръчника за хардуер Principles of Operation. По този начин тя включва елементи като набор от инструкции, основна памет, прекъсвания, изключения и достъп до устройството. Резултатът е една отделна машина, която може да бъде мултиплексирана между много потребители.

Пълната виртуализация е възможна само с точната комбинация на хардуер и софтуер. Например, тя не беше възможна с повечето от членове на серията System/360 на IBM с изключението на IBM System/360-67. Нито беше възможна с първоначалната система System/370 на IBM, докато IBM не добавиха хардуер за виртуална памет към System/370 сериите през 1972.

Подобно на това, пълната виртуализация не беше възможна с платформа x86, преди да се добавят разширенията AMD-V и Intel VT-x през 2005-2006 (виж x86 virtualization). Много виртуални машини за платформата x86 се доближиха значително, и дори се считаха за пълна виртуализация, дори преди AMD-V и Intel VT-x допълненията.

Примерите включват: Adeos, Mac-on-Linux, Parallels Desktop for Mac, Parallels Workstation, VMware Workstation, VMware Server (formerly GSX Server), VirtualBox, Win4BSD, and Win4Lin Pro.

Vmware, например, използва техника, наречена бинарна транслация (binary translation), за да модифицира автоматично софтуер х86 в процеса на работа, за да се реплекират инструкции, които „пробиват“ виртуалната машина („pierce the virtual machine“) с различна серия от инструкции за защита на виртуална машина. Тази техника осигурява появата на пълната виртулизация. [1]

Ключово предизвикателство за пълната виртуализация е прихващането и симулацията на привилегированите операции като I/O инструкции. Действието на всяка операция, извършена в дадена виртуална машина, трябва да се запази в рамките на тази виртуална машина – виртуалните операции не могат да променят състоянието на друга виртуална машина, на програмата за контрол или на хардуера. Някои машинни инструкции могат да бъдат изпълнени директно от хардуера, тъй като тяхното действие е изцяло върху елементите, които се управляват чрез програмата за контрол като мястото на паметта и аритметичните регистри. Но на други инструкции, които биха „пробили“ виртуалната машина („pierce the virtual machine“) не може да им бъде разрешено да работят директно. Вместо това те трябва да бъдат прихванати и симулирани. Такива инструкции или повлияват, или достигат до информацията за състоянието, която е извън виртуалната машина.

Доказано е, че пълната виртуализация е изключително успешна при:

  • споделяне на компютърна система между много потребители;
  • изолация на потребителите един от друг (и от програмата за контрол);
  • емулиране на нов хардуер за постигане на по-добра надеждност, сигурност и продуктивност.

Вижте също редактиране

Източници редактиране

  1. VMware. Understanding Full Virtualization, Paravirtualization, and Hardware Assist (PDF) // VMware, 11 Sep 2007. Архивиран от оригинала на 2008-05-11. Посетен на 9 декември 2007.
    Тази страница частично или изцяло представлява превод на страницата Full_virtualization в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. ​

ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни.​