Фрагмент для ознакомления
2
1. Введение
В современном мире, с развитием информационных технологий, их высоко технологичностью и высокой потребностью, возникает все большая необходимость для изучения внедрения новых устройств, в том числе внешних. Данная тема, никогда не потеряет актуальности в современном мире, так как чем выше технологии, тем больше новых устройств появляются на мировом рынке.
Каждый пользователь, независимо от его уровня компьютерной грамотности, порой сталкивается с проблемой установки новых устройств на персональный или рабочий компьютер. Вместе с этим возникает вопрос и про то, каким же образом внешние устройства взаимодействуют с операционной системой компьютера. В данной работе, мы подробно изучим вопросы взаимодействия внешний устройств с операционной системой, познакомися с понятием «драйвер» и проведет подробный разбор данного понятия и значимости его роли, при установке различных устройств. А также изучим процесс установки драйверов на компьютеры.
2. Общие сведения о драйверах
Первое, что хотелось бы отметить, что понятие драйвер тесно связано с понятием ядра операционной системы. А так как драйвер – это по сути программа, которая управляет работой внешнего устройства, преобразует данные на входе и выходе, то необходимо разобраться как этот программный код взаимодействует с операционной системой, и ядром в частности.
Если говорить об операционных системах семейства «Windows», то имеется ввиду непосредственно Windows Research Kernel (исследовательское ядро windows).
Одной из функций ядра является изоляция драйверов устройств от аппаратных архитектур. То есть, обработку прерываний, исключений и различных мультипроцессорных синхронизаций. И несмотря на то, что функции драйверов мало зависят от аппаратных особенностей, конструкция ядра стремиться к тому, чтобы максимизировать общий код для различных архитектур интерфейсов. То есть, независимо от конкретной архитектуры, ядро старается сделать так, чтобы код драйвера частично или полностью был реализован и интерфейсы были вызваны на различных компьютерах.
Таким образом, нельзя не отметить важность переносимости компонент windows между различными аппаратными платформами. И за это, в основном отвечает загружаемый модель ядра – уровень аппаратных абстракций (HAL – hardware abstraction layer). Поэтому драйверы, написанные пользователями, или являющиеся компонентами windows должны вызывать HAL- подпрограммы, для поддержки переносимости. Всю информацию о HAL, можно найти в WDK ( windows drivers kit).
Таким образом, учитывая представленную выше информацию, можно сделать вывод, что
ДРАЙВЕР – некоторые загружаемые модули ядра, которые обеспечивают интерфейс между оборудование и диспетчером ввода-вывода, и запускающиеся либо в контексте инициирования ввода-вывода, либо потока режима ядра, либо в контексте exceptions (при возникновении прерываний). К тому же, следует отметить, что драйверы не работают с устройствами напрямую, для этого необходимо вызвать функцию в HAL.
В общем, выделяют следующие типы драйверов устройств:
- Драйверы аппаратных устройств (это как раз, в том числе драйверы внешних устройств). Они управляют с помощью HAL, записью и чтением с/на физическое устройство. К данному классу относятся драйверы внешних устройств ( их еще называют драйверами интерфейса с пользователем), драйверы шин, драйверы запоминающих устройств и прочие.
-Драйверы систем файлов – драйверы операционной системы windows, на вход принимают запросы о файловом вводе-выводу, на выход- передают запрос устройству
-Драйверы фильтра, обеспечивают отражение и зашифровку дисков, дополнительную обработку перед следующим переходом
-Протокольные драйверы
-Потоково-фильтровые драйверы ядра, обеспечивают обработку данных.
Если говорить о реализации драйверов, с точки зрения программного кода, то обычно драйверы пишут на языке С, ассемблере и (что реже) С++. Это еще один аргумент, в пользу переносимости внутри различных архитектур.
Еще одним важным понятием, при знакомстве с драйверами считается реестр.
Показать больше
Фрагмент для ознакомления
3
3. Список литературы
1) Д. Соломон, М. Руссинович. Внутреннее устройство Windows, 2013 год, 800 стр., издательство «Питер».
2) Сафонов В.О. "Основы современных операционных систем", 2011 год, 583 стр.,
3) Побегайло А. «Системное программирование в Windows», 2006 год, 1056 стр., издательство БХВ-Петербург
4) Кокорева О., « Реестр Windows 7», 2010 год, 696 стр., издательство БХВ-Петербург
5) М. Руссинович, Утилиты Sysinternals. Справочник администратора,2012 год, 478 стр., издательство « БХВ-Петербург».
6) Нортон Д., «Написание драйверов для Windows», 1994 год, 560 стр., издательство МИР
7) Алехина Г.В., Годин И.М., Иванько А.Ф., Иванько М.А., Мастяев Ф.А., Петрик Е.А. Информатика. / Московская финансово-промышленная академия. – М., 2005.
8) Свен Шрайбер, "Недокументированные возможности Windows 2000", издательство "Питер", 2002.
9) Walter Oney, "Programming the Microsoft Driver Model", Microsoft Press, 1999
10) Хоглунд Г. Батлер Дж, «Руткиты: внедрение в ядро Windows», издательство «Питер», 2007.
11) http://adminbook.ru/index.php?men1=5/10/0, глава 10 «Драйверы внешних устройств»
12) http://metod.vt.tpu.ru/edu/df/pd/book/book1_1/index.htm , глава 1.6 «Драйвер клавиатуры»
13) Пенни Орвик, Гай Смит, Developing Drivers with the Windows Driver Foundatio, Издательство – БХВ-Петербург, 2008.
14) Уолтер Они «Использование Microsoft Windows Driver Model. 2-е изд.», издательство "Питер", 2007.
15) В.П.Солдатов «Программирование драйверов Windows, 2-е издание» , издательство Бином, Москва 2004.