Independientemente del sistema operativo que uses, es común que existan varios componentes para su perfecto funcionamiento. Firmware, Driver y Software, ¿cuál es el significado de estos términos? ¿Y cuál es su utilidad?
En este artículo vamos a intentar explicar, de una forma sencilla, de qué se tratan y cuál es la función de cada uno.
Anteriormente hemos visto: ¿Cuál es la Diferencia entre Firmware y Software?
De una forma muy resumida, podemos decir que Firmware, Driver y Software son programas de computadora, cuyo objetivo es desempeñar alguna tarea en la máquina o sistema operativo donde están presentes.
Firmware
Grabado en un chip de memoria no volátil, el firmware fue diseñado con el propósito de controlar el hardware. Este tipo de memoria retiene información, es decir, los datos que contiene no se pierden después de un fallo de energía. Su principal característica es la rapidez, ideal para controlar el hardware, donde el rendimiento es importante.
En el caso de un computador, podemos asociarlo a la BIOS (Basic Input/Output System) o a la UEFI (Unified Extensible Firmware Interface), abordado aquí anteriormente.
Lee también: ¿Cuál es la Diferencia entre BIOS y UEFI?
Mientras que, por ejemplo, en un computador o smartphone es posible instalar y desinstalar software, en el firmware rara vez existe la necesidad de actualizar y, probablemente solo se haría si lo solicitara el fabricante, para corregir un problema.
El firmware puede estar grabado en la memoria de lectura (ROM), en la memoria de lectura programable borrable (EPROM) o memoria flash. Si está incorporado en chips de memoria flash, puede actualizarse más fácilmente que si está grabado en la ROM o EPROM.
Tan pronto como se enciende un computador, la BIOS entra inmediatamente en acción, permitiendo la interacción con el hardware y, simultáneamente, verifica la existencia de errores. A continuación, la BIOS llama a otro programa, denominado bootloader, cuya tarea es “despertar” el sistema operativo.
Driver
Piensa en un controlador o driver como un traductor entre un programa que estás usando y un dispositivo de hardware que ese programa requiere para ser utilizado.
Un sistema operativo no viene con soporte para todo el hardware presente en el computador. La misión principal de un driver es interactuar con hardware específico. Por ejemplo, existen drivers para las placas de red, gráfica, de sonido, entre otros dispositivos. Cada driver es específico para cada sistema operativo, marca y modelo de computador.
Por lo tanto, para usar la placa de sonido del computador, debe utilizarse un driver que corresponda al dispositivo y también al sistema operativo. Una vez instalado, el driver sabrá cómo leer los 0 y 1 de un archivo de audio para su posterior reproducción sonora.
Gracias a la existencia de drivers, la mayoría del software no tiene que saber cómo trabajar directamente con el hardware. Considerando que existe una infinidad de software y hardware, si todos tuvieran que saber cómo comunicarse entre sí, el proceso de desarrollar software y hardware sería, digamos, casi impensable.
Actualmente es probable que algún software ya sea capaz de comunicarse directamente con algunos tipos de hardware. De una forma general, solo es posible si el software envía comandos muy simples al hardware, o si ambos son desarrollados por la misma empresa.
Software
Alan Turing, nacido en el Reino Unido, fue quien inventó el término software. Este término es bastante amplio, abarcando por ejemplo antivirus, editores de texto, navegadores, editores de vídeo, etc. Mientras que el hardware es algo físico, el software no lo es. Un sistema operativo es un software, y permite que otro software se instale en él.
El software es extremadamente flexible, ya que permite ser continuamente actualizado y alterado, pudiendo durar indefinidamente. Sucede que puede ser destruido, y si no existen copias de seguridad, puede que no sea posible recuperarlo.
Las soluciones para los problemas de software son, habitualmente, más complejas que las de los problemas de hardware. En relación al hardware, puede parecer que las cosas son más sencillas de resolver. Si existe algún componente averiado, normalmente se procede a su cambio.
Las etapas necesarias para resolver un problema de software dependen de la información proporcionada sobre el problema, qué otro software está en ejecución y qué hardware está ejecutando el software, entre otros. Habitualmente, cuando ocurre algún problema, nos encontramos con un mensaje de error u otra indicación. A partir de ese momento, se recurre al proceso de solución de problemas, siendo cada vez más fácil encontrar la solución en Internet.
Representación arquitectural
Para finalizar, y en términos representativos, sucede lo que está representado en la imagen de arriba. El hardware del computador aparece como base, seguido del firmware disponible en la memoria ROM, y los drivers, sistema operativo y las aplicaciones en el disco.