El sistema operativo y la CPU son conceptos diferentes. Sí, hay una CPU, que es la pieza clave de hardware en el corazón de la máquina. Obtiene las instrucciones del firmware de la memoria del firmware y las lleva a cabo. (Hoy en día es común que incluso los sistemas pequeños tengan múltiples CPU para ejecución paralela, por cierto; por lo tanto, es algo anticuado hablar exclusivamente sobre la CPU).
El firmware es un software que se almacena en una memoria no volátil (o tal vez incluso de solo lectura). Debido a que está en dicha memoria, el firmware está disponible cuando se enciende la máquina. La máquina puede comenzar a ejecutar el firmware casi de inmediato cuando se enciende, o algún pequeño programa de arranque (en sí mismo el firmware) puede extraer el firmware más grande de algún almacenamiento electrónico como flash y ponerlo en la RAM, y luego ejecutarlo. El uso moderno del almacenamiento flash en estos días es la razón por la que a veces puede escuchar la frase "flashear el nuevo firmware", que se refiere a un procedimiento de actualización. El firmware no tiene que ser fácilmente actualizable de esta manera. Puede venir en un chip de circuito integrado, por lo que actualizar un dispositivo a un nuevo firmware puede implicar quitar un circuito integrado ("chip EPROM") de un zócalo y enchufar uno nuevo. BIOS de PC ' s solía actualizarse de esta manera y miles de otros dispositivos. Esto es realmente de donde viene la palabra. Algunas personas se sentían incómodas al llamar a un programa "software", si tuvieran que cambiar un chip o placa de circuito para reemplazarlo, lo que se parece más a una actualización de hardware. Por eso se acuñó el "firmware": algo "más difícil" de cambiar que el software.
El firmware puede ser un sistema operativo "completo". Por ejemplo, Tomato es un firmware basado en Linux para enrutadores inalámbricos:
http://www.polarcloud.com/tomato
Podemos iniciar sesión en Tomato a través de ssh y obtener un mensaje de Linux. Por lo tanto, es un sistema operativo avanzado y es firmware. Pero si el enrutador tenía un disco duro y si el mismo sistema operativo tenía que cargarse desde ese disco al inicio, ya no podría llamarse legítimamente firmware. El firmware debe estar en un almacenamiento electrónico al que el procesador pueda acceder inmediatamente al encenderlo, como la memoria flash o los chips EPROM.
Muchos dispositivos de consumo hoy en día tienen firmware actualizable. Si tiene una cámara digital, por ejemplo, debe encontrar su sitio web y ver si no hay una versión de firmware más nueva que solucione algunos problemas que pueden estar presentes en el firmware instalado de fábrica. Hoy en día es fácil actualizar el firmware incluso para usuarios finales relativamente no técnicos. El Tomato mencionado anteriormente es un ejemplo de firmware de código abierto de terceros que reemplaza el firmware de fábrica.
La palabra "sistema operativo" simplemente se refiere a un programa de control que tiene un cierto grado de sofisticación e integridad en la administración de los recursos de la máquina y proporciona servicios de nivel razonablemente alto a los programas: características como sistemas de archivos, protocolos de red, administración de memoria y procesos, Acceso de alto nivel a dispositivos, y tal vez algún modelo de usuario, así como seguridad. No todos estos deben estar presentes en un sistema operativo. Por lo general, la memoria, la gestión de procesos y la E / S son la clave. Si el programa de control permite que otros programas se ejecuten, dándoles a esos programas una identidad a través de la cual están asociados con sus propios recursos, y si les proporciona servicios para administrar el procesador y la memoria, y hacer E / S, podemos llamar a ese control programar un sistema operativo
Como tienes curiosidad, es posible que realmente disfrutes de algunos libros de texto sobre arquitecturas informáticas, como los de William Stallings o Hennesy y Patterson.