Файл: Виртуальные машины и их возможности..pdf

ВУЗ: Не указан

Категория: Реферат

Дисциплина: Не указана

Добавлен: 06.07.2023

Просмотров: 210

Скачиваний: 11

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

1. Виртуальные машины в целом

1.1. Определение и понятие

Чтобы построить полный взгляд на виртуальные машины, разберем для начала, а что такое виртуальная машина?

Виртуальная машина — программная или аппаратная среда, исполняющая некоторый код (например, байт-код, шитый код, p-код  или машинный код реального процессора), или спецификация такой системы (например: «виртуальная машина языка программирования Си»). [Википедия]

Для сравнения приведем несколько других определенней, а именно: Виртуальная машина - это полностью изолированный программный контейнер, способный выполнять собственную операционную систему и приложения, как физический компьютер. Виртуальная машина работает абсолютно так же, как физический компьютер, и содержит собственные виртуальные (т.е. программные) ЦП, ОЗУ, жесткий диск и сетевую интерфейсную карту (NIC).

Проще говоря, виртуальная машина – это программа, которую вы запускаете из своей операционной системы. Программа эмулирует реальную машину. На виртуальные машины, как и на реальные, можно ставить операционные системы. У неё есть BIOS, отведенное место на вашем жестком диске, сетевые адаптеры для соединения с реальной машиной, сетевыми ресурсами или другими виртуальными машинами.

1.2. Преимущества и недостатки виртуальных машин

1.2.1. Преимущества виртуальных машин

Приведу вам несколько преимуществ использования виртуальных машин:

  1. Приведу самый просто пример. Нынче, как мы знаем, вышли новые операционные системы. Windows Vista и Windows 7. И как многие из вас убедились, некоторые приложения, в частности игры, на них не работают. Так в чём проблема? Когда можно установить виртуальную машину с, допустим, операционной системой Windows XP. И всё прекрасно будет работать.
  2. Второй пункт можно отнести к злобным хакерам или просто к компьютерным хулиганам. Имеется в виду, что на виртуальной машине вы можете спокойно написать вирус или вредоносное программное обеспечение, которое сможет повредить вам лишь гостевую операционную систему виртуальной машины.
  3. Третий пункт можно было отнести ко второму. А именно то, что на виртуальную машину вы можете ставить любое ПО, не опасаясь чего-либо. Вы можете экспериментировать с различными настройками и прочее.
  4. Ну и одно из самых главных это то, что вы можете легко изучать новые операционные системы, не стирая свою старую.

Это конечно далеко не все преимущества виртуальных машин. Каждый пользователь может сам придумать, для чего ему нужна виртуальная машина.

Перед возможностью установки нескольких хостовых операционных систем на один компьютер с их раздельной загрузкой, виртуальные машины имеют следующие неоспоримые преимущества:

  1. Возможность работать одновременно в нескольких системах, осуществлять сетевое взаимодействие между ними.
  2. Возможность сделать «снимок» текущего состояния системы и содержимого дисков одним кликом мыши, а затем в течение очень короткого промежутка времени вернуться в исходное состояние.
  3. Простота создания резервной копии операционной системы (не надо создавать никаких образов диска, всего лишь требуется скопировать папку с файлами виртуальной машины).
  4. Возможность иметь на одном компьютере неограниченное число виртуальных машин с совершенно разными операционными системами и их состояниями.
  5. Отсутствие необходимости перезагрузки для переключения в другую операционную систему.

1.2.2. Недостатки виртуальных машин

