Спочатку потрібно визначити, що таке водій. Я визначу це як програму або підпрограму, яка керує пристроєм (наприклад, вашою камерою) або підсистемою (як файлова система). Незалежно від того, чи це буде це безпосередньо через системну програму або через сервери ядра чи процеси користування наземним користувачем, це не має головного значення для цього, по суті, семантичного питання.
У деяких випадках Linux надає лише загальний протокол, записаний у програмному забезпеченні, де фактичним "драйвером" є дерево пристроїв. Це конфігурація апаратних параметрів і яке програмне забезпечення використовувати для створення драйвера.
Взагалі інтерфейси і протоколи драйверів реалізуються за допомогою модулів ядра, які завантажуються у міру необхідності, визначених деревами пристроїв або правилами udev. Модуль ядра не є в найсуворішому сенсі процесом чи бібліотекою.
Бібліотека - це лише статичний набір коду, який можна завантажити в будь-який процес. Сучасні операційні системи завантажують ці бібліотеки у спільну пам'ять. Процес може сам посилатися на будь-яку кількість спільних бібліотек.
Процес - це запущена програма, в якій системна програма або ядро виділили такі ресурси, як системна пам'ять і час процесора. Модулі ядра можуть або не можуть слідувати цій схемі самі, але незалежно не розглядаються як дефактотні процеси в Linux.
Отже, щоб відповісти на ваше запитання, драйвер не повинен бути обробленим, але він може бути. Незважаючи на те, що код може існувати в бібліотеці, драйвер все ще завантажується в пам'ять через програму, будь то ядро у вигляді модулів ядра або процесів у користуванні.
Це стає більшою мірою смисловим аргументом, коли ми розглядаємо, яка насправді водій. Ви можете сказати, що драйвер - це завжди програма, але іноді це не так, як у випадку дерев пристроїв, а також насправді це може бути процес користувача, файл дерева пристроїв, правила udev та модуль ядра, де обидва процес і модуль використовують бібліотеки для складання логіка водія.