Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
WDM против WDF.doc
Скачиваний:
4
Добавлен:
28.08.2019
Размер:
2.17 Mб
Скачать

ПРЕИМУЩЕСТВА И НЕДОСТАТКИ ДРАЙВЕРНЫХ МОДЕЛЕЙ

WDM И WDF

Студ. Соколов М.А., студ. Цзян А.В. (МГУПИ)

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

Введение

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

Собственно, сама драйверная модель или концепция представляет собой основу для взаимодействия системы с любыми устройствами (системными/ периферийными, реальными/виртуальными и т.д.) [2 - 6]. Поэтому, актуальность темы программирования драйверов всегда имела большое значение и будет иметь. Конечно, драйверные модели рано или поздно меняются. Изменение драйверной модели, как правило, ведет за собой изменение большого количества компонентов, к примеру, архитектуры операционных систем [2, 3, 5 - 7]. Но, тем не менее, суть драйверной модели или концепции одна – это тот «мост», интерфейс, который обеспечивает взаимодействие устройства с компьютером.

Таким образом, цель статьи - провести сравнительный анализ подходов и принципов работы драйверных моделей WDM и WDF и определить их преимущества и недостатки. 

«В мире Assembler-а» или эпоха dos

Прежде чем мы будем говорить о драйверах конкретной драйверной модели, хотелось бы совершить небольшой исторический экскурс во времена MS DOS и «господство» Assembler-а.

Как мы все помним, первые PC-ки работали на процессорных чипах Intel, способных адресовать до 640 Кбайт «реальной» памяти, а сам процессор работал только в реальном режиме, в котором объединял информацию из двух 16-разрядных регистров и формировал 20-разрядный адрес для каждой команды, содержащей ссылку на память. В архитектуре компьютера были предусмотрены слоты расширения, в которых отважные пользователи могли устанавливать карты, приобретенные отдельно от самого компьютера.

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

Но прогресс не стоял на месте. Так компания Microsoft выпустила свою первую графическую ОС Windows . Поначалу она была просто графической оболочкой для MS-DOS реального режима. Со временем появился набор Windows-драйверов для основного оборудования, включая экран, клавиатуру и мышь. Драйверы представляли собой исполняемые файлы с расширени­ем .DRV и писались в основном на ассемблере [7]. С появлением компьютеров класса AT компания Microsoft разработала вер­сию Windows для защищенного режима. Однако все оборудование, кроме стандартных устройств Windows (экран, клавиатура, мышь), продолжало обслу­живаться драйверами MS-DOS реального режима.

Наконец, спустя некоторое время была выпущена Windows 3.0. Но теперь возникла новая большая проблема, а именно - поддержка многозадачности приложений [7]. Чтобы разные приложения могли совместно работать с физическим оборудо­ванием, компания Microsoft ввела концепцию драйвера виртуального устройства, основной функцией которого была «виртуализация» оборудования. Такие драй­веры обычно сокращенно назывались VxD. При помощи этой концепции Windows 3.0 создавала впечатление, что каж­дая виртуальная машина оснащена собственным набором экземпляров многих аппаратных устройств. Но сами устройства в большинстве случаев продолжали обслуживаться драйверами реального режима MS-DOS [7].

Спустя некоторое время, OS/2 от Microsoft, которую она разрабатывала в «гармонии» с IBM, превратилась в Windows NT, первый выпуск кото­рой состоялся в начале 1990-х, вскоре после выхода Windows 3.1. Microsoft изначально строила Windows NT с намерением превратить ее в надежную и безопасную платформу для работы Windows-приложений. Драйверы для Windows NT использовали принципиально новую технологию режима ядра, которая не имела практически ничего общего с предыдущими драйверными технологиями. Драйверы Windows NT программировались почти исключительно на языке СИ, чтобы их можно было компилировать для новых процес­сорных архитектур без изменения исходных кодов [7].

Тем не менее, Windows 3.0 выросла в 3.1, 3.11 и Windows 95. Кроме того, начиная с Windows 95, программисты могли выкинуть распечатки портов ввода/вывода благодаря новой технологии Plug and Play, которая в определенной степени автоматизировала идентификацию и настройку оборудования.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]