Драйвер: Разлика между версии

Изтрито е съдържание Добавено е съдържание
м →‎Предназначение: коригирана връзка
Етикет: Визуален редактор с уикитекст
м Общи промени
Ред 7:
Драйверът обикновено комуникира с периферните устройства чрез [[Шина (компютри)|шина]] или комуникационна подсистема, с която е свързан хардуерът. Когато програма извика [[подпрограма|функция]] на драйвера, той дава команди на устройството. След като устройството му отговори, драйверът може да извика функции на първоначалната програма. Драйверите са зависими от хардуера и специфични за [[операционна система|операционната система]]. Те обикновено се грижат за обработката на [[прекъсване|прекъсванията]], необходима за работа с асинхронни времезависими хардуерни интерфейси.
 
== Предназначение ==
Основното предназначение на драйверите е да опростят програмирането, действайки като преводач между хардуерното устройство и приложните програми или операционната система, които го използват. Програмистите могат да пишат приложения от високо ниво, без да се съобразяват с това на какъв хардуер ще ги пуска потребителят.
 
Например програма от високо ниво за комуникация през [[Хардуерен порт#Сериен (последователен) порт|сериен порт]] може да има просто две функции „изпращане на данни“ и „получаване на данни“. На по-ниско ниво, драйверът, реализиращ тези функции, трябва да комуникира с конкретния контролер за сериен порт, инсталиран в компютъра на потребителя. Командите, необходими за работа с контролер [[16550 UART]], са много различни от тези за работа с конвертор на сериен порт [[FTDI]], но драйверите за съответния вид хардуер скриват тези подробности, предоставяйки еднакъв (или поне сходен) софтуерен интерфейс към приложните програми.
 
== Разработка ==
Писането на драйвер изисква добро разбиране на хардуера и софтуера на съответната платформа. Тъй като драйверите изискват достъп на ниско ниво до функционалността на хардуера, те работят във високо привилигерована среда и при възникване на непредвидени ситуации могат да предизвикат проблеми в операционната система. Обратно, повечето софтуер, който работи на ниво потребител в съвременните операционни системи, може да бъде спрян, без да повлияе особено върху останалата част от системата. Дори драйвери, изпълняващи се в потребителски режим, могат да сринат системата, ако устройството е програмирано неправилно. Тези фактори затрудняват диагностицирането на проблеми.