Cosa sono i device driver

Posted on

I device driver, o anche semplicemente driver, sono programmi che consentono ai dispositivi (device) di operare secondo le finalità per cui sono stati costruiti, facendo da “interprete”.

Le periferiche sono costruite e progettate da diverse aziende e hanno specificità differenti. Svolgono operazioni di varia natura, ma devono essere “comandate” con la giusta sequenza di ordini.

I programmi, dal canto loro, sono di solito implementati predisponendo il controllo delle periferiche usando un set di comandi standardizzato (o quasi).

Questi comandi devono essere successivamente tradotti per dare le corrette disposizioni su come eseguire le operazioni al device.

Cambiando sistema operativo, ad esempio, e mantenendo lo stesso device, nasce la necessità di cambiare driver, altrimenti, i comandi del nuovo software non verrebbero correttamente interpretati ed eseguiti.

E’ come il cambio di una automobile, facendo un esempio banale. Il motore (programma) deve essere accoppiato alle ruote per poter svolgere la sua funzione, ma non “sa” come fare se non attraverso un semplice assale. Il cambio (driver) trasforma la rotazione di questo assale (traduce) in un movimento collegabile alle ruote (device).

Questa catena consente di poter scrivere i programmi indipendentemente da come sono stati costruiti i device, senza necessariamente conoscerne le peculiarità, se non sommariamente. I driver si occuperanno poi di questa trasformazione, e in questa “catena di comando” svolgono un ruolo determinante.

Il codice del driver è fornito dal produttore del dispositivo. Essendo il costruttore di questo elemento ne conosce anche tutte le caratteristiche e sa come collegarlo al sistema operativo del computer.

Spesso si parla della necessità di aggiornare i driver del computer, delle periferiche, delle schede video o di quelle audio. Questo aggiornamento riveste una notevole importanza sul buon funzionamento del proprio PC. I programmi e i sistemi operativi subiscono aggiornamenti continui, talvolta cambiando il set di comandi da inviare alle periferiche. Nasce pertanto la necessità di effettuare anche l’aggiornamento dei driver dei vari dispositivi. Una eventuale trascuratezza comporterebbe un malfunzionamento del computer stesso o eventuali blocchi di sistema.

Il driver lavora nell’ombra. Non ce ne occupiamo quasi mai, se non quando viene espressamente richiesto dal sistema o quando comincia a verificarsi malfunzionamenti.

E’ presente in ogni dispositivo ed è responsabile del controllo degli elementi hardware. In sua assenza un programma non servirebbe a niente se non a livello teorico.

Come funziona

Il programma che richiede l’intervento del device crea una astrazione del suo funzionamento. Cioè non sa esattamente come funziona il dispositivo ma “immagina” come possa funzionare ma sa quello che può fare. Successivamente invia la richiesta ad una interfaccia, il cosiddetto controller, che ha il compito di memorizzare temporaneamente la richiesta. La necessità del controller deriva dal fatto che il controllo di una periferica è immediato attraverso i driver, ma nella maggior parte dei casi il sistema deve restare in attesa (stby) che altri processi completino le operazioni. Quando la tempistica lo consente il controller passa la richiesta al driver che esegue immediatamente l’operazione.

Insomma, Il controller altro non è che un’unità hardware collegata al bus I / O del computer che funge da intermediario ricevendo comandi dal sistema operativo. Il driver, invece, è un software specializzato nella esecuzione di questi comandi.

Facendo riferimento all’esempio dell’auto, il controller è simile alla scheda elettronica di un cambio automatico. Innesta un marcia superiore o inferiore quando la tempistica e le condizioni lo consentono, mantenendo in memoria l’operazione da eseguire e le condizioni necessarie per farlo.

Solitamente si usa il linguaggio macchina (quello binario per intenderci) come l’assembly, per creare il driver perché permette di produrre un software efficiente e veloce, contenendone le dimensioni.

La realizzazione di un driver richiede esperienza e la completa conoscenza del dispositivo. Ecco perché è sempre preferibile utilizzare quelli sviluppati dai produttori e non quelli di terze parti.

Tipi di driver

Considerando la molteplicità dei marchi e degli elementi hardware presenti in circolazione, fare una classificazione non è molto utile. Ditte differenti produrranno device differenti sia per funzionalità che per destinazione d’uso.

In generale, considerando strettamente il nostro computer, i driver più comunemente conosciuti sono quelli associati alle periferiche (mouse, stampante, webcam, ecc.), i driver di rete (Ethernet / LAN), quelli wireless, le porte USB, il chipset, il bios, driver audio e video.

Per scoprire come aggiornare i driver del tuo computer accedi a questa sezione.