¿Cuáles son las diferencias entre firmware y software / OS?

15
  1. Me preguntaba qué diferencias hay entre firmware y software.
  2. ¿Qué diferencias hay entre el firmware y el sistema operativo?
  3. ¿Son los cargadores de arranque el firmware? Bios es. ¿Qué tal GNU grub? ¿Es grub software o firmware?
Tim
fuente

Respuestas:

13

Tradicionalmente, el firmware es un código de CPU que reside en una ROM no modificable que es necesaria para que un dispositivo de hardware arranque y cargue un sistema operativo o un binario (software) de elección. A veces no se da la opción de un binario y se usa uno conectado al firmware de la parte de arranque.

Todas las CPU tienen el problema clásico de que, dado que obtienen instrucciones de la memoria, debe existir algún tipo de memoria preprogramada en una dirección fija cuando se inicia la CPU, para que pueda hacer algo automáticamente al inicio. El firmware existe para este propósito. Algunos firmware también tienen código que los programas posteriores pueden usar para los servicios. El firmware del BIOS expone muchas funciones que DOS utilizó para la entrada y salida básica (de ahí que el BIOS signifique Sistema de entrada y salida básico).

La distinción no es totalmente clara. Algunas (la mayoría) de las tarjetas WLAN requieren que se cargue el firmware antes de comenzar a funcionar. Sin embargo, generalmente hay un pequeño firmware en el dispositivo cuyo trabajo es no hacer nada más que aceptar un "firmware" principal a través del bus USB cuando el sistema operativo inicia el dispositivo, y entregar el control cuando está cargado. La mayoría de la gente diría que todo es firmware.

Dado que las EEPROM y la memoria flash se volvieron más comunes, el firmware generalmente ya no reside en una ROM que no se puede escribir, sino en la memoria flash y puede modificarse. La distinción entre firmware y software es borrosa hoy con el advenimiento de la memoria flash. Sin embargo, una cosa no ha cambiado a lo largo de los años y es que las CPU siguen siendo CPU y requieren algún código o firmware para ser visibles al inicio para, bueno, comenzar.

Las CPU están en más dispositivos que nunca antes, por lo que desarrollar y permitir que el firmware se actualice en el caso de errores es un gran problema ahora y muchos dispositivos de hardware con una CPU tienen interfaces de actualización de firmware, a veces sin documentar.

Se puede usar un firmware para cargar un sistema operativo. Puede contener un cargador de arranque o código que carga un cargador de arranque. Es posible almacenar una imagen del sistema operativo en la misma ubicación que el firmware y dejar que el código de firmware del tiempo de arranque cargue el sistema operativo (los teléfonos celulares hacen esto). Los BIOS de PC, por regla general, no incluyen cargadores de arranque. U-boot (no para PC) es un ejemplo de firmware "compatible con el sistema de archivos" que carga directamente un sistema operativo.

Los firmware normalmente no tienen todas las características de un sistema operativo completo debido al principio de que lo más simple es más confiable. Los firmwares más simples simplemente inicializan un mínimo de hardware, cargan un sector o bloquean un dispositivo de almacenamiento y lo ejecutan. Esto es simple de programar y, por lo tanto, fácil de verificar como libre de errores. Los errores en el firmware del tiempo de arranque en particular pueden significar un desastre para un dispositivo.

LawrenceC
fuente
¡Gracias! ¿En qué se diferencian el firmware y el controlador del dispositivo, ya que ambos dispositivos de control?
Tim
Para dispositivos como tarjetas WLAN: los controladores están diseñados para interactuar entre un dispositivo de hardware y el propio sistema operativo. Los controladores se ejecutan en la PC. El firmware está diseñado para interactuar entre un dispositivo de hardware y un controlador a través de un bus (USB, IDE, PCI-E, etc.). El firmware se ejecuta en el propio dispositivo.
LawrenceC
5

El firmware es un software, excepto que en lugar de almacenarse en el disco, se almacena en una EEPROM que generalmente es flasheable para permitir actualizaciones.

El firmware es en cierto modo un sistema operativo, pero mucho más restrictivo y con un solo propósito, ya que es solo para controlar ese dispositivo, mientras que un sistema operativo es un sistema de propósito general que permite que cualquier tipo de software se ejecute en múltiples dispositivos de hardware.

No, los cargadores de arranque no son firmware porque son software que existe en el disco. Sí, el BIOS se debe a que existe en un chip (flasheable). No, GRUB tampoco es firmware porque, de nuevo, no es firme (no tiene ningún componente de hardware), es un software que existe en el disco, aunque podría (y puede) instalarse en un chip, en cuyo caso sería Ser firmware.

