Виртуальные машины: несколько ОС в одной

Эмуляция компьютера
Большинство пользователей, не позволяющих в бездействии простаивать своему компьютеру, наверняка не раз сталкивались со специализированными программами, предназначенными для загрузки одной операционной системы в другой. Эти приложения — виртуальные машины – позволяют без проблем запустить одновременно на одном компьютере несколько ОС, что предоставляет пользователям ряд новых возможностей.
 
Определения
Виртуализация — абстрагирование программного обеспечения от аппаратной части, дающее какие-либо преимущества перед оригинальной конфигурацией; доступным примером служат мультипроцессорные системы, в которых операционные системы конфигурируются так, что несколько CPU представляются как один модуль.
Виртуальная машина — это программа, запускаемая из операционной системы, эмулирующая реальную машину, на которую также может быть установлена операционная система.
Монитор виртуальной машины — это основной компонент виртуальной машины, не зависящий от хостовой операционной системы и отвечающий за создание виртуальной среды для исполнения гостевой операционной системы.
Хостовая операционная система — операционная система, управляющая реальным оборудованием и предоставляющая функции для доступа к нему; она загружается самостоятельно и не требует виртуальной машины для своей работы.
Гостевая операционная система — операционная система, работающая в виртуальной машине; на одном реальном компьютере может быть запущена одна хостовая и одна или множество гостевых операционных систем.
 
История
Первым проекты по применению технологии виртуализации были осуществлены в шестидесятые годы 20 в.. Автором их стали разработчики IBM, создавшие IBM 7044Х-7044М. А уже в 1970-е гг. в мэйнфреймах IBM System 360/370 появились полноценные виртуальные машины — VM/370. В дальнейшем эта система претерпела немало изменений: версии VM/SP, VМ/ХА, VN/ЕSА — и стала самой распространенной в компьютерной индустрии.
 
IBM 360
В операционной системе VM/370 пользователь получал в свое распоряжение полноразмерный и полнофункциональный виртуальный компьютер, на который он мог поставить собственную версию операционной системы и установить собственное прикладное программное обеспечение. Этот компьютер включал оперативную память, ресурсы процессора, собственные виртуальные периферийные устройства — практически все, чем обладает обычный компьютер, но только в виртуальном виде. Количество обслуживаемых виртуальных компьютеров определялось лицензией, доступными ресурсами памяти, диска, центрального процессора и т.п. Операционная система VM/370 стала прототипом для советской разработки системы СВМ (система виртуальных машин). Первая ее версия СВМ 1.1 была выпущена в 1982 г. комбинатом "Роботрон". В 1983 г. операционную систему СВМ 2.2, базирующуюся на шестом релизе VM/370, выпустил минский НИИ ЭВМ.
 
 
С этого момента система СВМ, не заменяя систем DOS и OS, заняла прочное место в базовом программном обеспечении для ЕС ЭВМ (единых систем электронных вычислительных машин). В качестве операционной системы, управляющей работой виртуальной машины, могли использоваться любые операционные системы, разработанные для ЕС ЭВМ.
 
ЕС ЭВМ
Совершенствование СВМ в НИИ ЭВМ в начале 90-х годов привело к разработке операционной системы VM/СВМ.
 
ВМ СВМ
 
Минская компания IВА, основанная компанией IBM на базе МПО ВТ (Минского производственного объединения вычислительной техники) и НИИ ЭВМ, до сих пор ведет разработку новых изданий VM/СВМ для мэйнфреймов IВМ.
IBA Minsk
Инженеры корпорации IBM изначально заложили в архитектуру своих процессоров потенциальную возможность виртуализации и создателям операционной системы VM не пришлось преодолевать специфические аппаратные проблемы. Но архитектура процессоров Intel х86 значительно отличается от архитектуры процессоров IBM и не может быть виртуализирована тем же способом. В данной ситуации предполагается, что ядру работающей на этой платформе операционной системы будут доступны абсолютно все ресурсы процессора и поэтому отчуждение отдельно взятой операционной системы от CPU и установка промежуточных виртуализирующих слоев теоретически невозможна. Попытка запустить две операционные системы на одном компьютере просто приведет к конфликту между ними.
Пионером технологии виртуальных машин на платформе Intel х86 стала компания VMware.
 
Stanford
Stanford
Stanford
 
Она была создана на базе Стэндфордского университета (Stanford University) профессором Менделем Розенблюмом (Mendel Rosenblum) и его супругой Дианой Грин (Diana Green) в 1998 г.
 
Мендель
 
 Компания разработала технологию Virtual Platform и уже в 1999 г. выпустила первую виртуальную машину VMware Workstation для операционной системы Linux, чем произвела фурор и снискала себе вечную славу в Linux-сообществе.
BIOS Vmware
В тоже самое время задачей виртуализации процессоров Intel х86 занималась небезызвестная компания Connectix.
 
Connectix
 
В 1997 г. она выпустила эмулятор Virtual PC для Мас, позволяющий запускать операционные системы DOS и Windows на макинтошах. А в 1999 г. вышла виртуальная машина Virtual PC для Windows, исполняющая различные операционные системы под Windows NT/9х. Большую популярность компания Connectix снискала в OS/2-сообществе после выхода Virtual РС для OS/2, разработанного совместно с немецкой компанией InnoTek.
 
Цели использования
В настоящее время виртуальные машины широко используются для решения широкого ряда сложных задач:
— для защиты информации и ограничения возможностей процессов;
— для исследования производительности программного обеспечения или новой компьютерной архитектуры;
— для эмуляции различных архитектур (в т.ч. игровых консолей);
— с целью оптимизации использования ресурсов высокопроизводительных компьютеров;
— в качестве вредоносного кода для управления инфицированной системой: вирус PMBS, обнаруженный в 1993 году, а также  SubVirt, разработанный в 2006 г. Microsoft Research, создавали виртуальную систему, которой ограничивался пользователь и все защитные программы; для моделирования информационных систем с клиент-серверной архитектурой на одной ЭВМ (эмуляция компьютерной сети с помощью нескольких виртуальных машин).
— для упрощения управления кластерами — виртуальные машины могут просто мигрировать с одной физической машины на другую во время работы.
 
Принцип работы
Виртуальная машина имеет свой BIOS, оперативную память, жёсткий диск (выделенные из реального компьютера) и способна эмулировать периферийные устройства.
Работа ее основана на технологии квази-эмуляции, позволяющей аппаратно невиртуализируемый процессор виртуализировать программным путем. Основные задачи квази-эмуляции включают: необходимость определить множество инструкций процессора, которые можно исполнять без эмуляции; необходимость  определить множество инструкций процессора, которые нельзя исполнять без эмуляции, а также обеспечить обнаружение этих инструкций в гостевом коде и произвести их эмуляцию; когда требуется взаимодействие с хостовой операционной системой (например, при эмуляции внешних устройств) нужно обеспечить переключение в ее контекст и использовать ее функции, а для нормального функционирования хостовой операционной системы надо обеспечить передачу ей прерываний от внешних устройств, произошедших в контексте гостевой операционной системы.
 
Преимущества
Виртуальная машина даёт массу преимуществ при тестировании программного обеспечения. Программисту для отладки программы нет необходимости устанавливать на один компьютер несколько операционных систем и по очереди, перезагружаясь в каждую из них, проверять работу той или иной функции. Используя виртуальную машину, он может делать это переключаясь между загруженными ОС одним щелчком мыши.
Многие системные администраторы используют виртуальные машины для тестирования патчей и обновлений операционных систем перед их установкой на компьютеры и серверы сети. Иногда можно встретить игровые серверы, работающие на виртуальной машине. Достаточно распространено использование виртуальных машин при работе с программным обеспечением, которое не поддерживается новой версией операционной системы. Виртуальная машина может стать единственным инструментом, который позволит продемонстрировать заказчику у него в офисе возможности сетевого программного обеспечения.
Использование виртуальной машины нивелирует массу проблем: бэкап виртуальной машины может быть сделан простым копированием нескольких файлов. Виртуальная машина может использовать практически любое оборудование, установленное на компьютере: сетевые карты, порты, звуковые карты, приводы и т.п.. Она без проблем переносится между любыми компьютерами: создайте виртуальную машину, поработайте в ней, скопируйте файл конфигурации и виртуального жёсткого диска на другой компьютер и затем можете запустить полностью настроенную виртуальную машину уже на нём.
Для комфортной работы в гостевой операционной системе (той, которая установлена на виртуальной машине), необходимо выделить ей довольно серьёзную часть ресурсов. Так, для достаточно комфортной работы с Windows XP в качестве гостевой системы ей необходимо минимум 256 Мб ОЗУ (лучше, конечно, не менее 512 Мб). Таким образом, одновременный запуск двух виртуальных машин, каждой из которых выделено по 512 мегабайт памяти, требует установки не менее 1,5 Гб  оперативной памяти  (2х512 МБ — гостевые операционные системы,  512 Мб — хостовая).
То же касается производительности процессора и дисковой подсистемы: их мощностей должно хватать для обслуживания нескольких операционных систем одновременно — таким образом, для эффективного использования в повседневной работе виртуальной машины конфигурация компьютера должна быть достаточно мощной, а объём оперативной памяти — заведомо избыточным для работы одной ОС. Несмотря на это, покупка одного мощного персонального компьютера и последующее размещение на нём постоянно работающей виртуальной машины, с финансовой точки зрения, более выгодна, чем приобретение нескольких компьютеров для каждой операционной системы.
 
Недостатки
Использование виртуальных машин связано и с рядом негативных моментов: снижение надёжности реальных машин (к примеру, выход из строя винчестера приведёт к неработоспособности основной операционной системы и всех виртуальных) и разделение ресурсов компьютера между несколькими операционными системами (например, полный захват пропускной способности сети или 100%-я загрузка процессора гостевой операционной системой приведёт к катастрофическому падению производительности других гостевых и главной операционной системы).
А потому в каждом конкретном случае при принятии решения об использовании виртуальной машины необходимо взвешивать все за и против.
 
Наиболее популярные продукты (по данным SecurityLab)
XEN
Название программы: Xen
Дата выпуска: 29.10.2006
Версия: 3.1
Лицензия: General Public License
Xen — монитор виртуальных машин, известный также под названием «гипервизор», распространённым в основном на архитектуре x86. Xen способен поддерживать одновременную работу большого числа виртуальных машин на одной физической, при этом не тратя значительных вычислительных ресурсов. Xen поддерживает Intel Virtualization Technology, которая дает возможность работать с виртуальными серверами на одном процессоре, используя аппаратное ускорение процессора и виртуализацию памяти. Благодаря этому Xen может создавать любые виртуальные системы. Характерными чертами данной программы являются планировщик для распределения ресурсов CPU; поддержка Xen-oprofile для выявления узких мест и измерения производительности кода программ; поддержка работы немодифицированных операционных систем (Windows и Linux) в качестве гостевых ОС; поддержка режимов разделения дисковых ресурсов: dynamic-allocation и copy-on-write; улучшенная производительность сетевой подсистемы для гостевых ОС; улучшенная поддержка платформы IA64 и Power (на начальной стадии).
 
Cygwin
Название программы: Cygwin
Дата выпуска: 10.12.2006
Версия: 1.5.25-11
Лицензия: Freeware
Cygwin — набор свободных программных инструментов разработанных фирмой Cygnus Solutions, позволяющих превратить Microsoft Windows и Windows NT различных версий в некоторое подобие UNIX‐системы. Изначально Cygwin задумывался как среда для переноса программ из POSIX‐совместимых операционных систем (таких как GNU/Linux, BSD и UNIX) в Windows. Программы, портированные с помощью Cygwin, работают лучше всего в Windows NT, но в некоторых случаях годятся и Windows 9x. В настоящее время проект Cygwin разрабатывается сотрудниками Red Hat и другими программистами. Cygwin состоит из двух основных частей: 1) динамически подгружаемой библиотеки (cygwin1.dll), представляющей собой прослойку, эмулирующую Linux API; 2) большой коллекции стандартных утилит GNU и других программ.
Среди утилит имеются:
GCC — полнофункциональный мощный и свободный компилятор C и C++;
LaTex/tetex — мощнейшая невизуальная система для набора документов. Является де-факто стандартом в научном мире;
Perl — самый мощный и распространенный язык сценариев;
PHP- язык для разработки web-приложений;
PostgreSQL — мощный SQL сервер, а также множество других и не менее полезных.
 
