Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы среды и оболочки. Шабалин,....doc
Скачиваний:
40
Добавлен:
15.11.2018
Размер:
4.25 Mб
Скачать

1. Использование виртуального компьютера при изучениИ операционных систем Microsoft

1.1. Теоретический аспект функционирования виртуальных компьютеров

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

Первый проект, в котором возникла концепция системы виртуальных машин – IBM 7044, а в середине 60-х в IBM System/370 появился уже полноценный продукт – VM/370. Эта система виртуальных машин впоследствии претерпела немало изменений (версии VM/SP, VM/XA, VM/ESA) и стала самой распространенной в компьютерной индустрии. В операционной системе VM/370 пользователь получал в свое распоряжение полноразмерный и полнофункциональный виртуальный компьютер (гостевой компьютер), на который он мог поставить собственную версию операционной системы и установить свое прикладное программное обеспечение. Этот компьютер включал оперативную память, ресурсы процессора, виртуальные периферийные устройства – практически все то, чем обладает обычный компьютер, только в виртуальном виде. Количество обслуживаемых гостевых компьютеров определялось лицензией, доступными ресурсами памяти, диска, центрального процессора реального компьютера (компьютер-хозяин), предоставляющего свои ресурсы для виртуализации [2].

Операционная система VM/370 стала прототипом для отечественной разработки – системы СВМ (система виртуальных машин). Первая версия системы СВМ 1.1 была выпущена в 1982 году комбинатом «Роботрон». В 1983 г. операционную систему СВМ 2.2, базирующуюся на шестой версии VM/370, выпустил Минский НИИЭВМ. С этого момента система СВМ заняла прочное место в базовом программном обеспечении для ЭВМ. Совершенствование СВМ в НИИЭВМ в начале 90-х годов привело к разработке операционной системы VM/СВМ. Минская компания IBA, основанная компанией IBM на базе НИИЭВМ, до сих пор ведет разработку новых изданий VM/СВМ для мэйнфреймов IBM.

Инженеры корпорации IBM изначально заложили в архитектуру своих процессоров возможность виртуализации, и создателям операционной системы VM не пришлось преодолевать специфические аппаратные проблемы. Но архитектура процессоров персональных компьютеров Intelx86 значительно отличается от архитектуры процессоров IBM и не может быть виртуализирована «простым» способом. Предполагается, что ядру работающей на этой платформе операционной системы будут доступны абсолютно все ресурсы процессора. Поэтому отчуждение отдельно взятой операционной системы от процессора и установка промежуточных виртуализующих слоев теоретически невозможны (попытка запустить две операционные системы на одном компьютере приведет к конфликту между ними). Однако данная проблема была впоследствии решена. За последние годы появилось немало программных средств, позволяющих запускать несколько операционных систем и приложений, работающих на разных операционных системах.

Например, пионером технологии виртуальных машин на платформе Intel x86 стала компания VMWare, которая была создана на базе Стэндфордского университета профессором Менделем Розенблюмом и его супругой Дианой Грин в 1998 году. Компания разработала технологию Virtual Platform для виртуализации IA-32 систем и уже в 1999 году выпустила первую виртуальную машину VMware Workstation для операционных систем Linux, что явилось несомненным достижением для Linux-сообщества [11].

Одновременно задачей виртуализации процессоров Intel x86 занималась компания Connectix. В 1997 году она выпустила эмулятор Virtual PC для Mac, позволяющий запускать операционные системы DOS и Windows на макинтошах. А в 1999 году вышла виртуальная машина Virtual PC для Windows, исполняющая различные операционные системы под Windows NT/9x. Большую популярность получила компания Connectix в сообществе пользователей OS/2 после выхода Virtual PC для OS/2, разработанного совместно с немецкой компанией InnoTek. В 2004 году корпорация Microsoft, купив компанию Connectix, начала выпускать свой продукт, носящий название Microsoft Virtual PC.

В свою очередь, компания InnoTek занялась собственной программой под названием InnoTek Virtual Box, которая, в отличие от представленных выше, изначально была бесплатной и распространялась в соответствии с лицензией GNU, что позволило ей получить широкую популярность как средство эмуляции для операционных систем Linux и Microsoft (в 2007 году данная программа была куплена компанией Sun Microsystems и теперь выпускается под ее торговым знаком).

Операционная система, управляющая реальным оборудованием и предоставляющая функции для доступа к нему, называется хостовой операционной системой. Хостовая операционная система загружается самостоятельно и не требует виртуального компьютера для своей работы. Операционные системы, работающие в виртуальных компьютерах, называются гостевыми операционными системами. На одном физическом компьютере может быть запущена одна хостовая и любое количество гостевых операционных систем [3].

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

Общая системная архитектура виртуального компьютера построена на взаимодействии трех основных компонентов: приложения, драйвера и монитора [5].

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

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

      • поток виртуализации для передачи управления монитору и обмена информационными сообщениями с ним;

      • графический поток для отображения видеобуфера гостевой операционной системы;

      • поток GUI (Graphic User Interface – графический интерфейс пользователя) для работы пользовательского интерфейса и передачи событий от мыши и клавиатуры гостевой операционной системе.

Для каждого виртуального компьютера запускается своя копия приложения виртуального компьютера. Приложение виртуального компьютера выполняет следующие основные функции:

      • создание, удаление и конфигурирование виртуальных компьютеров;

      • включение, выключение и управление работой виртуальных компьютеров;

      • обеспечение интерфейса пользователя с гостевой операционной системой – ввод с клавиатуры (мыши) и отображение экрана гостевой операционной системы;

      • выделение памяти для виртуального компьютера и загрузка (инициализация) монитора виртуального компьютера;

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

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

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

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

Область функционирования приложения, драйвера и монитора постоянно расширяется из-за интенсивного развития в наше время данного класса программ, чье количество представителей, построенных на различных типах эмуляции, насчитывает около двух десятков. Для современных эмуляторов совершенно не играет роли, какую гостевую операционную систему требуется виртуализировать. Например, программные продукты Basilisk II и PearPC разрабатывались различными производителями с целью эмуляции операционной системы MacOS компании Apple на IBM-совместимых машинах.

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

  • для миграции с одной операционной системы на другую с обеспечением запуска приложений старой операционной системы;

  • для разработки и тестирования программного обеспечения в различных конфигурациях и на базе разных операционных систем на одном компьютере;

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

  • для организации лабораторно-практических работ по дисциплинам информатического цикла в учебных заведениях, готовящих специалистов данного направления.

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

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

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

Результаты нашего исследования показали, что 6 критериев выбора виртуальных компьютеров в образовательных целях можно считать основными [12].

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

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

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

Четвертый критерий – «Функциональное наполнение» (перечень возможностей программного средства «Виртуальный компьютер», оптимизирующий работу с ним) – позволяет сравнить дополнительные настройки и утилиты виртуальных компьютеров, с помощью которых можно приблизить к реальности его деятельность при выполнении лабораторных работ.

Пятый критерий – «Интерфейс» – помогает оценить комфортность работы студента с виртуальным компьютером.

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

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