Многовариантная загрузка

Это самый распространенный способ (до недавнего времени) решения проблемы, который использует подавляющее большинство пользователей. Жесткий диск компьютера разбивается на несколько разделов и на каждый из них устанавливается своя операционная система и программы для нее. Кроме того, настраивается менеджер многовариантной загрузки, позволяющий выбрать операционную систему при загрузке компьютера. При таком подходе невозможно одновременно работать с приложениями разных операционных систем и для смены операционной системы необходимо перезагрузить компьютер. Зато операционные системы и их приложения исполняются без потерь в скорости и надежности. Если операционные системы совместимы по типу файловой системы, то возможно создание общего раздела для обмена файлами между ними.

Эмуляция API операционной системы

Обычно приложения работают в изолированном адресном пространстве и взаимодействуют с оборудованием при помощи API, предоставляемым операционной системой. Если две ОС совместимы по своим API (например, Windows ХР и Windows 2000), то приложения, разработанные для одной из них, будут работать и на другой. Если две операционные системы несовместимы по своим API (например, Windows 2000 и Linux), то существует способ перехватить обращения приложений к API и сымитировать поведение одной операционной системы средствами другой операционной системы.

При таком подходе можно поставить одну операционную систему и работать одновременно как с ее приложениями, так и с приложениями другой операционной системы. Поскольку весь код приложения исполняется без эмуляции и лишь вызовы API эмулируются, потеря в производительности незначительная. Но из-за того, что многие приложения используют недокументированные функции API или обращаются к операционной системе в обход API, даже хорошие эмуляторы API имеют проблемы совместимости.

Полная или частная эмуляция и виртуальная машина

Полная эмуляция (симуляция)

При таком виде виртуализации виртуальная машина полностью виртуализует все аппаратное обеспечение при сохранении гостевой операционной системы в неизменном виде. Такой подход позволяет эмулировать различные аппаратные архитектуры. Основной минус данного подхода заключается в том, что эмулируемое аппаратное обеспечение весьма и весьма существенно замедляет быстродействие гостевой системы, что делает работу с ней очень неудобно.

 

Частичная эмуляция (нативная виртуализация)

В этом случае виртуальная машина виртуализирует лишь необходимое количество аппаратного обеспечения, чтобы она могла быть запущена изолированно. Такой подход позволяет запускать гостевые операционные системы, разработанные только для той же архитектуры, что и у хоста. Таким образом, несколько экземпляров гостевых систем могут быть запущены одновременно. Этот вид виртуализации позволяет существенно увеличить быстродействие гостевых систем по сравнению с полной эмуляцией и широко используется в настоящее время. Также, в целях повышения быстродействия, в платформах виртуализации, использующих данный подход, применяется специальная «прослойка» между гостевой операционной системой и оборудованием (гипервизор), позволяющая гостевой системе напрямую обращаться к ресурсам аппаратного обеспечения. Гипервизор, называемый также «Монитор виртуальных машин» (Virtual Machine Monitor) - одно из ключевых понятий в мире виртуализации.

Примеры продуктов для нативной виртуализации: продукты VMware (Workstation, Server, Player), Microsoft Virtual PC, VirtualBox, Parallels Desktop и другие.

Частичная виртуализация, а также «виртуализация адресного пространства»

При таком подходе, виртуальная машина симулирует несколько экземпляров аппаратного окружения (но не всего), в частности, пространства адресов. Такой вид виртуализации позволяет совместно использовать ресурсы и изолировать процессы, но не позволяет разделять экземпляры гостевых операционных систем. Строго говоря, при таком виде виртуализации пользователем не создаются виртуальные машины, а происходит изоляция каких-либо процессов на уровне операционной системы.

Виртуальная машина (virtual machine):

— программная и/или аппаратная система, эмулирующая аппаратное обеспечение некоторой платформы (target — целевая, или гостевая платформа) и исполняющая программы для target-платформы на host-платформе (host — хост-платформа, платформа-хозяин);

— или виртуализирующая некоторую платформу и создающая на ней среды, изолирующие друг от друга программы и даже операционные системы (песочница, sandbox).

Есть несколько видов виртуализации платформ, в каждом из которых осуществляется свой подход к понятию «виртуализация».

Виртуализация уровня операционной системы

Сутью данного вида виртуализации является виртуализация физического сервера на уровне операционной системы в целях создания нескольких защищенных виртуализованных серверов на одном физическом. Гостевая система, в данном случае, разделяет использование одного ядра хостовой операционной системы с другими гостевыми системами. Виртуальная машина представляет собой окружение для приложений, запускаемых изолированно. Данный тип виртуализации применяется при организации систем хостинга, когда в рамках одного экземпляра ядра требуется поддерживать несколько виртуальных серверов клиентов.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: