Differenza e relazione tra firmware e driver del dispositivo


27
  1. In che modo firmware e driver di dispositivo sono diversi e correlati? Penso che entrambi i dispositivi di controllo?
  2. Il firmware si avvia sempre automaticamente, mentre il driver deve essere eseguito / avviato dal sistema operativo?

Risposte:


24
  1. Il firmware è il software che viene eseguito sul dispositivo. Un driver è il software che indica al sistema operativo come comunicare con il dispositivo. Non tutti i dispositivi dispongono di firmware, solo dispositivi con un certo livello di intelligenza.

  2. Non sono esattamente sicuro di cosa intendi ... in generale, il firmware non ha nulla a che fare con "l'avvio" ... Penso che forse quello che stai chiedendo sia, i dispositivi con firmware hanno sempre il firmware installato sul dispositivo, o viene caricato dopo l'avvio. Se è quello che stai chiedendo, la risposta è no ...

Più comunemente, i dispositivi con firmware hanno il firmware programmato nel dispositivo (o con un chip ROM o un chip ROM programmabile), ma ci sono alcuni dispositivi in ​​cui il firmware viene caricato nel dispositivo al momento dell'inizializzazione. Posso pensare ad alcune schede di rete e webcam che funzionano in questo modo, ma sono sicuro che ce ne sono anche altre.


Grazie! in 2, con l'avvio automatico, intendo che se il firmware viene eseguito da solo non da altri, mentre il driver viene eseguito dal sistema operativo non da solo? Ho preso la parola auto-boot da "Senza un sistema operativo, un utente non può eseguire un programma applicativo sul proprio computer, a meno che il programma applicativo non si avvii automaticamente" in en.wikipedia.org/wiki/Operating_system
Tim

1
Il firmware è gestito dal dispositivo hardware stesso ... Penso che risponda alla domanda? Considera questo: molti dispositivi non computer dispongono di "firmware", come fotocamere digitali, lettori DVD, telefoni cellulari, ecc. Quindi, ovviamente, in questi casi, il firmware è completamente autonomo nel dispositivo stesso. Solo se / quando si collega uno di questi dispositivi al computer è necessario un driver .
Flimzy,

1
Grazie! Da en.wikipedia.org/wiki/Computer_software : "Il firmware è un software di basso livello spesso archiviato su dispositivi di memoria programmabili elettricamente. Il firmware prende il nome perché è trattato come hardware ed eseguito (" eseguito ") da altri programmi software." Il firmware è gestito da altri programmi software o dall'hardware stesso?
Tim

-1 perché dici only devices with some level of intelligence have firmware? Direi che è il contrario, i dispositivi semplici (elettronici) potrebbero non avere sistemi operativi ma hanno un firmware.
Celeritas,

@Celeritas: Perché solo i dispositivi con un certo livello di intelligenza hanno un firmware, al contrario di quelli (come una porta RS-232) che non lo hanno. Se stai confrontando dispositivi che hanno un intero sistema operativo (telefono cellulare, iPod, GPS programmabile, ecc.), Stai parlando di un livello di astrazione completamente diverso, che in realtà non ha nulla a che fare con i "driver di dispositivo" in senso tradizionale. Questa classe di software di accesso viene spesso chiamata "driver di dispositivo", ma in realtà è un protocollo di applicazione di rete implementato sopra un driver di dispositivo (come quello che comunica con una porta USB o bluetooth).
Flimzy,

5

Il firmware implementa dettagli di basso livello richiesti per il funzionamento dell'hardware e fornisce un'API / ABI a un livello superiore. Un driver di dispositivo fornisce un adattatore tra il sistema operativo e l'API / ABI esposto dal firmware.


1
Grazie! Il driver di dispositivo fa parte del sistema operativo ed è eseguito dal kernel del sistema operativo? Il firmware fa parte del dispositivo ed è gestito da quale, il kernel del sistema operativo o il firmware stesso?
Tim

1
Il driver del dispositivo è considerato parte del sistema operativo e di solito viene eseguito sulla CPU host. Il firmware è generalmente gestito dal dispositivo; tuttavia può essere caricato sul dispositivo dal sistema operativo.
Ignacio Vazquez-Abrams,

Questa dovrebbe essere la risposta accettata.
Eric Wang,

