11.6.8.3. Пара драйвер/ядро
11.6.8.3. Пара драйвер/ядро
В данной модели, в отличие от пары конфигуратор/актор или спулер/демон, интерфейсная часть подает команды и интерпретирует вывод от ядра после запуска. Ядро имеет простую модель интерфейса. Используемый IPC-метод является деталью реализации: ядро может быть подчиненным процессом драйвера (в том смысле, который обсуждался в главе 7), или ядро и драйвер могут взаимодействовать через сокеты, общую память, или посредством любого другого IPC-метода. Ключевыми моментами в данном случае являются (а) интерактивность пары и (b) способность ядра к самостоятельной работе со своим собственным интерфейсом.
Написание таких пар сложнее, чем написание пар конфигуратор/актор, поскольку они теснее и сложнее связаны. Драйверу необходимы сведения не только об ожидаемой среде запуска ядра, но и о его наборе команд, а также о форматах ответов.
Однако если ядро спроектировано с возможностью использования в сценариях, то нередко драйверная часть пишется не автором ядра, а другим разработчиком, или несколько драйверов могут подключаться к определенному ядру. Превосходный пример в обоих случаях представлен программами^^ иghostview(l), которые являются драйверами для gs(1), интерпретатора Ghostscript. Ghostscript переводит
PostScript в различные графические форматы и низкоуровневые языки управления принтерами. Программы gv и ghostview обеспечивают GUI-упаковщики для весьма уникальных ключей вызова и синтаксиса команд Ghostscript.
Другим превосходным примером данной модели является комбинация программ xcdroast/cdrtools. В дистрибутив cdrtools входит программа cdrecord(1) с интерфейсом командной строки. Код cdrecord специализируется на работе с аппаратным обеспечением приводов CD-ROM. Программа xcdroast представляет собой GUI-интерфейс и предназначена для того, чтобы создать комфортные условия работы для пользователя. Для выполнения большей части работы программа xcdroast{ 1) вызывает cdrecord( 1).
Программа xcdroast также вызывает другие CLI-инструменты: cdda2wav( 1) (конвертер звуковых файлов) и mkisofs(1) (средство для создания из списка файлов CD-ROM-образов с файловой системой ISO-9660). Подробности того, как данные средства вызываются, скрыты от пользователей, которые могут сконцентрировать внимание на создании CD-образов, а не на необходимости знать секреты преобразования звуковых файлов или структуры файловых систем. Равно важно и то, что разработчики каждого из данных средств могут концентрироваться на профессиональных знаниях в своей предметной области без необходимости быть экспертами в разработке пользовательских интерфейсов.
Главный "подводный камень" организации драйвер/ядро состоит в том, что часто драйвер должен распознавать состояние ядра, для того чтобы отражать его пользователю. Если ядро работает практически без задержек, то это не является проблемой, однако если ядру требуется большой промежуток времени (например, при доступе к множеству URL-адресов), то недостаток обратной связи может создавать значительные сложности. Подобной проблемой является отклик на ошибки. Например, традиционный (хотя и не совсем соответствующий духу Unix) запрос на подтверждение при перезаписи существующего файла сложен в написании в системе драйвер/ядро. Ядру, обнаружившему проблему, приходится требовать от драйвера выдать сообщение пользователю.
Стив Джонсон.
Важно спроектировать ядро так, чтобы оно не только правильно работало, но и уведомляло драйвер о выполняемой работе, с тем чтобы драйвер мог представить изящный интерфейс с соответствующей обратной связью.
Понятия "драйвер" и "ядро" являются редкими, но устоявшимися в Unix-сообществе.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Драйвер
Драйвер Драйверы и модули очень похожи, они используют одинаковые структуры данных (streamtab, qinit, module_info) и одинаковый интерфейс (xxopen(), xxput(), xxservice() и xxclose()). Однако между драйверами и модулями существуют различия.Во-первых, только драйверы могут непосредственно
Пара сокетов
Пара сокетов Пара сокетов (socket pair) для соединения TCP — это кортеж (группа взаимосвязанных элементов данных или записей) из четырех элементов, определяющий две конечных точки соединения: локальный IP-адрес, локальный порт TCP, удаленный IP-адрес и удаленный порт TCP. В SCRIPT
Драйвер ztdummy
Драйвер ztdummy Определенные приложения и функции Asterisk для работы требуют наличия устройства синхронизации (Asterisk даже не скомпилирует их, если не найдет такое устройство). Все PCI-устройства производства Digium обеспечивают интерфейс синхронизации с частотой 1 кГц, что
Пара слов о книге
Пара слов о книге Когда Патрик Коупленд предложил мне написать эту книгу, я колебался. В конечном итоге мои сомнения подтвердились. Я боялся, что многие будут спрашивать, нет ли в Google более подходящего человека для этой работы, — и они спрашивали. Или толпы людей захотят
11.6.8.1. Пара конфигуратор/актор
11.6.8.1. Пара конфигуратор/актор В данной паре интерфейсная часть управляет средой запуска фильтра или программы, подобной демону, которая затем выполняется, не требуя пользовательских команд.Хорошим примером пары конфигуратор/актор являются программы fetchmail(l) и fetchmailconf(1)
11.6.8.2. Пара спулер/демон
11.6.8.2. Пара спулер/демон Облегченный вариант пары конфигуратор/актор может оказаться полезным в ситуациях, когда требуется сериализованный доступ к общему ресурсу в пакетном режиме, т.е. когда четко определенный поток заданий или последовательность запросов требует
11.6.8.4. Пара клиент/сервер
11.6.8.4. Пара клиент/сервер Пара клиент/сервер подобна паре драйвер/ядро, за исключением того, что часть ядра является запущенным в фоновом режиме демоном, от которого не требуется интерактивная работа и наличие собственного пользовательского интерфейса. Обычно демон
11.6.8.1. Пара конфигуратор/актор
11.6.8.1. Пара конфигуратор/актор В данной паре интерфейсная часть управляет средой запуска фильтра или программы, подобной демону, которая затем выполняется, не требуя пользовательских команд.Хорошим примером пары конфигуратор/актор являются программы fetchmail(1) и fetchmaileonf(1)
11.6.8.2. Пара спулер/демон
11.6.8.2. Пара спулер/демон Облегченный вариант пары конфигуратор/актор может оказаться полезным в ситуациях, когда требуется сериализованный доступ к общему ресурсу в пакетном режиме, т.е. когда четко определенный поток заданий или последовательность запросов требует
11.6.8.3. Пара драйвер/ядро
11.6.8.3. Пара драйвер/ядро В данной модели, в отличие от пары конфигуратор/актор или спулер/демон, интерфейсная часть подает команды и интерпретирует вывод от ядра после запуска. Ядро имеет простую модель интерфейса. Используемый IPC-метод является деталью реализации: ядро
11.6.8.4. Пара клиент/сервер
11.6.8.4. Пара клиент/сервер Пара клиент/сервер подобна паре драйвер/ядро, за исключением того, что часть ядра является запущенным в фоновом режиме демоном, от которого не требуется интерактивная работа и наличие собственного пользовательского интерфейса. Обычно демон
Пара (Pair)
Пара (Pair) Библиотека включает шаблоны для разнородных пар значений.template ‹class T1, class T2›struct pair { T1 first; T2 second; pair() {} pair(const T1& x, const T2& y): first(x), second(y) {}};template ‹class T1, class T2›inline bool operator==(const pair‹Tl,T2›& x, const pair‹Tl,T2›& y) { return x.first == y.first && x.second == y.second;}template ‹class T1, class T2›inline bool
Пара отмазок
Пара отмазок Должен сразу предупредить – ответа на вопрос, вынесенный в качестве заголовка, здесь не будет. Потому что и сам его не знаю. Так что далее вы не найдете ни мастдаев, ни банзаев, ни прочих форевов. Но за то, что я следую завету великого римского историка –
11.2. Что такое драйвер
11.2. Что такое драйвер Драйвер — это специальная программа, обеспечивающая взаимодействие операционной системы и устройства. Попросту говоря, драйвер «объясняет» операционной системе, как нужно работать с устройством.Задача драйвера заключается в обработке запросов,
Как переустановить драйвер?
Как переустановить драйвер? Предположим, что установленный драйвер видеокарты вызвал BSOD. Перед загрузкой Windows нажмите F8, затем в меню особых вариантов загрузки (см. рис. 10.3, с. 218) выберите Безопасный режим. После этого нужно немного подождать, пока загрузится Windows. Загрузка
Реймонд Эрик Стивен
Просмотр ограничен
Смотрите доступные для ознакомления главы 👉