Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Un driver è un componente software che consente al sistema operativo e a un dispositivo di comunicare. Ad esempio, quando un'app deve leggere i dati da un dispositivo, chiama una funzione implementata dal sistema operativo. Il sistema operativo chiama quindi una funzione implementata dal driver. Il driver, in genere sviluppato dal produttore del dispositivo, sa come comunicare con l'hardware del dispositivo per ottenere i dati. Quando il driver ottiene i dati, lo restituisce al sistema operativo, che quindi lo restituisce all'app.
Espansione della definizione
Questa spiegazione semplifica il concetto di driver. Ecco alcuni altri punti da considerare:
Il produttore del dispositivo non sviluppa sempre il driver. Se un dispositivo segue uno standard hardware pubblicato, Microsoft può scrivere il driver, quindi il progettista del dispositivo non deve fornirne uno.
Non tutti i driver comunicano direttamente con un dispositivo. Spesso, diversi driver stratificati in uno stack di driver partecipano a una richiesta di I/O.
Il modo convenzionale per visualizzare lo stack è con il primo partecipante nella parte superiore e l'ultimo partecipante nella parte inferiore, come illustrato in questo diagramma. Alcuni driver nello stack modificano la richiesta da un formato a un altro. Questi driver non comunicano direttamente con il dispositivo. Modificano invece la richiesta e lo passano ai driver inferiori nello stack.
driver della funzione: il driver che comunica direttamente con il dispositivo è chiamato driver della funzione .
Driver di filtro: i driver che eseguono l'elaborazione ausiliaria vengono chiamati driver di filtro .
Per altre informazioni, vedere Stack di driver.
Alcuni driver di filtro osservano e registrano informazioni sulle operazioni di I/O, ma non vi prendono parte. Ad esempio, alcuni driver di filtro fungono da verificatori per assicurarsi che gli altri driver nello stack gestiscono correttamente la richiesta di I/O.
Per perfezionare la definizione, un driver è qualsiasi componente software che osserva o partecipa alla comunicazione tra il sistema operativo e un dispositivo.
Software dei driver
Questa definizione espansa è più accurata, ma è ancora incompleta. Alcuni driver non sono associati ad alcun dispositivo hardware.
Se è necessario scrivere uno strumento che accede alle strutture di dati principali del sistema operativo, è possibile suddividere lo strumento in due componenti. Il primo componente viene eseguito in modalità utente e presenta l'interfaccia utente. Il secondo componente viene eseguito in modalità kernel e accede ai dati principali del sistema operativo. Il componente eseguito in modalità utente è denominato applicazione. Il componente eseguito in modalità kernel è denominato driver software. Un driver software non è associato a un dispositivo hardware.
Questo diagramma illustra un'applicazione in modalità utente che comunica con un driver software in modalità kernel.
I driver software vengono sempre eseguiti in modalità kernel. Vengono scritti principalmente per accedere ai dati protetti disponibili solo in modalità kernel. Non tutti i driver di dispositivo devono accedere ai dati e alle risorse in modalità kernel, quindi alcuni driver di dispositivo vengono eseguiti in modalità utente.
Per altre informazioni sulle modalità del processore, vedere Modalità utente e modalità kernel.
Conducenti di autobus
Un altro tipo di conducente è l'autista del bus . Per comprendere i driver del bus, è necessario comprendere i nodi del dispositivo e l'albero dei dispositivi.
Per informazioni sugli alberi dei dispositivi, i nodi del dispositivo e i driver del bus, vedere Nodi del dispositivo e stack di dispositivi.
Altre informazioni sui driver di funzione
La spiegazione finora semplifica il concetto di function driver. Fino a questo punto, la spiegazione indica che il driver funzionale è il driver che comunica direttamente con il dispositivo. Questa istruzione è vera per un dispositivo che si connette direttamente al bus PCI (Peripheral Component Interconnect). Il driver di funzione per un dispositivo PCI ottiene gli indirizzi mappati alle risorse di porta e memoria nel dispositivo. Il driver di funzione comunica direttamente con il dispositivo scrivendo in tali indirizzi.
In molti casi, un dispositivo non si connette direttamente al bus PCI. Al contrario, il dispositivo si connette a una scheda bus host connessa al bus PCI. Ad esempio, un tostapane USB si connette a un host bus adapter, chiamato controller host USB. Il controller è connesso al bus PCI. Il tostapane USB ha un driver di funzione e il controller host USB ha anche un driver di funzione.
Il driver di funzione per il tostapane comunica indirettamente con il tostapane inviando una richiesta al driver di funzione per il controller host USB. Il driver di funzione per il controller host USB comunica quindi direttamente con l'hardware del controller host USB, che comunica con il tostapane.
.