Driver
In informatica, è detto driver il codice che permette ad un sistema operativo di pilotare un dispositivo hardware. Il driver permette al sistema operativo di utilizzare l'hardware senza sapere come esso funzioni, ma dialogandoci attraverso un'interfaccia standard che astrae dall'implementazione dell'hardware e che ne considera solo il funzionamento logico. In questo modo hardware diverso costruito da produttori diversi può essere utilizzato in modo intercambiabile.
Ne consegue che un driver è specifico sia dal punto di vista dell'hardware che pilota, sia dal punto di vista del sistema operativo per cui è scritto. Non è possibile utilizzare driver scritti per un sistema operativo su uno differente, perché l'interfaccia è generalmente diversa.
Il driver è scritto solitamente dal produttore del dispositivo hardware, dato che è necessaria un'approfondita conoscienza dell'hardware per poter scrivere un driver funzionante. A volte, i driver vengono scritti da terze parti sulla base della documentazione tecnica rilasciata dal produttore, se questa è disponibile.
Esistono driver di molti tipi, a secondo del tipo di hardware che devono pilotare e soprattutto del sistema operativo su cui devono girare.
- Nei sistemi embedded, in cui tutto il software è un unico programma compilato e caricato in ROM, il driver non è altro che una routine del programma che si interfaccia con l'hardware da pilotare.
- In maniera analoga, nei sistemi operativi con kernel monolitico, il driver è un modulo compilato insieme al kernel. Pertanto, non è possibile aggiungere una periferica nuova senza ricompilare il kernel.
- Nei sistemi operativi a microkernel, il driver è un file binario che viene caricato dinamicamente dal kernel. In questo caso è possibile aggiungere una nuova periferica e il kernel dovrà semplicemente caricare il file del driver opportuno.
È interessante notare come i driver siano anche responsabili della diffusione dei sistemi operativi: se per un sistema operativo, anche eccellente, i produttori hardware non rilasciano gli opportuni driver, questo sistema operativo avrà poco pubblico perché molto hardware non funzionerà. La situazione è aggravata quando i produttori dell'hardware non rilasciano le specifiche dei prodotti, e quindi nessuno è in grado di sviluppare il driver in questione. La comunità informatica ha spesso dovuto ovviare a questo inconveniente con la tecnica del reverse engineering dei driver Windows per supportare hardware che altrimenti sarebbero stati inutilizzabili con il kernel Linux e con gli altri sistemi operativi liberi. Categoria:Sistema operativo
