Зарегистрируйся в два клика и получи неограниченный доступ к материалам,а также промокод на новый заказ в Автор24. Это бесплатно.
Введение
В настоящий момент в мире происходит глобальный процесс информатизации. Данный процесс затрагивает все сферы жизни человека. Одной из составляющих процесса информатизации является бурное внедрение компьютерной техники в жизнь человека.
Компьютер представляет собой целый комплекс различного рода устройств, а не один предмет. Каждое устройство, которое подключается к компьютеру – сканер, монитор, клавиатура, принтер, аудио и видео карта или же любое другое устройство, для своей корректной работы требует, чтобы операционная система распознавала подключенное устройство и точно знала, что с данным устройством делать и каким образом осуществлять с ним работу. В тот момент, когда устройство только первый раз подключается к системе, операционная система еще не знает никакой информации о нем. Операционная система в таком случае информирует пользователя, что в систему было подключено новое устройство. После чего либо операционная система предлагает пользователю осуществить установку специальной программы для корректной работы устройства, загрузив ее в систему через глобальную сеть Интернет, либо пользователь сможет сам установить имеющееся программное обеспечение. Как правило, любое новое устройство идет в комплекте с диском, с которого устанавливается специальная программа.
Так что же это за специальная программа, которая так необходима операционной системе, чтобы распознать устройство и научиться с ним работать? Такую программу принято называть драйвером. Именно с помощью драйвера происходит общение операционной системы пользователя с устройствами, подключенными к его компьютеру. Заметим, что любое новое устройство имеет свой драйвер. Нельзя подключить мышку, а воспользоваться драйвером для клавиатуры. Кроме того даже драйвер для мышки модели X может не подойти к мышке модели Y. Хотя зачастую сегодня производители выпускают такие драйверы, что они подходят либо для определенной серии, либо для каких-то некоторых моделей из серии, либо же и вовсе модели из разных серий имеют один драйвер.
В рамках данной работы предлагается рассмотреть особый вид драйверов – драйверы виртуальных устройств.
Таким образом, целью данной работы ставится получение сведений о том, что из себя представляют виртуальные драйверы устройств, с какой целью они применяются и какую роль играют.
Для достижения данной цели необходимо решить следующие задачи:
- рассмотреть что такое драйвер виртуального устройства;
- рассмотреть назначение виртуальных драйверов устройств;
- привести примеры виртуальных драйверов устройств и выделить цели их применения;
- рассмотреть понятие и назначение виртуальной машины;
- показать роль виртуальных драйверов устройств в виртуальной машине.
Работа состоит из введения, двух глав, разделенных по тематическому принципу, заключения и списка литературы.
Для написания работы были использованы литературные источники и источники сети Интернет.
1. Понятие драйвера виртуального устройства
Работа операционных систем Windows 95/98 (как и Windows 3.1) в значительной степени основана на использовании специального рода программ, которые носят название виртуальных драйверов устройств (или же иначе их называют виртуальные драйверы, virtual device driver).
Что представляют собой такого рода драйверы? Драйверы виртуальных устройств представляют собой особый вариант драйверов. Они используются для эмуляции аппаратного устройства, особенно в средах виртуализации, например, когда программа DOS запускается на компьютере Microsoft Windows. Вместо того чтобы разрешать гостевой операционной системе взаимодействовать с настоящим оборудованием, драйверы виртуальных устройств принимают противоположную роль и эмулируют часть оборудования, так что гостевая операционная система и ее драйверы, которые запущены внутри виртуальной машины, имеют только иллюзию доступа к нему. Попытки гостевой операционной системы получить доступ к оборудованию маршрутизируются к драйверу виртуального устройства в операционной системе хоста. Драйвер виртуального устройства также может посылать в виртуальную машину смоделированные события уровня процессора, такие как прерывания [1].
Основное назначение виртуального драйвера – виртуализация устройства, то есть возможность нескольким приложениям одновременно использовать одно и то же физическое устройство. Например, виртуальный драйвер дисплея (VDD) обеспечивает многооконный режим, в котором каждое приложение, выводя информацию на экран, считает, что весь физический экран находится в его распоряжении, в то время как на самом деле вывод приложения поступает в выделенное для него окно
. Виртуальный контроллер прерываний (VPICD) дает возможность нескольким приложениям вместе использовать единую систему прерываний компьютера. Виртуальный драйвер клавиатуры (VKD) позволяет вводить с клавиатуры символьные строки в любую из выполняемых программ. Разработка нового виртуального драйвера может понадобиться при установке на компьютер новой аппаратуры (или нового программного обеспечения, предназначенного для обслуживания других приложений), которая будет использоваться в многозадачном режиме и для которой в системе Windows не предусмотрено средств виртуализации [2].
Другое, возможно, более важное для прикладного программиста приложение виртуальных драйверов состоит в использовании их в качестве универсального инструментального средства. Дело в том, что виртуальный драйвер работает в плоской модели памяти на нулевом уровне привилегий. Плоской моделью памяти называется такая организация адресного пространства, когда в дескрипторе указаны нулевой базовый линейный адрес сегмента и предел, соответствующий максимальному размеру сегмента, – 4 Гбайт. Такой дескриптор может входить как в локальную, так и в глобальную таблицу дескрипторов. В первом случае речь идет о приложении, работающем в плоской модели памяти на уровне привилегий 3 (это характерно для 32-разрядных приложений Windows); во втором – о системных компонентах, в частности о виртуальных драйверах. Для виртуального драйвера доступно все линейное адресное пространство (4 Гбайт), все программные составляющие Windows (в частности, системные виртуальные драйверы) и все программно-управляемые аппаратные средства процессора и компьютера в целом [3]. Виртуальный драйвер представляет собой идеальную среду для исследования системы Windows и контролируемого вмешательства в ее работу. Поэтому решение каких-либо нестандартных задач, например разработка программ управления измерительным оборудованием, подключенным к компьютеру, может потребовать написания специфических виртуальных драйверов, смысл использования которых состоит совсем не в виртуализации аппаратно-программных средств, а в возможности выполнения действий, допустимых лишь на нулевом уровне привилегий (например, обращения к запрещенным портам или к системе прерываний).
Разработка прикладных виртуальных драйверов требует основательного знакомства с особенностями работы современных процессоров в защищенном режиме, а также с некоторыми внутренними алгоритмами функционирования системы Windows.
2. Виртуальная машина и виртуальный драйвер
Одним из базовых понятий системы Windows является понятие виртуальной машины. Согласно документации Microsoft, виртуальной машиной (VM) называется выполняемая задача, состоящая из приложения, поддерживающего программное обеспечение (например, программы DOS и BIOS), памяти и регистров процессора.
Каждая виртуальная машина обладает собственным адресным пространством, пространством ввода-вывода и таблицей векторов прерываний.
В адресное пространство VM отображаются ПЗУ BIOS, драйверы и другие программы DOS, а также загруженные до запуска Windows резидентные программы, что обеспечивает доступ к ним прикладных программ, выполняемых под управлением Windows. В состав виртуальной машины входят виртуальные аппаратные регистры, в частности виртуальные маски прерываний, виртуальные флаги процессора и другие.
Первая виртуальная машина, создаваемая после загрузки Windows и называемая системной виртуальной машиной, в Windows 95/98 предназначена для выполнения 16- и 32-разрядных приложений Windows. Для каждого сеанса DOS создается своя виртуальная машина, и таким образом одновременно в системе может существовать несколько виртуальных машин [4].
Управление виртуальными машинами возлагается на менеджера виртуальных машин (Virtual machine manager, VMM), являющегося ядром операционных систем Windows 95/98. VMM представляет собой 32-разрядную систему защищенного режима, работающую на нулевом уровне привилегий в плоской модели памяти.
В функции VMM входит создание, управление и завершение виртуальных машин, а также управление памятью, процессами, прерываниями и нарушениями защиты. Так, если приложение делает попытку записи или чтения по адресам памяти, не принадлежащим данной виртуальной машине, или выполняет команды ввода-вывода в запрещенные порты, процессор возбуждает исключение и управление передается VMM. VMM анализирует причину исключения и либо с помощью виртуальных драйверов обеспечивает выполнение затребованной операции, либо аварийно завершает приложение.
Для обеспечения функционирования VMM и виртуальных драйверов система создает два глобальных селектора: 28h – для программных кодов и 30h – для системных полей данных
Закажи написание реферата по выбранной теме всего за пару кликов. Персональная работа в кратчайшее время!
Нужна помощь по теме или написание схожей работы? Свяжись напрямую с автором и обсуди заказ.
В файле вы найдете полный фрагмент работы доступный на сайте, а также промокод referat200 на новый заказ в Автор24.