Тем не менее, несмотря на все преимущества, виртуальные машины также имеют и свои недостатки:

  1. Потребность в наличии достаточных аппаратных ресурсов для функционирования нескольких операционных систем одновременно.
  2. Операционная система работает несколько медленнее в виртуальной машине, нежели на «голом железе». Однако, в последнее время показатели производительности гостевых систем значительно приблизились к показателям физических ОС (в пределах одних и тех же ресурсов), и вскоре, за счет улучшения технологий реализации виртуальных машин, производительность гостевых систем практически будет равна реальным.
  3. Существуют методы определения того, что программа запущена в виртуальной машине (в большинстве случаев, производители систем виртуализации сами предоставляют такую возможность). Вирусописатели и распространители вредоносного программного обеспечения, конечно же, в курсе этих методов и в последнее время включают в свои программы функции обнаружения факта запуска в виртуальной машине, при этом никакого ущерба вредоносное ПО гостевой системе не причиняет.
  4. Различные платформы виртуализации пока не поддерживают полную виртуализацию всего аппаратного обеспечения и интерфейсов. В последнее время количество поддерживаемого аппаратного обеспечения стремительно растет у всех производителей платформ виртуализации. Помимо основных устройств компьютера, уже поддерживаются сетевые адаптеры, аудиоконтроллеры, интерфейс USB 2.0, котроллеры портов COM и LPT и приводы CD-ROM. Но хуже всего обстоят дела с виртуализацией видеоадаптеров и поддержкой функций аппаратного ускорения трехмерной графики.

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

1.3. Архитектура виртуальных машин

Виртуализация один из важных инструментов разработки компьютерных систем, а сами виртуальные машины используются в самых разных областях.

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

1.3.1. Абстракция и виртуализация

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

Абстракция и виртуализация в применение к дисковой памяти.

Абстракции в применении к дисковой памяти. Операционная система абстрагируется от тонкостей адресации на жестком диске, от его секторов и дорожек, чтобы для прикладной программы диск выглядел как набор файлов переменного размера. Опираясь на эту абстракцию, «прикладные» программисты могут создавать файлы, записывать и читать данные, не зная устройства и физической организации жесткого диска.

Концепция архитектуры системы команд компьютера (instruction set architecture, ISA) наглядно иллюстрирует преимущества хорошо определенных интерфейсов. Они позволяют разрабатывать взаимодействующие компьютерные подсистемы не только в разных организациях, но и в разные периоды, иногда разделенные годами. Например, Intel и AMD создают микропроцессоры с системой команд IA-32 (x86), в то время как разработчики Microsoft пишут программное обеспечение, которое компилируется в эту систему команд. Поскольку обе стороны соблюдают спецификацию ISA, можно ожидать, что программное обеспечение будет правильно выполняться любым ПК на базе микропроцессора с архитектурой IA-32.


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

Виртуализация позволяет обойти эту несовместимость. Виртуализация системы или компонента (например, процессора, памяти или устройства ввода/вывода) на конкретном уровне абстракции отображает его интерфейс и видимые ресурсы на интерфейс и ресурсы реальной системы. Следовательно, реальная система выступает в роли другой, виртуальной системы или даже нескольких виртуальных систем.

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

1.3.2. Процессные и системные виртуальные машины

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

Процессная виртуальная машина — это виртуальная платформа для выполнения отдельного процесса. Она предназначена для поддержки процесса, создаётся при его активации и «умирает» после его окончания. Системная виртуальная машина – полнофункциональная, постоянно действующая системная среда, служащая для поддержки операционной системы вместе с большим количеством её пользовательских процессов; она обеспечивает «гостевой» операционной системе доступ к виртуальным аппаратным средствам, в том числе к процессору и памяти, устройствам ввода/вывода, а иногда — и к графическому интерфейсу.


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

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

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

1.3.3. Классификация виртуальных машин

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

Среди процессных виртуальных без ISA можно выделить многозадачные системы, поддерживаемые большинством современных компьютеров.

В раздел процессные ВМ – разные ISA входят динамические трансляторы. У них интерфейс чаще всего определяется на уровне ABI.

В категории системных машин с одинаковыми ISA входят классические и вложенные системные виртуальные машины, служащие для репликации изолированной системной среды. Различие же между ними в реализации монитора виртуальных машин, но не в функциональных возможностях.

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

2. Различные виртуальные машины

Виртуальных машин существует великое множество. И каждая из них имеет свои плюсы и свои минусы. В данном разделе мы рассмотрим несколько программ для работы с виртуальными машинами и их особенности.

2.1. VMware Workstation 6

Это программа, с помощью которой можно создать или запускать одновременно несколько виртуальных машин, в которых работают свои гостевые операционные системы.