Виртуальная машина (ВМ) – программная и/или аппаратная система, эмулирующая аппаратное обеспечение или компьютер в целом. Эмулирующая система (платформа) называется главной или host (хост, хозяин), эмулируемая – target (целевая или гостевая) платформа. Также ВМ может создавать среды, изолирующие друг от друга программы и даже операционные системы.
Виртуальный жесткий диск (Virtual disk) – это файл на жестком диске базового компьютера, который гостевая ОС "видит" как реальный физический диск (благодаря программе виртуализации).
Виртуальная машина (ВМ) исполняет машинно-независимый код или код реального процессора. ВМ также может эмулировать как работу отдельных аппаратных частей компьютера, так и целого компьютера (включая BIOS, оперативную память, жёсткий диск и другие периферийные устройства). В последнем случае в ВМ, как и на реальный компьютер, можно устанавливать операционные системы (например, гостевую Windows можно запускать в ВМ под хост-Linux или наоборот). На одном компьютере может функционировать несколько ВМ.
Концепция виртуальной машины как совокупности ресурсов, которые эмулируют поведение реальной машины, появилась в Кембридже в конце 1960-х годов. Вычислительный процесс здесь определяется содержимым того рабочего пространства памяти, к которому он имеет доступ. При этом процесс не может определить, является ли ресурс физическим или он имитируется другими ресурсами.
В виртуальной машине ни один процесс не может монопольно использовать никакой ресурс. Использование виртуальных машин обеспечивает развязку между несколькими пользователями, работающими в одной вычислительной системе, что защищает данные (информацию).
Идея виртуальной машины лежит в основе целого ряда операционных систем, в частности, IBM VM/CMS (и её советского клона СВМ (система виртуальных машин)), а также DEC VAX/VMS.
Можно дать еще одно определение ВМ: ВМ – это полностью изолированный программный контейнер (несколько файлов), способный выполнять собственную ОС (гостевую) (ОС – это совокупность программ на языке процессора) и приложения, как физический компьютер.
Виртуальные машины могут использоваться для:
· защиты информации и ограничения возможностей программ (см. п.2.4: песочница), в том числе безопасного интернет-серфинга (работы в интернете);
· исследования производительности программного обеспечения (ПО) или новой компьютерной архитектуры;
· эмуляции различных архитектур (например, эмулятор игровой приставки);
· оптимизации использования ресурсов мощных компьютеров;
· изучения и/ или изоляции вредоносного кода (некоторые вирусы создают виртуальную систему, в которой ограничивается пользователь, антивирусы и прочие защитные программы);
· моделирования информационных систем с клиент-серверной архитектурой на одной ЭВМ (эмуляция компьютерной сети с помощью нескольких виртуальных машин);
· упрощения управления кластерами;
· тестирования и отладки системного программного обеспечения;
· возможности запуска любой программы под любой ОС (есть программы, написанные для старых ОС и/или старых компьютеров, которые не работают на современных ОС;
· возможности использования старого оборудования: имеются драйверы устройств, например, сканеров, написанные с нарушением «правил хорошего тона», например, с фиксированными адресами управляющих регистров (портов ввода-вывода), не работающие в новой программно-аппаратной среде (например, в случае, если в новых системных платах нет LPT-портов, а на платах расширения LPT-порты имеют другие адреса управляющих регистров); в программе VMware WorkStation можно задавать в ВМ адреса портов вручную и заставить устройство работать – это проще, чем портирование;
· удобства работы на любом компьютере – на внешнем носителе (флешка, USB-HDD (внешний ЖД)) можно хранить файлы ВМ или файл виртуального жесткого диска с ОС и нужным набором программ, которые настроены для своих целей; естественно, на компьютере должна быть установлена программа виртуализации, например, VirtualBox, или компонент Hyper -V (гипервизор) в ОС Windows 8.
Песочница
Песочница (контейнер) – жёстко контролируемый набор ресурсов для исполнения гостевой программы – например, место на диске или в памяти. Понятие введено по аналогии с детской песочницей – ограниченной областью на детской площадке. Доступ к сети, возможность общаться с главной операционной системой или считывать информацию с устройств ввода обычно либо частично эмулируют, либо сильно ограничивают. Песочницы представляют собой пример виртуализации. Повышенная безопасность исполнения кода в песочнице зачастую связана с большой нагрузкой на систему.
Как правило, песочницы используют для запуска непроверенных программ из неизвестных источников, как средство защиты от вредоносного кода, а также для его обнаружения и анализа. Также песочницы используются в процессе разработки программного обеспечения для запуска неотлаженного кода (программ), который может случайно повредить систему или данные.
Лаборатория Касперского применяет в своих продуктах технологию «Безопасная среда», позволяющую запускать в песочнице подозрительные приложения. Компания avast! включила в некоторые пакеты антивирусной защиты "песочницу", в которой без угрозы для системы можно запускать потенциально нежелательные программы. Panda Security предоставляет пользователям безопасный доступ в Интернет с помощью веб-браузера, запущенного в песочнице. Компания SafenSoft, разработчик продуктов SafenSoft SysWatch, применяет технологию собственной разработки D.S.E. (Dynamic Sandbox Execution), позволяющую запускать подозрительные приложения или открывать любые подозрительные файлы в ограниченной среде выполнения. Google применяет технологию песочницы в своем фирменном браузере – Google Chrome. В программах Adobe Flash Player и Adobe Reader компании Adobe также применяется песочница для снижения риска заражения компьютера вредоносными программами.
Существуют и отдельные утилиты (сервисные программы), обеспечивающие подобный функционал, например, Sandboxie.