Що таке драйвер в системі Windows 95, 98 і Me., Windows, Операційні системи, статті

Крупорніцкій Дмитро

Не лякайтеся трохи “дитячого” назви – я постараюся дуже коротко розглянути драйвера в Windows, щоб дати читачеві можливість зрозуміти – треба це йому для його програми, чи ні.

Перед роботою над драйвером, згадаємо, що таке пріоритет завдання на рівні процесора. Пріоритет завдання – це та кількість часу процесора, яке завдання може витратити на себе. Існує всього 4 пріоритети (вони ще називаються RING, і звичайно пишуться як RING0, RING1 …). Пріоритет з номером 0 (RING0) є найвищим і має всі права на процесор. Пріоритет з номером 3 – найменший, він має найменші права на процесор. Всі додатки в системі Windows спочатку мають пріоритет 3 – найнижчий. А от драйвера в системі мають пріоритет 0 – самий високий. Використання пріоритету 3 у звичайних програм проявляється в тому, що вони не можуть використовувати спеціальні “Привілейовані” інструкції процесора (HLT, OUT, IN …), на відміну від драйверів, які можуть змусити процесор такі інструкції виконувати.

Тепер давайте згадаємо про Віртуальну Машину (VMM – Virtual Machine Manager), але перш всього давайте розберемося, для чого вона потрібна.

На даний момент існує багато хороших програм, написаних під стару добру MSDOS. Але от біда – в Windows абсолютно інша система обробки викликів системи. Якщо в DOS програма сама викликала систему, то в Windows система сама викликає програму, посилаючи їй повідомлення.
Повідомлення разняться за своєю суттю і я не буду зупинятися на них – можете самі почитати про них в MSDN.

Так от – для кожної DOS і Windows програми при її завантаженні створюється така от VMM, яка потім і виконує команди, записані в РЕ файлі (Формат Windws) (іноді цю машину після завантаження називають також і Основна Системна Машина).

Що це за машина? – Просто фікція – плід праці програмістів.

Тепер розглянемо процес завантаження драйверів в пам’ять при старті:

  1. Після включення живлення, в пам’ять завантажується
    IO.SYS
  2. Виконаються AUTOEXEC.BAT і CONFIG.SYS
  3. Викликається WIN.COM
  4. WIN.COM завантажує Віртуальну машину – VMM32.VXD
  5. VMM32.VXD завантажує Віртуальну Машину в додаткову пам’ять через XMS драйвер.
  6. Ініціалізація машини та інших драйверів
  7. Машина перемикає систему в захищений режим і створює системну віртуальну машину.
  8. Потім Virtual Shell Device (пристрій віртуальної оболонки) вантажить саму графічну оболонку, шляхом виклику KERNL386.EXE
  9. А потім KERNL386.EXE вантажить все інше, що треба для системи.

 

Як ви могли помітити, VxD виконуються до завантаження основної системи, у зв’язку з цим у них найвищий пріоритет в системі.

Тепер розглянемо безпосередньо драйвер. VxD (замість х можна підставити перших букву пристрою драйвера) – це основна нитка, яка пов’язує вашу програму і пристрій. Різниця між VxD драйверами і SYS аналогами в тому, що VxD можуть працювати тільки в Windows 95, 98, Me середовищах, але не в NT, на відміну від SYS варіанту драйвера.

Хоч ім’я драйвера має в собі букву “Х”, що значить “якийсь пристрій”, але драйвер не зобов’язаний обробляти деякий пристрій. Ви можете розглядати драйвер просто як DLL бібліотеку, що виконуються на найвищому рівні пріоритету, з усіма витікаючими звідси наслідками. Майте увазі, що налагодження драйверів – справа невдячна ( J ), При неправильному варіанті програмування система просто “висне” (з особистого досвіду), причому обов’язково на самому цікавому місці (при завантаженні). Тому розбирайтеся зі всіма багами (Ну або намагайтеся хоч) “на березі”, до завантаження драйвера.

 

Існує 2 варіанти драйверів: статичні і динамічні. Різниця в них та ж, що і в бібліотеках: статичні знаходяться в пам’яті весь час, динамічні відвантажуються за мірі необхідності.

Ну ось в принципі і все, що можна сказати “ось так” з ходу і просто. Дуже багато, що залишилося несказаним, все просто не охопити. Але це вже справа цілої книги. Під кінець, давайте ще раз зазначимо, для чого потрібні драйвера в Windows:

  1. Виконання операцій з обладнанням
  2. Безпосередня робота з портами вводу-виводу
  3. Виконання “незвичайних” інструкцій процесора
  4. Контроль викликів певних функцій
  5. Тотальний контроль за системою

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*