Synetech
fuente
4
  1. La diferencia está básicamente en dónde reside el código. En general, el firmware se graba en algún tipo de EPROM o memoria flash incorporada, mientras que el software se almacena en un dispositivo de almacenamiento masivo.

  2. El sistema operativo de un dispositivo puede residir en firmware o software. En una PC, el firmware (BIOS) solo proporciona servicios de bajo nivel que un SO de software (Windows / Linux / etc.) puede utilizar. En dispositivos móviles, el sistema operativo de entrada generalmente está en firmware.

  3. Según la definición en (1), el BIOS de la computadora es firmware, pero los cargadores de arranque, que residen en el disco duro, son software.

Andrew Cooper
fuente
3

Los límites pueden ser un poco borrosos.

El software generalmente es cualquier instrucción o rutina que una computadora pueda hacer.

El firmware suele ser instrucciones específicas (software) que se cargan en / en el hardware para que puedan realizar su función.

Yo diría que casi todas las piezas de hardware tienen algún tipo de firmware incluido.

Una vez más, no creo que haya una guía definitiva sobre dónde se inicia y se detiene: todo lo que es el firmware es un software que se compila para cualquier chip que se encuentre en el dispositivo.

En cuanto a su segunda pregunta sobre qué es el firmware, diría que los cargadores de arranque no lo son, pero el BIOS es y grub no lo es.

Esto es muy difícil de trazar, pero ... la forma en que lo veo es que el BIOS (ahora EFI) es el firmware de la placa base, y el disco duro tiene su propio firmware.

Entonces, el gestor de arranque / grub es software puro: puede realizar tareas con el disco duro, pero en realidad no controla directamente ningún hardware.

Si toma un dispositivo integrado como un iPhone / Ipad, ¿dónde termina el firmware y comienza el software? Si considera que IOS es firmware, ¿por qué no Windows o similar?

Para mí, esto muestra que los límites son donde los fabricantes o vendedores de cualquier dispositivo le permiten tomar el control y en realidad no es una cosa fija / ciencia exacta.

Por ejemplo,

  • Una placa base es para arrancar: el firmware es el BIOS, cuando pasa a la siguiente parte
  • Los discos ópticos y duros son componentes para leer / escribir datos, el firmware es la parte que hace este trabajo a pedido.
  • La tarjeta gráfica es un componente para mostrar gráficos, el firmware es la parte que, a pedido, extrae la salida.

Para complicar aún más: cuando lo solicite, esto puede ser de un controlador dentro de otro software

Ahora, un Ipad, o un Iphone, o cualquier otro dispositivo integrado ...

  • Un dispositivo que se compra en el estante para realizar una función limitada (por ejemplo, ejecutar IOS) es el firmware, ya que no lo modifica (o no debería) modificarlo manualmente. Puede contener otras piezas de hardware en su interior, pero se presenta como un dispositivo y no compra el hardware por separado, por lo tanto, cualquier actualización disponible actualizará todo de forma invisible (por ejemplo, un teléfono, no actualiza manualmente el controlador GSM, energía variables y más, solo tiene una actualización que puede modificar estas cosas).

Así que para resumir...

Para mí, diría que firmware = el software que viene en dispositivos donde se compra un software puro como datos, ¡pero estoy seguro de que otros pueden decir diferente!

William Hilsum
fuente
Espero que esto se lea bien ... Me pareció un tema muy interesante sobre el que escribir, pero me llevó más de media hora y es muy temprano en la mañana / Estoy muy cansado ... y no siempre estoy claro ¡el mejor de los tiempos! ... ¡Feliz de responder preguntas y solo espero no haberme repetido demasiado!
William Hilsum
0

Quiero dar una respuesta en solo unas pocas palabras. Tanto el firmware como el sistema operativo son muy importantes para que cualquier sistema digital se inicie y ejecute correctamente y discutiremos cómo funcionan ambos. Supongamos que apagamos nuestro teléfono inteligente y lo encendemos después de encender el botón de encendido en nuestro teléfono inteligente, este comando irá al chip BIOS, que es una memoria no volátil y que contiene algún programa de firmware. en ambas direcciones a RAM y ROM, le da al comando ram para quitar los códigos del sistema operativo de Rom y otro comando a ROM para dar una copia de su sistema operativo a la RAM para activar todos los demás componentes de ese sistema.

Nitrito Hritik
fuente