Sistema operativo e CPU sono concetti diversi. Sì, c'è una CPU, che è l'hardware chiave nel cuore della macchina. Recupera le istruzioni del firmware dalla memoria del firmware e le esegue. (Al giorno d'oggi è comune anche per piccoli sistemi avere più CPU per l'esecuzione parallela, tra l'altro; quindi è un po 'obsoleto parlare esclusivamente della CPU.)
Il firmware è un software che viene archiviato in una memoria non volatile (o forse anche di sola lettura). Poiché è in tale memoria, il firmware è disponibile all'accensione della macchina. La macchina potrebbe iniziare quasi immediatamente a eseguire il firmware quando è accesa, oppure un piccolo programma di avvio (esso stesso firmware) può estrarre il firmware più grande da un archivio elettronico come il flash e inserirlo nella RAM, quindi eseguirlo. L'utilizzo moderno della memoria flash in questi giorni è il motivo per cui a volte potresti sentire la frase "flashing del nuovo firmware", facendo riferimento a una procedura di aggiornamento. Il firmware non deve essere facilmente aggiornabile in questo modo. Potrebbe venire su un chip di circuito integrato, quindi l'aggiornamento di un dispositivo a un nuovo firmware potrebbe comportare la rimozione di un circuito integrato ("chip EPROM") da una presa e il collegamento di uno nuovo. BIOS PC ' s veniva aggiornato in questo modo e miriadi di altri dispositivi. Questo è davvero da dove viene la parola. Alcune persone erano a disagio nel chiamare un "software" di programma, se dovevano sostituire un chip o un circuito stampato per sostituirlo, che assomiglia più ad un aggiornamento hardware. Quindi è stato coniato il "firmware": qualcosa di "più difficile" da modificare rispetto al software.
Il firmware può essere un sistema operativo "completo". Ad esempio, Tomato è un firmware basato su Linux per router wireless:
http://www.polarcloud.com/tomato
Possiamo accedere a Tomato tramite ssh e ottenere un prompt di Linux. Quindi è un sistema operativo avanzato ed è un firmware. Ma se il router contenesse un disco rigido e se lo stesso sistema operativo dovesse essere caricato da quel disco all'avvio, non potrebbe più essere legittimamente chiamato firmware. Il firmware deve trovarsi in una memoria elettronica accessibile al processore immediatamente all'accensione, come memoria flash o chip EPROM.
Oggi molti dispositivi consumer hanno un firmware aggiornabile. Se hai una fotocamera digitale, ad esempio, dovresti trovare il suo sito Web e vedere se non è disponibile una versione del firmware più recente che risolva alcuni problemi che potrebbero essere presenti nel firmware installato in fabbrica. Oggi è facile aggiornare il firmware anche per utenti finali relativamente non tecnici. Il suddetto Tomato è un esempio di firmware open source di terze parti che sostituisce il firmware di fabbrica.
La parola "sistema operativo" si riferisce semplicemente a un programma di controllo che ha un certo grado di raffinatezza e completezza nella gestione delle risorse della macchina e nella fornitura di servizi di livello ragionevolmente elevato ai programmi: funzionalità come file system, protocolli di rete, gestione della memoria e dei processi, accesso di alto livello ai dispositivi, e forse qualche modello di utente e sicurezza. Non tutti questi devono essere presenti in un sistema operativo. Di solito la chiave, la memoria, la gestione dei processi e gli I / O. Se il programma di controllo consente l'esecuzione di altri programmi, conferendo a tali programmi un'identità attraverso la quale sono associati alle proprie risorse e se fornisce loro servizi per la gestione del processore e della memoria e per eseguire l'I / O, possiamo chiamare tale controllo programmare un sistema operativo.
Dato che sei curioso, potresti davvero divertirti con alcuni libri di testo sulle architetture dei computer, come quelli di William Stallings o di Hennesy e Patterson.