# Факти | Як працює драйвер?
За допомогою програм-драйверів операційна система віддає свої розпорядження апаратним пристроям. Адже вона не тільки пам'яттю управляє , А й усім різноманіттям девайсів комп'ютера. Функцією більшості драйверів є переклад з мов програмування високого рівня на «мову» електричних сигналів. Мови високого рівня є рідними для операційної системи і додатків. А ось обладнання звикло мати справу з електричними сигналами. Драйвери отримують від операційної системи дані і переводять їх в потоки бітів, що розміщуються в спеціальних ділянках пам'яті накопичувачів або в серії лазерних імпульсів, якщо мова йде про принтері.
Апаратні пристрої дуже сильно відрізняються один від одного, тому кожному з них потрібен свій драйвер- «перекладач». Більшість драйверів завантажуються тоді, коли виникає потреба в пов'язаному з даними драйвером пристрої. Драйвер функціонує, як і будь-який інший процес, запущений в операційній системі. В процесі роботи драйвера, операційна система буде досить часто направляти йому блоки даних з високим рівнем пріоритету. Таким чином, апаратний пристрій виконає свою роботу настільки швидко, наскільки це можливо в даній конфігурації.
Багато користувачів не в захваті від того, що багато драйвери не входять до складу операційної системи. У такого підходу є свої причини. Справа в тому, що в драйвери часто вносяться зміни. Якби вони були «прошиті» в ОС, кожна зміна драйвера вимагало б модифікації і перекомпіляції всієї операційної системи в цілому. Крім того, розробка драйверів лежить, в основному, на творців обладнання, а не на розробників операційної системи. Це досить логічно, оскільки тільки ті, хто працював над самим пристроєм, можуть в повній мірі знати про його особливості.
Управління введенням і виведенням в значній мірі складається в управлінні чергами і буферами, а також спеціальними ділянками накопичувача даних. Операційна система приймає від пристрою (наприклад, клавіатури або серійного порту) набір бітів, утримує ці дані і направляє їх процесору в зрозумілому для нього вигляді. Ця функція набуває особливого значення в світлі того, що одночасно працює багато процесів, що вимагають дорогоцінного часу процесора.
Розподіляє час процесора операційна система дає буферу інструкцію продовжувати прийом даних від пристрою введення, але сама зупиняє їх передачу центрального процесора на той час, протягом якого пристрій введення перебуває в режимі очікування. Коли відбувається введення, пов'язаний з пристроєм процес переходить в активний стан, і операційна система дає буферу команду на передачу даних. Такий підхід дозволяє пристрою введення (наприклад, клавіатурі або модему) працювати швидко, навіть беручи до уваги ту обставину, що процесор не в кожен момент часу отримує дані з цього джерела.
Управління всіма апаратними ресурсами комп'ютера є значною частиною роботи, що виконується операційною системою. Якщо мова йде про операційну систему реального часу, трапляється і так, що потрібно обробляти всю доступну функціональність системи. Інші операційні системи починають роботу з драйвером пристрою лише в тому випадку, коли воно необхідне. Про те, якими бувають операційні системи ми вже говорили.
Продовження розповіді про операційні системи слід ...
За матеріалами computer.howstuffworks.com