OS y 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 ejecuta. (En la actualidad, es común que incluso los sistemas pequeños tengan varias CPU para ejecución paralela, por cierto; por lo tanto, es un poco anticuado hablar exclusivamente sobre la CPU).
Firmware es un software que se almacena en una memoria no volátil (o incluso de solo lectura). Debido a que se encuentra en dicha memoria, el firmware está disponible cuando la máquina está encendida. La máquina puede comenzar casi inmediatamente a ejecutar el firmware cuando está encendida, o algún pequeño programa de arranque (el propio 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 "actualización del nuevo firmware", refiriéndose 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 la actualización de un dispositivo a un nuevo firmware puede implicar la eliminación de un circuito integrado ("chip EPROM") de un zócalo y la conexión de uno nuevo. Los BIOS de PC solían actualizarse de esta manera, y miles de otros dispositivos. Aquí es realmente de donde viene la palabra. Algunas personas se sentían incómodas al llamar a un programa "software", si tenían que cambiar un chip o una placa de circuito para reemplazarlo, lo que se parece más a una actualización de hardware. Por lo tanto, 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:
enlace
Podemos iniciar sesión en Tomato a través de ssh y obtener un aviso de Linux. Así que 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 en el inicio, ya no podría llamarse legítimamente firmware. El firmware debe estar en un almacenamiento electrónico al que pueda acceder el procesador inmediatamente después del encendido, 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 una versión de firmware más reciente no está disponible, lo que soluciona algunos problemas que pueden estar presentes en el firmware instalado de fábrica. Es fácil actualizar el firmware en la actualidad incluso para usuarios finales relativamente no técnicos. El Tomate mencionado anteriormente es un ejemplo de firmware de código abierto de terceros que reemplaza al 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 en la prestación de servicios a programas de nivel razonablemente alto: características como sistemas de archivos, protocolos de red, memoria y Gestión de procesos, acceso de alto nivel a dispositivos y quizás algún modelo de usuario, así como seguridad. No todos estos tienen que 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, otorgarles a esos programas una identidad a través de la cual están asociados con sus propios recursos, y si les brinda servicios para administrar el procesador y la memoria, y para hacer E / S, podemos llamar a ese control programa un sistema operativo.
Ya que tienes curiosidad, es posible que realmente disfrutes de algunos libros de texto sobre arquitecturas de computadoras, como los de William Stallings, o de Hennesy y Patterson.