Risposte:
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.
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.
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.
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.
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.
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 drivers
tag 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 firmware
tag è 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 firmware
fosse installato direttamente sul chip o sulla scheda e vivesse lì, motivo per cui deve essere "flashizzato", mentre si installerebbe un driver
sistema operativo.
Conclusione:
Firmware
consente all'hardware di "fare" cose e drivers
consente al software di interagire con l'hardware.