Cos'è un driver?
Un driver è un programma che consente la comunicazione tra un sistema operativo (OS) e un componente hardware o un'applicazione software. Ogni computer utilizza più driver per controllare i vari componenti e applicazioni hardware installati. Senza questi driver, l'hardware e il software non funzionerebbero correttamente e in alcuni casi potrebbero non essere in grado di funzionare affatto. Esistono due tipi principali di driver: driver di dispositivo e driver software.
I driver di periferica
Come suggerisce il nome, i driver di dispositivo sono progettati per comunicare tra un sistema operativo e un dispositivo. Queste unità vengono in genere create dalla stessa azienda che ha prodotto il dispositivo. Tuttavia, quando vengono creati da una terza parte, è progettato secondo uno standard hardware pubblicato.
Non tutti i driver di dispositivo comunicano direttamente con il dispositivo stesso. In alcuni casi, ci sono diversi driver stratificati in uno stack che consentono la comunicazione. I driver su ciascuna estremità comunicheranno direttamente con il dispositivo stesso o con il sistema operativo. Il driver di funzione comunica direttamente con il dispositivo. I driver intermedi manipolano la comunicazione in diversi formati che possono essere compresi dalla macchina. Questi sono chiamati driver di filtro.
Dispositivi comuni per i conducenti
La stragrande maggioranza dei dispositivi e del software che si connettono a una macchina richiede un driver per funzionare. Di seguito sono riportati alcuni dei dispositivi più comuni che richiedono driver:
- Dispositivi di archiviazione: HDD e SSD
- Stampanti
- Schede audio
- Adattatori video
- Fotocamere digitali
Driver software
A differenza dei driver di dispositivo, i driver software non sono associati ai dispositivi hardware. Questi programmi consentono la comunicazione tra il sistema operativo e le applicazioni software. Lo scopo principale dei driver software è abilitare o disabilitare l'accesso ai dati protetti che sono disponibili solo per i programmi in modalità kernel. Di conseguenza, i driver software vengono praticamente sempre eseguiti in modalità kernel.
Modalità kernel vs modalità utente
Sia i driver del dispositivo che quelli del software possono essere eseguiti sia in modalità kernel che in modalità utente. La modalità utente è l'opzione generica e viene utilizzata per eseguire la maggior parte delle comunicazioni. Ha anche il vantaggio di offrire una migliore stabilità rispetto alla modalità kernel.
Come affermato in precedenza, la modalità kernel viene utilizzata principalmente dai componenti del sistema operativo principale per accedere ai dati protetti. I driver in modalità kernel sono implementati come componenti modulari discreti con funzionalità ben definite. È anche preferito per applicazioni di rete a bassa latenza.
Driver di dispositivo virtuale
I driver di dispositivo virtuale sono una tecnologia relativamente nuova. Usano la tecnologia di virtualizzazione per emulare un dispositivo hardware in ambienti virtualizzati su reti ibride o cloud. Offrono ai sistemi operativi guest l'illusione di accedere all'hardware.