Microsoft Virtual PC
Название программы: Microsoft Virtual PC 2007
Дата выпуска: 20.02.2007
Версия: 1.0
Лицензия: Freeware
Microsoft Virtual PC 2007  — позволяет эмулировать на одном компьютере работу нескольких виртуальных машин, допуская тем самым одновременный запуск на одном компьютере сразу нескольких операционных систем: разных версий Windows, OS/2, Linux и т.п.
 
VMWare Workstation
Название программы: VMware Workstation
Дата выпуска: 19.03.2008
Версия: 6.03.80004
Лицензия: shareware, $189
VMware Workstation — программа, позволяющая создавать и запускать одновременно несколько виртуальных машин x86-архитектуры, в каждой из которых работает своя гостевая операционная система (например, Microsoft Windows, Linux и пр.), а также позволяет создавать снимки гостевой ОС. Новая версия программы дополнена поддержкой Windows Vista, Ubuntu Linux 7.10 (х86, х64), Red Hat Enterprise Linux 4.6 (х86, х64), Asianux Server 3 (х86, х64), Turbolinux 10 Server (х86, х64) в качестве основных и гостевых ОС; возможностью работы с несколькими мониторами; поддержкой USB 2.0 и Physical-to-Virtual (P2V), благодаря которому пользователи могут создавать виртуальные машины за несколько минут; добавлены VMware ACE Option Pack для создания виртуальных машин и их переноса на портативные устройства; виртуальный отладчик с интеграцией Eclipse и Microsoft Visual Studio; теперь возможен запуск виртуальных машин в фоновом режиме без интерфейса VMware Workstation и написание скриптов, которые автоматизируют процесс работы с виртуальными машинами.
 
Название программы: Parallels Workstation
Дата выпуска: 19.03.2008
Версия: 2.2
Лицензия: $49.99
Parallels Workstation — первый коммерческий продукт, выпущенный компанией Parallels-разработчиком десктопных и серверных решений в сфере виртуализации. Parallels Workstation — виртуальная машина для персональных компьютеров, позволяющая установить несколько операционных систем на одном компьютере (например, Windows, Linux, FreeBSD или OS/2) и работать с ними без перезагрузки. Виртуальная машина Parallels Workstation запускается как программа под управлением хостовой операционной системы и создает набор виртуальных компьютеров, в каждом из которых может быть запущена своя гостевая операционная система. Каждый виртуальный компьютер имеет свой виртуальный процессор, набор виртуальных устройств и полную сетевую поддержку.
Заключение
Данная категория программного обеспечения служит прекрасным выходом из нелегкой ситуации, когда из-за несовместимости софта или аппаратного обеспечения с операционной системой пользователь вынужден устанавливать очередную ОС. Потребляя реальное количество ресурсов ПК, виртуальные машины позволяют в прежней среде запускать приложения устаревшие или слишком современные, работать с оборудованием уже или еще не совместимым. Количество виртуальных машин ограничено только объемами запоминающих устройств и процессорной мощи, многие из них распространяются абсолютно бесплатно, что позволяет применять их для удобства даже в домашних условиях.

Related posts

2 Thoughts to “Виртуальные машины: несколько ОС в одной”

  1. Tutanhamon

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

    1. Pavel Sinyakov

      Какие, например? Только не ставьте в комментариях ссылки в явном виде, плз! Хотите поставить ссылку, убирайте http://
      Мы не занимаемся раскруткой других сайтов.

Leave a Comment