9.1. Драйверы устройств
9.1. Драйверы устройств
Как уже говорилось выше, одной из основных задач операционной системы является управление аппаратной частью. Ту программу или тот кусок программного кода, который предназначен для управления конкретным устройством, и называют обычно драйвером устройства. Необходимость драйверов устройств в операционной системе объясняется тем, что каждое отдельное устройство воспринимает только свой строго фиксированный набор специализированных команд, с помощью которых этим устройством можно управлять. Причем команды эти чаще всего предназначены для выполнения каких-то простых элементарных операций. Если бы каждое приложение вынуждено было использовать только эти команды, писать приложения было бы очень сложно, да и размер их был бы очень велик. Поэтому приложения обычно используют какие-то команды высокого уровня (типа "записать файл на диск"), а о преобразовании этих команд в управляющие последовательности для конкретного устройства заботится драйвер этого устройства. Поэтому каждое отдельное устройство, будь то дисковод, клавиатура или принтер, должно иметь свой программный драйвер, который выполняет роль транслятора или связующего звена между аппаратной частью устройства и программными приложениями, использующими это устройство.
В Linux драйверы устройств бывают трех типов.
Драйверы первого типа являются частью программного кода ядра (встроены в ядро). Соответствующие устройства автоматически обнаруживаются системой и становятся доступны для приложений. Обычно таким образом обеспечивается поддержка тех устройств, которые необходимы для монтирования корневой файловой системы и запуска компьютера. Примерами таких устройств являются стандартный видеоконтроллер VGA, контроллеры IDE-дисков, материнская плата, последовательные и параллельные порты.
Драйверы второго типа представлены модулями ядра. Они оформлены в виде отдельных файлов и для их подключения (на этапе загрузки или впоследствии) необходимо выполнить отдельную команду подключения модуля, после чего будет обеспечено управление соответствующим устройством. Если необходимость в использовании устройства отпала, модуль можно выгрузить из памяти (отключить). Поэтому использование модулей обеспечивает большую гибкость, так как каждый такой драйвер может быть переконфигурирован без остановки системы. Модули часто используются для управления такими устройствами как SCSI-адаптеры, звуковые и сетевые карты.
Файлы модулей ядра располагаются в подкаталогах каталога /lib/modules. Обычно при инсталляции системы задается перечень модулей, которые будут автоматически подключаться на этапе загрузки. Список загружаемых модулей хранится в файле /etc/modules. А в файле /etc/modules.conf находится перечень опций для таких модулей. Редактировать этот файл "вручную" не рекомендуется, для этого существуют специальные скрипты (типа update-modules).
Для подключения или отключения модулей в работающей системе имеются специальные утилиты.
• lsmod - выдает список загруженных в данный момент модулей.
• insmod - служит для загрузки или "установки" модуля из командной строки.
Пример:
insmod joystick
• rmmod - служит для выгрузки или "удаления" модуля.
Пример:
rmmod joystick
• modprobe - автоматически загружает модули. Для того, чтобы отобразить текущую конфигурацию всех модулей можно воспользоваться командой: modprobe -c.
Примечание
Хотя файлы модулей имеют суффикс.o, при использовании этих команд ссылки на модули указываются без упоминания этого суффикса. Например: при упоминании модуля, файл которого называется "joystick.o", вы должны использовать в командной строке просто "joystick".
И, наконец, для третьего типа драйверов устройств программный код драйвера поделен между ядром и специальной утилитой, предназначенной для управления данным устройством. Например, для драйвера принтера ядро отвечает за взаимодействие с параллельным портом, а формирование управляющих сигналов для принтера осуществляет демон печати lpd (который использует для этого специальную программу-фильтр, о чем подробнее будет рассказано ниже, в разд. 9.6). Другие примеры драйверов этого типа - драйверы модемов и X-сервер (драйвер видеоадаптера), о котором шла речь в главе 7.
Но надо специально отметить, что во всех трех случаях непосредственное взаимодействие с устройством осуществляет ядро или какой-то модуль ядра. А пользовательские программы взаимодействуют с драйверами устройств через специальные файлы, расположенные в каталоге /dev и его подкаталогах. То есть взаимодействие прикладных программ с аппаратной частью компьютера в ОС Linux осуществляется по следующей схеме:
устройство ‹-› ядро ‹-› специальный файл устройства ‹-› программа пользователя
Такая схема обеспечивает единый подход ко всем устройствам, которые с точки зрения приложений выглядят как обычные файлы.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
10.2 ДИСКОВЫЕ ДРАЙВЕРЫ
10.2 ДИСКОВЫЕ ДРАЙВЕРЫ Так сложилось исторически, что дисковые устройства в системах UNIX разбивались на разделы, содержащие различные файловые системы, что означало "деление [дискового] пакета на несколько управляемых по-своему частей" (см. [System V 84b]). Например, если на диске
10.3 ТЕРМИНАЛЬНЫЕ ДРАЙВЕРЫ
10.3 ТЕРМИНАЛЬНЫЕ ДРАЙВЕРЫ Терминальные драйверы выполняют ту же функцию, что и остальные драйверы: управление передачей данных от и на терминалы. Однако, терминалы имеют одну особенность, связанную с тем, что они обеспечивают интерфейс пользователя с системой.
12.3.3.3 Драйверы
12.3.3.3 Драйверы В многопроцессорной реализации вычислительной системы на базе компьютеров AT&T 3B20 семафоры в структуру загрузочного кода драйверов не включаются, а операции типа P и V выполняются в точках входа в каждый драйвер (см. [Bach 84]). В главе 10 мы говорили о том, что
Драйверы, встроенные в ядро, и драйверы, реализуемые в виде модулей
Драйверы, встроенные в ядро, и драйверы, реализуемые в виде модулей Как вы уже знаете, при настройке ядра можно включить или отключить некоторые свойства ядра, например, вы можете разрешить или запретить использование конкретного Ethernet-адаптера. На рис. 1.1 видно, что
9.1. Драйверы устройств
9.1. Драйверы устройств Как уже говорилось выше, одной из основных задач операционной системы является управление аппаратной частью. Ту программу или тот кусок программного кода, который предназначен для управления конкретным устройством, и называют обычно драйвером
Драйверы телефонии Zapata
Драйверы телефонии Zapata Компиляция драйверов телефонии Zapata для использования с оборудованием Digium проста; однако из-за различия сред сборки в версиях 1.2 и 1.4 для этого применяются немного разные методы. Сначала необходимо выполнить команду . /configu re, чтобы определить, какие
Драйверы
Драйверы Поговорим об очередном преимуществе Ubuntu Linux.Если вспомнить момент установки Windows, когда установка прошла, но осталось поставить драйвера, то я уверен, что каждый может вспомнить копание по полкам и шкафам в поисках дров к нашему ненаглядному компьютеру. Ubuntu
24.2 Драйверы
24.2 Драйверы Вообще говоря, в Ubuntu по умолчанию присутствуют все необходимые драйверы для всего поддерживаемого оборудования. Однако для некоторых устройств существуют также проприетарные драйверы от производителя, которые из-за забористых лицензий необходимо
Драйверы
Драйверы Драйверы — это специальные программы, управляющие работой оборудования, для которого они были написаны. Сейчас практически каждое устройство — от оптической мыши до видеокамеры — требует для своего взаимодействия с компьютером отдельный драйвер. Конечно, не
УСТАНАВЛИВАЕМ ДРАЙВЕРЫ
УСТАНАВЛИВАЕМ ДРАЙВЕРЫ Еще один настоятельный совет: перед началом установки видеодрайверов создайте резервную копию конфигурационного файла xorg.conf (в нем записаны настройки графического сервера X.Org), расположенного в каталоге /etc/X11. В ряде случаев после установки
5.2.8. Условия и драйверы
5.2.8. Условия и драйверы Некоторые условия могут требовать специфической обработки. Эти условия могут касаться ошибок или общего управления потоком данных внутри
Глава 13. Драйверы
Глава 13. Драйверы Как известно, для управления устройствами, входящими в состав компьютера, служат небольшие программы — драйверы. Для нормальной работы сканера также необходим драйвер, причем для каждой модели эта программа разрабатывается отдельно. Но «услуги»
Глава 11 Установка новых устройств. Драйверы
Глава 11 Установка новых устройств. Драйверы 11.1. Установка нового устройства в ваш компьютер В этом разделе мы поговорим о физическом подключении устройства к компьютеру. Любой пользователь рано или поздно столкнется с установкой новых устройств в свой компьютер. Вот