Driver di periferica

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search

Un driver di periferica, in informatica, è un programma che gestisce o controlla un particolare tipo di dispositivo, connesso ad un computer[1].

Caratteristiche[modifica | modifica wikitesto]

Un driver di periferica consente a un dispositivo, per esempio una stampante, di comunicare con il sistema operativo, il bus del computer, o con il sottosistema di comunicazione a cui l'hardware è collegato. I driver sono dipendenti dall'hardware e dal sistema operativo specifico e forniscono abitualmente la gestione e la richiesta per qualsiasi interfaccia hardware dipendente dal tempo asincrono necessario [2].

Sviluppo[modifica | modifica wikitesto]

Programmare un driver di periferica richiede una comprensione approfondita di come funziona l'hardware e il software sul quale è installato uno specifico sistema operativo. I driver operano in un ambiente privilegiato per cui se mal programmati possono causare disastri. Al contrario, la maggior parte del software a livello utente installato sui moderni sistemi operativi può essere arrestato senza influenzare il resto del sistema. [3].

Il compito di programmare i driver di periferica è affidato a ingegneri informatici che lavorano per le aziende hardware di sviluppo. Inoltre, è nell'interesse del produttore hardware garantire che i loro clienti possono utilizzare il loro hardware in modo ottimale. Tipicamente, il driver di dispositivo logico (LDD) viene programmato dal produttore del sistema operativo, mentre il driver di un dispositivo fisico (PDD), per esempio una stampante, viene programmato dal fornitore del dispositivo: nel nostro esempio del costruttore della stampante. Ma negli ultimi anni sono stati programmati numerosi driver di periferica, soprattutto per interfeacciarsi con i sistemi operativi liberi e open source. In questi casi è importante che il produttore dell'hardware fornisca informazioni su come comunica il dispositivo, anche se queste informazioni possono essere dedotte dagli ingegneri, un'operazione comunque più complessa del reverse engineering applicata al software.

Microsoft ha tentato di ridurre l'instabilità dei propri sistemi operativi a causa di driver mal programmati, con la creazione di un nuovo quadro di riferimento per lo sviluppo di driver, chiamato driver Windows Foundation (WDF). Questo include lo User- Framework driver modalità (UMDF) che incoraggia lo sviluppo di alcuni tipi di driver, soprattutto quelli che implementano un protocollo basato su messaggi per comunicare con i loro dispositivi, come i driver in modalità utente. Tali driver se subiscono un malfunzionamento, non causano l'instabilità del sistema. Il Framework driver modalità kernel (KMDF) è un modello in grado di fornire lo sviluppo di driver di periferica in modalità kernel, ma i tentativi di fornire implementazioni standard di funzioni note come l'origine di diversi, tra cui la cancellazione di operazioni di I / O, non sono mai stati portati a termine.

Funzionamento[modifica | modifica wikitesto]

Un driver di periferica semplifica la programmazione, agendo da traduttore tra un dispositivo hardware e le applicazioni o i sistemi operativi che lo utilizzano[1]. I programmatori possono scrivere il codice dell'applicazione di livello superiore indipendentemente da qualunque hardware specifico l'utente finale sta usando. Strati fisici comunicano con le istanze dei dispositivi specifici. Ad esempio, una porta seriale ha bisogno di gestire protocolli di comunicazione standard come XON / XOFF comuni a tutti i componenti hardware della porta seriale. Questo sarebbe stato gestito da una porta seriale livello logico. Tuttavia, il livello fisico deve comunicare con un particolare chip di porta seriale la n° 16550 hardware UARTConvenzionalmente, le richieste del sistema operativo si interfacciano prima al livello logico . A sua volta, il livello logico invita il livello fisico a inviare le richieste del Sistema Operativo in termini comprensibili dall'hardware. Viceversa, quando un dispositivo hardware deve rispondere al sistema operativo, utilizza il livello fisico per comunicare con il livello logico.

In ambienti Linux, i programmatori possono sviluppare i driver di periferica, o come parti del kernel, o separatamente come moduli caricabili. Makedev include un elenco dei dispositivi in Linux: ttyS (terminale), LP (porta parallela), HD (disco), loop (dispositivo a disco di loopback), suono (questi includono mixer, sequencer, dsp, e audio)[4].

Il sistema di file e moduli Linux. Microsoft Windows. Contengono driver di periferica caricabili. Il vantaggio dei device driver caricabili è che possono essere caricati solo quando necessario e quindi scaricano, risparmiando così la memoria del kernel.

Note[modifica | modifica wikitesto]

  1. ^ a b What is a device driver?, The purpose of device drivers, PC Gesund. URL consultato l'8 novembre 2012 (archiviato dall'url originale il 21 ottobre 2014).
  2. ^ EMC Education Services, Information Storage and Management: Storing, Managing, and Protecting Digital Information, John Wiley & Sons, 2010.
  3. ^ Burke, Timothy, Writing device drivers: tutorial and reference, Digital Press, 1995.
  4. ^ MAKEDEV — Linux Command — Unix Command, Linux.about.com, 11 settembre 2009. URL consultato il 17 settembre 2009.

Voci correlate[modifica | modifica wikitesto]

Informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica