12driver

advertisement
Структура драйвера
Виды драйверов и их устройство
Виды драйверов в ОС
Блочные
Символьные
Сетевые
SCSI – драйверы
псевдоустройства
Блочные
Жесткие диски
Дискеты
CD-DVD-дисководы
Некоторые сетевые устройства
Символьные
Байтовый ввод и вывод
Клавиатура
Терминалы
Последовательный и параллельный
порты
Аудио-устройства
Контроллеры датчиков
Сетевые
Драйверы сетевых карт
Драйверы протоколов
Драйверы фильтрации пакетов
SCSI - устройства
Протоколы определения адреса
приемника
Протоколы передачи пакета
Протоколы арбитража
Используется и для других типов
устройств (USB, Parport)
Псевдоустройства
Память процесса
Память ядра
Датчик случайных чисел
Порты ввода-вывода
Null - устройство сброса данных
Zero –источник нулей
Loop - замыкание файла на VFS
Связь со специальными файлами
Каталог /dev/
Винчестеры – raw диски
Разделы – именование для IDE и SCSI
контроллеров
Гибкие диски и CD-DVD-приводы
Псевдоустройства
Создание специального файла
Ведущее и ведомое числа
Major
Minor
Назначение этих чисел
Уникальность
Соответствие драйверам устройств
Архитектура драйвера
Заголовок
Локальные переменные
Диспетчер
Процедура обработки прерываний
Init- модуль
Setup-модуль
Заголовок драйвера
Содержит основные параметры
драйвера
Содержит имя
Необходим для регистрации драйвера
в системе
Локальные переменные
Статического и динамического типа
Хранят значения временных
параметров процесса ввода-вывода
Необходимы для функционирования
драйвера
Диспетчер
Или процедура «стратегия»
Принимает системные запросы в
стандарте виртуальной файловой
системы и преобразует их в команды
устройства
Освобождает процессор после
программирования устройства
Процедура прерываний
Или ISR – interrupt service routine
Асинхронно получает управление при
возникновении аппаратного прерывания
по вектору устройства
Анализирует причину прерывания
Передает данные из/в пространство
программы пользователя
Имеет два уровня (критический и
фоновый) во втором прерывания
разрешены
Init
Работает при установке или
перезапуске драйвера
Проверяет присутствие и
работоспособность устройства
Регистрирует драйвер в системе
Setup
Присутствует в некоторых ОС
Позволяет устанавливать параметры
Работы драйвера
В большинстве современных UNIXсистем его функции реализованы в
диспетчере через IOCTL-запросы
Структура file_operations в Linux
Download