- 1. Общие сведения о драйверах устройств в системе Windows.
- Читайте также
- Глава 1 Windows Vista. Общие сведения
- Мнемоника названий специальных файлов устройств в файловой системе UNIX
- Общие сведения
- Общие сведения
- Глава 1 Общие сведения о Windows 7
- msinfo32.exe (Сведения о системе)
- Общие сведения
- 1. Общие сведения о Windows
- Общие сведения
- Общие сведения о Windows ХР Professional
- Общие сведения
- Глава 2 Общие сведения о системе КОМПАС-3D LT
- Общие сведения
- Общие сведения о Проводнике Windows Vista
- Основные сведения об устройствах и драйверах
- Общие сведения
1. Общие сведения о драйверах устройств в системе Windows.
1. Общие сведения о драйверах устройств в системе Windows.
Естественно, каждая операционная система имеет собственную архитектуру и свои особенности функционирования драйверов. Но практически во всех современных ОС можно выделить следующие особенности, характерные для работы подсистемы ввода-вывода:
• Фактически, пользовательские программы либо системные утилиты не могут напрямую обращаться к аппаратуре, используя порты ввода-вывода, DMA либо подобные низкоуровневые механизмы напрямую. Этот факт следует из самой идеологии защищенного режима современных ОС: все программы пользователя и часть ОС работают в 3-м кольце защиты компьютера (наименее привилегированном). При этом любая команда обращения к порту из данной программы может быть замаскирована и повлечет за собой аппаратное исключение (Exception). Напрямую к аппаратуре может обратится программа, работающая в самом приоритетном, 0-м кольце защиты.
• В настоящее время практически все устройства используют технологию автоматического распределения ресурсов (портов ввода-вывода, запросов на прерывания и т.п.) — Plug and Play (PnP). Когда новое устройство, например, та же звуковая карта, будет добавлена в систему, ей будут выделены те ресурсы, которые в данный момент свободны — незадействованные линии запросов на прерывание (IRQ), свободные адреса портов ввода-вывода. Поэтому драйвер изначально «не знает», какие именно адреса портов и IRQ ему будут выделены — эти данные будут различными для разных компьютеров. При этом задача распределения ресурсов ложится на ОС.
В ОС Windows, как и в большинстве современных ОС, драйвера управляют буквально всем: работой с аппаратурой, поддержкой файловых систем различных типов, сетевых протоколов и т.п. Это дает определенные преимущества и делает систему более гибкой: например, для того, чтобы ОС стала «понимать» другой сетевой протокол, нужно всего лишь установить соответствующий драйвер. 1.1 Система ввода-вывода в Windows.
На данный момент наиболее распространены два семейства ОС Windows: Windows NT, куда относятся Windows NT, 2000, XP, и Windows 9x (Win 95, 98, ME). При этом отмечается тенденция к отмиранию ветки 9х, хотя такие системы будут встречаться еще достаточно долго. Каждая ветка использует свою архитектуру ядра и подсистемы ввода-вывода. Поэтому естественно, написание драйверов для этих систем должно отличаться.
В Windows 9x долгое время использовались .vxd–драйвера. Эта модель драйверов начинает свою историю еще с Windows 3.1. Для .vxd–драйверов сохранилась совместимость «снизу вверх»: т.е. драйвер, написанный под Windows 3.1, будет нормально работать и под Windows 95, а может быть, и 98. Функции драйверов .vxd используются как Win32, так и Win16 приложениями.
В Windows NT 4.0 появилась своя архитектура драйверов. Она ставила перед собой цели повышения устойчивости работы драйвера, переносимости с одной платформы на другую, поддержки многопроцессорности т.п. Вместе с тем архитектура драйверов Windows NT 4.0 была, что называется, «сырой» и недоработанной, хотя и очень перспективной. С выходом систем Win98 и Win2000 появилась новая архитектура драйверов — WDM (Windows Driver Model). Она развилась из архитектуры драйверов Windows NT 4.0 с небольшими изменениями. WDM – драйвера с равным успехом могут быть использованы как в Win 98, так и в Win 2000.
Система Win 98 состоит как бы из двух слоев: User Mode (режим пользователя) и Kernel Mode (режим ядра). В режиме пользователя функционируют пользовательские приложения. Они работают в 3-м кольце защиты; каждая программа работает в своем виртуальном адресном пространстве. Для каждого DOS или Windows–приложения создается своя виртуальная машина (Virtual Machine, VM), задачей которой является виртуализация аппаратуры компьютера для данного приложения. Т.е. каждое приложение считает, что вся оперативная память и все остальные аппаратные ресурсы принадлежат только ему и приложение может обратиться к ним в любой момент. Ядро ОС содержи диспетчер виртуальных машин (Virtual Machine Manager, VMM). Задача VMM — корректно разрешать конфликты, возникающие при доступе к ресурсам системы из разных VM. Ядро, VMМ, виртуальные машины и драйвера виртуальных устройств (Virtual Device Drivers), естественно, работают в режиме ядра (Kernel Mode).
Рис. 1. Подсистема ввода-вывода Win 98.
В Windows 98 обработка запросов на ввод-вывод от приложений DOS и от старых Win16–приложений отличается от обработки запросов новых Win32–приложений. Для DOS–приложений создается своя виртуальная машина (DOS virtual machine), Win 16 и Win32 — приложения используют виртуальную машину Windows (System Virtual Machine). Обычно, когда приложение запрашивает операцию ввода-вывода (например, вызывает функцию API ReadFile — чтение из файла), этот запрос поступает в одну из системных DLL (в нашем случае — kernel32.dll). Оттуда запрос на операцию с внешним устройством передается сразу системным драйверам. Такая организация запроса Приложение?dll?Драйвер получила наибольшее распространение.
Система Windows 2000 имеет другую архитектуру, отличную от Win98. Это обусловлено повышенными требованиями к надежности, защите и переносимости этой системы (теоретически, Win2000 — переносимая система, и существуют реализации Win2000 под системы Alpha, MIPS и др.). В настоящее время именно благодаря этим особенностям Win2000 завоевывает все большую популярность, поэтому стоит рассмотреть особенности ее архитектуры подробнее.
Рис. 2 — главные компоненты Windows2000.
Окружение Win2000 включает компоненты, которые работают в режиме пользователя (User mode) и в режиме ядра (Kernel mode). В режиме пользователя работают подсистема защиты, подсистема Win32-архитектуры (обеспечивает стандартные API — вызовы Windows), подсистема POSIX (обеспечение кроссплатформенности). В режиме ядра работают все основные компоненты системы: диспетчер ввода-вывода (I/O manager), диспетчер конфигурации (Configuration Manager), подсистема PnP, диспетчер управления энергопотреблением (Power Manager), диспетчер памяти (Memory Manager) и прочие жизненно необходимые службы. Драйвера в Win2000 включены в подсистему ввода-вывода. При этом драйвера тесно взаимодействуют практически со всеми компонентами ядра. Драйвера взаимодействуют с аппаратурой при помощи Hardware Abstraction Level, HAL (уровень абстракции аппаратуры). HAL — программный компонент ядра Win2000, который обеспечивает интерфейс ядра (в том числе и некоторых драйверов) с аппаратурой. Т.к. Win2000 – платформенно независимая система (уже сейчас есть версии Win2000 для процессоров Alpha и RISC), то HAL избавляет ядро от непосредственного общения с кэшем, прерываниями, шинами ввода-вывода и большинством прочих устройств, оставляя эту работу драйверам, специально написанным для данной системы. Таким образом, ядро системы представляется набором отдельных изолированных модулей с четко определенными внешними интерфейсами.
Все драйвера NT имеют множество стандартных методов драйвера, определенных системой, и, возможно, несколько специфических методов, определенных разработчиком. Драйвера Windows 2000 используют архитектуру WDM (Windows Driver Model). В Windows 2000 драйвера бывают следующих типов:
• Kernel mode drivers (драйверы режима ядра). Основной тип драйвера. Такие драйвера используются для решения общих задач: управление памятью, шинами, прерываниями, файловыми системами, устройствами хранения данных и т.п.
• Graphics drivers (драйверы видеокарт). Как правило, создаются одновременно с самой видеокартой. Очень сложны в написании, так как должны учитывать множество противоречивых требований и поддерживать множество стандартов. Скорее всего, вам не потребуется создавать ничего подобного.
• Multimedia drivers (мультимедиа-драйверы). Драйверы для :
• Аудиоустройств — считывание, воспроизведение и компрессия аудиоданных.
• устройств работы с видео — захват и компрессия видеоданных.
• позиционных устройств — джойстики, световые перья, планшеты и пр.
• Network drivers (сетевые драйвера) — работа с сетью и сетевыми протоколами на всех уровнях.
• Virtual DOS Drivers — драйверы для виртуальных машин MS-DOS. Постепенно переходят в раздел рудиментарных.
В свою очередь, существует три типа драйверов ядра, каждый тип имеет четко определенные структуру и функциональность.
• Device drivers (драйвера устройств), такие как драйвер клавиатуры или дисковый драйвер, напрямую общающийся с дисковым контроллером. Эти драйвера также называются драйверами низкого уровня, т. к. они находятся в самом низу цепочки драйверов Windows NT.
• Intermediate drivers (промежуточные драйвера), такие как драйвер виртуального или зеркального диска. Они используют драйверы устройств для обращения к аппаратуре.
• File system drivers (FSDs). Драйверы файловых систем, таких как FAT, NTFS, CDFS, для доступа к аппаратуре используют Intermediate drivers и Device drivers.
Драйвера Windows 2000 должны удовлетворять следующим требованиям:
• Переносимы с одной платформы на другую.
• Поддерживающие мультипроцессорные платформы.
• Поддерживать пакетный ввод-вывод с использванием I/O request packets (IRPs, запросы ввода-вывода).
• Поддерживать асинхронный ввод-вывод.
Система ввода-вывода Windows 2000 имеет следующие особенности:
• Менеджер ввода-вывода NT представляет интерфейс для всех kernel-mode драйверов, включая драйвера физических устройств, драйвера логических устройств и драйвера файловых систем.
• Операции ввода-вывода послойные. Это значит, что вызов, сделанный пользователем, проходит через несколько драйверов, генерируя несколько пакетов запросов на ввод-вывод и «по пути» обращаясь к необходимым драйверам. К примеру, когда приложение пытается открыть файл, подсистема ввода-вывода Windows делает запрос к драверу файловой системы; драйвер файловой системы обращается к промежуточному драйверу; и лишь промежуточный драйвер обращается непосредственно к винчестеру. Такая архитектура построения системы существенно повышает ее гибкость и снижает общую стоимость разработки.
• Разработчик драйвера обязан реализовать несколько стандартных функций, к которым будет обращаться диспетчер ввода-вывода (I/O manager).
Читайте также
Глава 1 Windows Vista. Общие сведения
Глава 1 Windows Vista. Общие сведения Начнем знакомство с новой операционной системой компании Microsoft – Windows Vista. С 2001 года, то есть появления Windows XP, Microsoft не обновляла линейку клиентских операционных систем. Появление новой, значительно переработанной версии Windows Vista ожидалось с
Мнемоника названий специальных файлов устройств в файловой системе UNIX
Мнемоника названий специальных файлов устройств в файловой системе UNIX Названия специальных файлов устройств в большой степени зависят от конкретной версии UNIX. Тем не менее в этих названиях присутствует общая логика, позволяющая даже в незнакомой системе определить,
Общие сведения
Общие сведения Для чего же оно вообще нужно, это дистанционное обучение? Кому оно может понадобиться? Оказывается, многим.– Наибольшее количество удаленно обучающихся составляют пользователи в возрасте от 25 до 30 лет. Для них обучение в классическом виде невозможно из-за
Общие сведения
Общие сведения По своей сути группы новостей (телеконференции) представляют собой обмен письмами не с одним пользователем, а сразу с группой с помощью специальной программы. Впрочем, мы ничего специального искать не будем, так как работать с группами новостей нам поможет
Глава 1 Общие сведения о Windows 7
Глава 1 Общие сведения о Windows 7 В первой главе кратко вспомним, что представляет собой операционная система Windows 7, каковы ее основные свойства и как оценить ее
msinfo32.exe (Сведения о системе)
msinfo32.exe (Сведения о системе) Местонахождение: C:Program FilesCommon FilesMicrosoft SharedMSInfo Описание: System InformationПрограмма Сведения о системе собирает и отображает данные о конфигурации системы как для локальных, так и для удаленных компьютеров. Сюда входит информация о конфигурации
Общие сведения
Общие сведения Одним из достоинств модуля buZZ.Pro является возможность использования нескольких фильтров одновременно и гибкое управление их настройками. При выборе строки плагина из меню Filters (Фильтры) появляется так называемый стек – окно Custom (Настройка), в котором
1. Общие сведения о Windows
1. Общие сведения о Windows Прежде чем приступать к установке Windows XP, вспомним, что подразумевается под словосочетанием «операционная система», что такое файл и папка. Не стоит пугаться умных слов, которые будут встречаться ниже. Если вы до конца не сможете понять разницу
Общие сведения
Общие сведения Главная страница, посвященная .NET Compact Framework, находится по адресу http://msdn.microsoft.com/netframework/programming/netcf/default.aspx. Там можно найти все последние новости о рассматриваемой технологии, обновления программ, ссылки на другие полезные сайты, примеры.Технология .NET Compact
Общие сведения о Windows ХР Professional
Общие сведения о Windows ХР Professional Windows ХР является современной операционной системой, разработанной компанией Microsoft в 2001 г. При этом Windows ХР была выпущена в двух вариантах: Windows ХР Professional и Windows ХР Home Edition . Данные варианты являются основными, и именно их мы будем рассматривать
Общие сведения
Общие сведения Во-первых, рассмотрим ключевые понятия. Архивация (запаковка) – это сжатие файлов. Для окончательного усваивания этого понятия представьте себе поролоновую губку – она с виду большая, но ее можно сжать и запихнуть в емкость гораздо меньшего объема. Архив
Глава 2 Общие сведения о системе КОМПАС-3D LT
Глава 2 Общие сведения о системе КОМПАС-3D LT Система КОМПАС-3В LT предназначена для создания трехмерных параметрических моделей деталей и последующего полуавтоматического выполнения их рабочих чертежей, содержащих все необходимые виды, разрезы и сечения.Система
Общие сведения
Общие сведения Электронная почта (E-mail) – один из первых сервисов Интернета, который до сих пор является самым популярным.Пользователи электронной почты могут обмениваться между собой письмами. Каждое письмо пользователь создает на своем компьютере, после чего
Общие сведения о Проводнике Windows Vista
Общие сведения о Проводнике Windows Vista Для просмотра содержимого папок используется программа Проводник. Ее не нужно запускать специально – достаточно открыть любую папку, и ее содержимое будет отображено в окне Проводника. Вы можете также встретить термин окно папки,
Основные сведения об устройствах и драйверах
Основные сведения об устройствах и драйверах Современный компьютер состоит из большого количества различных устройств, от правильной работы которых зависит его работа в целом. Чтобы операционная система могла использовать устройство, для него необходим драйвер –
Общие сведения
Общие сведения Макрос – это программа, написанная на некотором языке, которая используется обычно для автоматизации определенных процессов внутри приложений. В данном случае разговор пойдет о языках Visual Basic for Applications (VBA) и WordBasic (WB), которые Microsoft использует в своих