Respuestas:
El firmware es el software que se ejecuta en el dispositivo. Un controlador es el software que le dice a su sistema operativo cómo comunicarse con el dispositivo. No todos los dispositivos tienen firmware, solo dispositivos con cierto nivel de inteligencia.
No estoy exactamente seguro de lo que quieres decir ... en general, el firmware no tiene nada que ver con el "arranque" ... Creo que quizás lo que estás preguntando es, ¿los dispositivos con firmware siempre tienen el firmware instalado en el dispositivo, o se carga después del tiempo de arranque. Si eso es lo que estás preguntando, la respuesta es no ...
Con mayor frecuencia, los dispositivos con firmware tienen el firmware programado en el dispositivo (ya sea con un chip ROM o un chip ROM programable), pero hay algunos dispositivos en los que el firmware se carga en el dispositivo en el momento de la inicialización. Puedo pensar en algunas tarjetas de red y cámaras web que funcionan de esta manera, pero estoy seguro de que también hay otras.
only devices with some level of intelligence have firmware
? Yo diría que es al revés, los dispositivos simples (electrónicos) pueden no tener sistemas operativos pero sí tienen firmware.
El firmware implementa detalles de bajo nivel que se requieren para operar el hardware y proporciona una API / ABI a un nivel superior. Un controlador de dispositivo proporciona un adaptador entre el sistema operativo y la API / ABI expuesto por el firmware.
La definición moderna o el uso común del firmware no tiene nada que ver con una funcionalidad de software específica. El firmware es simplemente un software que se almacena en chips de memoria de semiconductores no volátiles (por ejemplo, PROM, EEPROM o flash) en lugar de un dispositivo de almacenamiento masivo como un disco duro. El software almacenado podría ser un binario vinculado monolítico o consistir en un cargador, un núcleo y módulos de aplicación. (OTOH He visto algunas tarjetas sintonizadoras de TV para PC que requieren la carga de "firmware" por parte del kernel de Linux para completar la inicialización).
El origen del término tiene que ver con la lógica controlada por el procesador versus la lógica cableada. El software almacenado en discos duros podría modificarse y actualizarse fácilmente. Las revisiones y actualizaciones a la lógica cableada requirieron el rediseño y reemplazo de la placa o módulo. El término medio era un procesador que ejecutaba software para controlar el hardware. El software se llama firma de cerámica para reflejar el término medio entre suave cerámica frente dura lógica cableada. Originalmente, el firmware se almacenaba en chips ROM, PROM o EPROM para mantener la modularidad de la placa. El avance de EEPROM y chips flash permitió actualizaciones en el circuito y en placa del firmware.
A medida que los procesadores (y periféricos) se volvieron más pequeños, más baratos y menos hambrientos de energía, las posibilidades de integrarlos en cada tipo de dispositivo / dispositivo se expandieron. Para hacer que el software para operar estos dispositivos sea resistente y seguro, el software se almacena en chips de memoria flash en lugar de en un disco duro; También hace que el dispositivo sea más pequeño y mucho más barato. El término firmware se ha ampliado para abarcar todo el software en dispositivos / dispositivos con procesadores integrados, aunque algunas partes del código almacenado podrían no tener relación con el reemplazo de la lógica cableada.
Alguien publicó esta pregunta recientemente , diciendo:
El firmware es una combinación de memoria persistente, código de programa y los datos almacenados en él. Los ejemplos típicos de dispositivos que contienen Firmware son sistemas integrados como semáforos, electrodomésticos, relojes digitales, computadoras, periféricos, teléfonos móviles y cámaras digitales. El firmware contenido en estos dispositivos proporciona el programa de control para el dispositivo.
De hecho, la drivers
etiqueta de SuperUser está definida:
Un controlador, también llamado controlador de dispositivo o controlador de software, es un software que permite que los programas informáticos de nivel superior interactúen con un dispositivo de hardware. Cuando un programa de computadora solicita interacción con cierto dispositivo de hardware, el controlador se encargará de la instrucción y la traducción de salida entre el dispositivo y el programa de computadora que invoca al controlador.
y, la firmware
etiqueta está definida:
En general, la diferencia entre software y firmware es el nivel en el que interactúa con el hardware. El firmware interactúa en el nivel muy bajo del hardware, mientras que el software interactúa en niveles altos. El firmware generalmente controla el tiempo básico, los controles y la funcionalidad del hardware.
Originalmente pensé que firmware
se instaló directamente en el chip o la placa y viví allí, por lo que debe ser "flasheado", mientras que instalaría uno driver
encima de un sistema operativo.
Conclusión:
Firmware
permite que el hardware "haga" cosas y drivers
permite que el software interactúe con el hardware.