Alcune risposte ragionevoli già. Christopher Hall dà una risposta basata su un PC, che è ragionevole perché è dove la differenza si trova più comunemente. Gheorge Rider dà una risposta che è vicina, ma non del tutto corretta.
Ho creato firmware per oltre 30 anni, quindi ho pensato che avrei fatto meglio a mettere le cose in chiaro.
Prima di tutto, un po' di terminologia:
Hardware si riferisce ai pezzi fisici di silicio, metallo e materiale isolante che compongono i bit che si possono toccare in un dispositivo.
Software si riferisce all'insieme di istruzioni di programma che girano su una CPU nel dispositivo. Potrebbe essere memorizzato su supporti rotanti (un classico disco), silicio, nastro o anche carta (ai vecchi tempi il software veniva creato usando schede perforate). È generalmente facile da cambiare.
Firmware si riferisce a una classe speciale di software che svolge una funzione specifica. Di solito è un po' più complicato da cambiare rispetto al software normale, spesso comporta procedure speciali. Il firmware è solitamente memorizzato nel silicio (generalmente la memoria FLASH al giorno d'oggi, ma ho usato altri tipi di memoria per il firmware in passato). È generalmente usato per un dispositivo che fa solo una funzione, o una gamma molto limitata di funzioni. Christopher dà un sacco di buoni esempi di firmware che si trovano comunemente in un PC. Oltre a questi, il tuo monitor di solito ha un firmware incorporato. Anche il tuo modem e/o il tuo router hanno un firmware che spesso può essere aggiornato.
Quindi un aggiornamento del software di solito implica semplicemente scaricare un pezzo di codice aggiornato ed eseguirlo, o cliccare con il tasto destro e selezionare "Installa". Un aggiornamento del firmware su un PC comporta l'ottenimento di un file binario e possibilmente l'esecuzione di un pezzo speciale di codice per caricare quel file binario. A volte quel pezzo di codice è già incorporato nel firmware esistente (questo è comune in un modem o router, dove spesso usano un'interfaccia web per farlo). Alcuni aggiornamenti del firmware - in effetti la maggior parte degli aggiornamenti del firmware che ho fatto nella mia carriera - richiedono un hardware speciale (come un'interfaccia JTAG) e un software che lo guidi per connettersi al firmware e scaricare un aggiornamento.
Definizione bonus:
Wetware è la roba che succede tra la tastiera e la sedia.