- ¿En qué se diferencian y relacionan el firmware y el controlador del dispositivo? Creo que ambos dispositivos de control?
- ¿El firmware siempre se inicia automáticamente, mientras que el sistema operativo debe ejecutar / iniciar el controlador?
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.
fuente
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.
fuente
Alguien publicó esta pregunta recientemente , diciendo:
De hecho, la
drivers
etiqueta de SuperUser está definida:y, la
firmware
etiqueta está definida: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 unodriver
encima de un sistema operativo.Conclusión:
Firmware
permite que el hardware "haga" cosas ydrivers
permite que el software interactúe con el hardware.fuente