Функционально интерфейс делится на три части.
♦ Драйвер-ядро (driver-kernel). Самая большая составляющая. Содержит точки входа драйвера и процедуры поддержки ядра.
♦ Драйвер-аппаратура (driver-hardware). Этот узел описывает процедуры взаимодействия между драйвером и устройством. Такие процедуры являются аппаратно-зависимыми, однако большинство из них определяется спецификацией DDI/DKI.
♦ Драйвер-загрузка (driver-boot). Эта связка отвечает за то, каким именно образом драйвер
встраивается в ядро системы. Она не описывается в спецификации DDI/DKI, но присутствует во множестве руководств производителей по программированию устройств (например, [10]).
Стандарт также содержит описание большого числа утилитарных функций общего назначения, предоставляющих такие возможности, как работа с символами и строками. Эти функции не являются частью интерфейса DDI/DKI.
Каждой функции интерфейса присвоен уровень привязки (commitment level). Функции первого уровня останутся в следующих версиях спецификации
В каждой системе UNIX имеется интерактивное справочное руководство — manual pages («man» pages), в котором вся информация сгруппирована по разделам (системные вызовы, пользовательские команды, форматы файлов и т. д.). Каждый раздел имеет свой номер. Каждая страница (page) оформлена по единым правилам (включает название, описание, синтаксис, возвращаемые значения, ошибки, предостережения, ограничения, файлы, ссылки и др.). Нужная страница описания выводится по команде «man command». Спецификация DDI/DDK больше не переиздавалась, но и сейчас ее можно приобрести в магазинах e-commerce (Device Driver Reference Unix Svr4.2: Unix Svr4.2; By Hines, Robert M. (editor); Hines, Robert М.; Unix System Laboratories (corporate author); Wilcox, Spence (editor); Published by Prentice Hall (Sd) (Jun 1, 1993); ISBN: 0130426318). Для тех ОС, которые используют принципы CVR4.2, существуют соответствующие руководства. Для Digital UNIX это Writing Device Drivers: Reference; Digital Equipment Corporation, 1996. Подходящая к своей документации с особой тщательностью Sun Microsystems выделяет в каждой версии своих Man pages секцию 9 с описанием команд системного администрирования, в которой содержатся описания процедур и структур DDI/DKI. Более полная версия включается в Device Driver Developers Kit (DDK).
DDI/DKI и могут быть изменены только для обратной совместимости. Иначе говоря, программы, созданные с использованием функций первого уровня, будут совместимы с будущими реализациями системы SVR4. Однако поддержка процедур второго уровня ограничена тремя годами. Для каждой такой процедуры указывается дата появления в спецификации. По истечении трех лет процедура может быть изменена любым способом или вообще удалена из спецификации.
Некоторые возможности функций первого уровня определены в документе как принадлежащие ко второму уровню. С течением времени процедура может быть полностью перенесена на второй уровень (например, как это произошло с процедурой rminit(), описание которой находится в разделе 16.7.2)1. При этом дата появления процедуры на втором уровне считается датой ее создания. Таким образом, такая функция будет поддерживаться спецификацией еще как минимум три года.
Общие рекомендации
В спецификациях DDI/DKI содержится набор рекомендаций, помогающих разработчикам обеспечивать должный уровень переносимости кодов между реализациями SVR4.
♦ Драйверы не должны обращаться к системным структурам данных напрямую. В частности, это относится к области и. В ранних версиях UNIX такое обращение часто являлось необходимым и применялось для чтения информации о базовых адресах, счетчиках передаваемых байтов, кодов ошибки или завершения и т. д. Это приводило к тому, что драйвер сильно зависел от структуры области и. При внесении в нее изменений драйвер необходимо было перестраивать заново. В SVR4 произошла кардинальная перекройка взаимодействия драйверов и ядра. Теперь для этой цели могут использоваться структуры данных, определенные в разделе 4.
♦ При обращении к структурам, описанным в разделе 4, драйвер не вправе использовать поля, не описанные в спецификации. Такие поля могут не поддерживаться в последующих версиях стандарта.
♦ Драйверы не имеют права определять массивы структур раздела 4. Последующие изменения размера структур могут привести к невозможности применения таких массивов в дальнейших реализациях системы. Исключением из этого правила являются структуры iovec и uio.
Опубликовал katy
June 24 2015 16:44:37 ·
0 Комментариев ·
3306 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.