4

La moderna definizione o l'uso comune del firmware non ha nulla a che fare con una specifica funzionalità software. Il firmware è semplicemente un software archiviato in chip di memoria a semiconduttore non volatile (ad esempio PROM, EEPROM o flash) anziché in un dispositivo di archiviazione di massa come un disco rigido. Il software memorizzato potrebbe essere un binario collegato monolitico o costituito da caricatore, kernel e moduli applicativi. (OTOH ho visto alcune schede di sintonizzazione TV per PC che richiedono il caricamento di "firmware" dal kernel Linux per completare l'inizializzazione.)

L'origine del termine ha a che fare con la logica controllata dal processore rispetto alla logica cablata. Il software memorizzato su hard disk potrebbe essere facilmente modificato e aggiornato. Revisioni e aggiornamenti della scheda hardware cablata richiesta riprogettazione e sostituzione del modulo. La via di mezzo era un processore che eseguiva software per controllare l'hardware. Il software è stato chiamato ferma ware per riflettere la via di mezzo tra morbido ware contro dura logica cablata. Originariamente il firmware era archiviato in chip ROM, PROM o EPROM per mantenere la modularità della scheda. L'avanzamento di EEPROM e chip flash ha consentito aggiornamenti in-circuit e on-board del firmware.

Man mano che i processori (e le periferiche) diventavano più piccoli, più economici e meno affamati di energia, le possibilità di incorporarli in ogni tipo di dispositivo / apparecchio si espandevano. Al fine di rendere il software per il funzionamento di questi dispositivi robusto e sicuro, il software è archiviato in chip di memoria flash anziché in un disco rigido; rende anche il dispositivo più piccolo e molto più economico. Il termine firmware è stato ampliato per includere tutto il software in dispositivi / dispositivi con processori incorporati, anche se alcune parti del codice memorizzato potrebbero non avere alcuna relazione con la sostituzione della logica cablata.


Quindi cosa significa installare il firmware su un archivio di grandi dimensioni? Ti piace questo pacchetto Debian ?
xuhdev,

1
@xuhdev - Quel pacchetto Debian è costituito da file che possono essere usati da vari driver di dispositivo Linux. I file vengono definiti "firmware" poiché vengono scritti sul dispositivo collegato dal driver Linux. I file possono contenere dati operativi o codice per l'uC / uP incorporato del dispositivo. Si noti che questo file trasferito al dispositivo viene caricato nella memoria volatile del dispositivo e il caricamento deve avvenire dopo ogni ripristino del dispositivo o del sistema. L ' "installazione" di questo "firmware" sulla memoria di massa dell'host è semplicemente un meccanismo procedurale (ovvero la gestione dei pacchetti).
segatura,

3

Qualcuno ha pubblicato questa domanda di recente , dicendo:

Il firmware è una combinazione di memoria persistente, codice del programma e dati memorizzati al suo interno. Esempi tipici di dispositivi contenenti firmware sono sistemi integrati come semafori, apparecchi di consumo, orologi digitali, computer, periferiche per computer, telefoni cellulari e fotocamere digitali. Il firmware contenuto in questi dispositivi fornisce il programma di controllo per il dispositivo.

In effetti, il driverstag di SuperUser è definito:

Un driver, chiamato anche driver di dispositivo o driver software, è un software che consente ai programmi per computer di livello superiore di interagire con un dispositivo hardware. Quando un programma per computer richiede l'interazione con un determinato dispositivo hardware, il driver gestirà le istruzioni e tradurrà l'output tra il dispositivo e il programma per computer che invoca il driver.

e, il firmwaretag è definito:

In generale, la differenza tra software e firmware è il livello in cui interagisce con l'hardware. Il firmware interagisce a un livello molto basso dell'hardware mentre il software interagisce a livelli elevati. Il firmware generalmente controlla i tempi, i controlli e le funzionalità di base dell'hardware.

Inizialmente pensavo che firmwarefosse installato direttamente sul chip o sulla scheda e vivesse lì, motivo per cui deve essere "flashizzato", mentre si installerebbe un driversistema operativo.

Conclusione:

Firmwareconsente all'hardware di "fare" cose e driversconsente al software di interagire con l'hardware.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.