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.

È 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

See also: Driver, Implementazione, Informatica, Interfaccia (informatica), Kernel, Kernel Linux, Kernel monolitico, Microkernel, ROM, Sistema operativo