ТОП 10:

Універсальність інтерфейсу драйверів пристроїв



Як відомо з розділу 2, драйвер пристрою — це програмний модуль, що керує взає­модією ОС із конкретним зовнішнім пристроєм.

Драйвер можна розглядати як транслятор, що отримує на свій вхід команди високого рівня, зумовлені його інтерфейсом із операційною системою, а на виході генерує низькорівневі інструкції, специфічні для апаратного забезпечення, яке він обслуговує. Звичайно на вхід драйвера команди надходять від підсистеми введення-виведення, у більшості ОС їх можна задавати і у прикладних програ­мах. На практиці драйвери зазвичай записують спеціальні набори бітів у пам'ять контролерів, повідомляючи їм, які дії потрібно виконати. Драйвери практично завжди виконують у режимі ядра. Вони можуть бути завантажені у пам'ять і ви­вантажені з неї під час виконання.

Набір драйверів, доступних для операційної системи, визначає набір апарат­ного забезпечення, із яким ця система може працювати. Якщо драйвер для потріб­ного пристрою відсутній, користувачу залишається лише чекати, поки він не буде створений (альтернативою є самостійна розробка, однак більшість користувачів до розв'язання такого завдання не готові). Часто в цій ситуації користувач змуше­ний перейти до використання іншої ОС. Для того щоб знизити ймовірність такого небажаного розвитку подій, підсистемі введення-виведення потрібно забезпечити зручний універсальний і добре документований інтерфейс між драйверами й ін­шими компонентами операційної системи. Наявність такого інтерфейсу і зручного середовища розробки драйверів дає змогу спростити їхнє створення і розширити коло осіб, які можуть цим займатися (розробка драйверів має бути до снаги ви­робникам відповідного апаратного забезпечення).

Зручність середовища розробки драйверів визначає набір функцій і шаблонів, наданих програмістові. Часто набір засобів, призначений для розробки драйверів під конкретну операційну систему, постачають розробники цієї ОС у вигляді ок­ремого продукту, який називають DDK (Driver Development Kit). У нього вхо­дять заголовні файли, бібліотеки, можливо, спеціальні версії компіляторів і нала-годжувачів, а також документація.

 

15.2. Організація підсистеми введення-виведення

Загальна структура підсистеми введення-виведення показана на рис. 15.1.

 

 

 

Розглянемо особливості організації такої підсистеми.

♦ Структура підсистеми розділена на рівні, що дає змогу забезпечити, з одного боку, підтримку всього спектра зовнішніх пристроїв (на нижньому рівні, де розташовані апаратні драйвери), а з іншого - уніфікацію доступу до різних пристроїв (на верхніх рівнях). Зазначимо, що досягти повної ідентичності доступу до всіх можливих пристроїв майже неможливо, тому, крім горизон­тальних рівнів, виділяються вертикальні групи пристроїв, взаємодія з якими ґрунтується на загальних принципах. На рис. 15.1 у такі групи об'єднані гра­фічні пристрої та дискові накопичувачі.

♦ Деякі функції цієї підсистеми не можуть бути реалізовані у драйверах. Це, на­самперед, засоби, що забезпечують координацію роботи всіх модулів підтримки введення-виведення у системі, які об'єднуються у менеджер введення-виведен­ня. Він, з одного боку, забезпечує доступ прикладних програм до відповідних засобів введення-виведення (наприклад, через інтерфейс файлової системи, реалізований як набір системних викликів), з іншого — середовище функціо­нування драйверів пристроїв, реалізує загальні служби, такі як буферизація, обмін даними між драйверами тощо.

♦ Драйвери пристроїв теж розглядають на кількох рівнях. Поряд із низькорівне-вими апаратними драйверами для керування конкретними пристроями є драй­вери вищого рівня. Вони взаємодіють із апаратними драйверами і на підставі отриманих від них даних виконують складніші завдання. Так, над драйвером відеокарти можна розмістити драйвери, які реалізовуватимуть складні гра­фічні примітиви (наприклад, аналогічні рівню GDI у Windows-системах), а над апаратними драйверами дискових пристроїв - драйвери файлових систем. Як наслідок, код драйверів кожного рівня спрощується, кожен із них тепер роз­в'язує меншу кількість завдань.







Последнее изменение этой страницы: 2017-02-06; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.232.38.214 (0.005 с.)