O firmware, também conhecido como "software para hardware", é um código de programa incorporado em dispositivos de hardware que permite que eles e suas funcionalidades funcionem corretamente. O firmware é atualizado regularmente para fazer correções, adicionar ou expandir funcionalidades ou aumentar a compatibilidade de um dispositivo com novas tecnologias.
Muitos dispositivos dependem do firmware para funcionar, incluindo TVs, câmeras, telefones móveis, impressoras, unidades e muito mais. O firmware fica localizado na memória não volátil do dispositivo, onde o conteúdo pode ser armazenado quando o dispositivo está desligado. O firmware pode ser gravado em diferentes tipos de memória, incluindo memória de acesso aleatório (RAM), memória somente de leitura (ROM), memória somente de leitura programável apagável (EPROM) e memória flash.
O firmware ajuda os dispositivos a executar as funções pretendidas de várias maneiras importantes, incluindo o fornecimento de instruções sobre como o dispositivo deve ser inicializado, como deve interagir com outros dispositivos, como roteadores de Internet ou controles remotos, e como deve realizar tarefas de input e produção críticas. Muitos fabricantes de dispositivos de hardware, como Apple, LG Electronics, Microsoft e outros, incorporam firmware em seus produtos para que funcionem de forma semelhante ao sistema operacional (SO) de um computador.
O termo "firmware" teria sido usado pela primeira vez pelo cientista americano Ascher Opler em 1967 para descrever um programa que ele disse estar “entre hardware e software1”. Atualmente, o firmware é uma parte essencial de muitos dispositivos, desde seu iPhone, Mac ou controle remoto de TV, até sensores complexos da Internet das coisas (IOT) em satélites e carros sem motorista. Embora o firmware e o software sejam semelhantes, há diferenças importantes que valem a pena considerar ao avaliar a adequação a uma necessidade comercial.
A maneira mais simples de entender a diferença entre firmware e software está em suas finalidades únicas: enquanto o firmware foi projetado para ajudar os dispositivos a serem inicializados e se comunicarem entre si, o software é usado principalmente para interação. O firmware é usado para fornecer controle sobre dispositivos de consumo, como telefones e TVs. Os fabricantes atualizam frequentemente o firmware para adicionar novas funcionalidades, aumentar a segurança e proteger contra vulnerabilidades. Como qualquer usuário de telefone Android ou iOS, ou mesmo smart TVs e consoles de jogos, sabe, as atualizações de versão de firmware precisam ser baixadas e instaladas regularmente ou afetam o desempenho do dispositivo.
O software, por outro lado, é instalado em um dispositivo para melhorar a interação do usuário com atividades como navegação na internet, verificação de e-mails, processamento de texto, assistir a vídeos, streaming de vídeo e muito mais. O software não está tão intimamente conectado ao hardware quanto o firmware e precisa do firmware para se comunicar com o hardware para o qual ele fornece.
O firmware é essencial para o funcionamento adequado de dispositivos que damos valor ao nosso trabalho e à nossa vida pessoal, como computadores pessoais (PCs), smartphones, consoles de jogos e muito mais. A maioria dos usuários desses dispositivos está familiarizada com o firmware por meio de "atualizações de firmware" frequentes que são necessárias para manter seus dispositivos funcionando.
As atualizações de firmware, que consistem em código de computador, geralmente são emitidas para corrigir ameaças de segurança que podem afetar o desempenho de um dispositivo, como bugs ou hacks. Mas eles também podem ser emitidos para adicionar uma nova funcionalidade a um dispositivo, como uma maneira de interagir com um novo tipo de mídia. Exemplos de atualizações de firmware incluem a adição de funcionalidades de segurança a um roteador de internet, a melhoria da função de navegação de um aplicativo de streaming de vídeo e uma atualização do sistema operacional (SO) que permite que uma placa de sistema de computador suporte um novo tipo de processador.
Desde hoje, a maioria dos dispositivos está conectada à Internet, o download de atualizações remotamente, ou "over the air", tornou-se uma forma para os fabricantes emitirem atualizações de firmware. A maioria dos programas oferece a capacidade de atualizar um dispositivo no firmware, e o usuário simplesmente recebe uma notificação. Outros dispositivos ainda exigem que os usuários acessem o site do fabricante e façam o download do código necessário. A frequência das atualizações de firmware varia dependendo do tipo de dispositivo para o qual foi projetado. Os smartphones, por exemplo, normalmente combinam atualizações de firmware e software para manter o telefone e seu sistema operacional subjacente funcionando corretamente.
Como o firmware é tão amplamente utilizado e é essencial para as funções de tantos dispositivos importantes, ele se tornou um alvo significativo para hackers. Os dispositivos de hardware que dependem do firmware possuem muitas vulnerabilidades porque frequentemente usam o mesmo código. Notebooks, por exemplo, que muitas vezes contêm informações de trabalho confidenciais, dependem do firmware para alimentar suas baterias, placas de som e vídeo, webcams e muito mais, o que os torna alvos atraentes.
O hacking de firmware geralmente envolve a implementação de malware, código que foi intencionalmente escrito para prejudicar o sistema ou usuário de um computador, anexando-se ao firmware. Tipos populares de malware incluem ransomware, que mantém o refém de dados de um usuário, cavalos de Troia que evitam a detecção se passando por um programa legítimo e spyware que rouba informações confidenciais sobre um usuário. Os hackers raramente precisam acessar fisicamente uma máquina para exploração; eles podem obter acesso remotamente usando conexões Bluetooth ou Wi-Fi, cada vez mais populares à medida que aumenta o número de dispositivos com conexões com a Internet.
Funcionalidade de segurança de firmware inadequadas podem resultar em roubo ou comprometimento de dados confidenciais do usuário, e agentes mal-intencionados obtendo controle remoto sobre a máquina de um usuário. Por exemplo, em junho de 2024, o Google emitiu um aviso informando que um problema com o firmware Pixel o tornava vulnerável a invasores e que não havia uma correção conhecida para o problema2.
As empresas, cada vez mais conscientes do risco de vulnerabilidades de firmware, estão tomando medidas crescentes para evitar a invasão de seus sistemas devido aos muitos benefícios que o firmware oferece.
Melhor desempenho — sem novo hardware: atualizações de firmware permitem que os dispositivos assumam novos recursos sem alterar o dispositivo ou sua arquitetura. Muitas atualizações de firmware melhoram os tempos de execução e instrução do código subjacente de um dispositivo e ajudam a otimizar seu desempenho.
Experiência do usuário aprimorada: as atualizações de firmware oferecem aos usuários novas funcionalidades, programas de computador e funções para atividades das quais eles dependem, como verificação de saldos de contas, gravação de um programa na smart TV ou saber quais compras comprar, conectando a geladeira inteligente a um aplicativo via IoT.
Resolução de problemas mais rápida: as atualizações de firmware permitem que muitos problemas comuns com um dispositivo sejam resolvidos rapidamente, incluindo tempos de inicialização e processamento, mais funções de multitarefa e melhor compatibilidade com dispositivos externos.
Funções dos componentes: as atualizações de firmware ajudam a garantir que todos os componentes periféricos de um dispositivo, como alto-falantes e microfones em um smartphone, funcionem da maneira como foram projetados, permitindo que o dispositivo funcione em níveis máximos.
Redução dos custos de reparo: manter o firmware do dispositivo atualizado ajuda a reduzir a probabilidade de os dispositivos serem infectados por bugs e exigir correções de bugs ou reparos dispendiosos de equipamentos no futuro.
O firmware é instalado em um dispositivo enquanto ele está sendo fabricado. Principalmente, facilita as comunicações entre o sistema operacional (SO) e o hardware do dispositivo. O firmware contém muitas instruções essenciais para o funcionamento do dispositivo da maneira como foi projetado. A unidade de processamento central (CPU) do computador, o local onde a entrada de dados é transformada em saída de informações, extrai o firmware da memória do computador e o executa.
O firmware é usado em muitos dispositivos dos quais dependemos todos os dias. Talvez seu caso de uso mais comum seja o reativação de um dispositivo após um longo período de inatividade. Depois que você vai dormir, por exemplo, e acorda e olha para o telefone para verificar suas mensagens, o firmware está ajudando a garantir que seu dispositivo seja ligado corretamente. Para reter informações enquanto não estão sendo usadas, um dispositivo armazena firmware em sua memória "não volátil". Conforme a complexidade das tarefas exigidas pelo firmware aumentou, ele assumiu algumas das características do hardware de computador, como o uso de memória flash e um sistema básico de entrada/saída, ou BIOS.
Como muitos dispositivos precisam reter informações enquanto estão desligados, o firmware normalmente armazena dados na memória (ROM) "não volátil" ou "somente leitura" do sistema, também conhecida como memória flash. Esse tipo de memória é usado em uma ampla variedade de dispositivos portáteis, como pen drives, smartphones, câmeras digitais, notebooks e muito mais, e é essencial para as funções do firmware.
Recentemente, a memória flash ganhou alguns dos mesmos recursos associados aos computadores. Por exemplo, quando um computador é inicializado, ele passa por uma sequência conhecida como Basic Input/Output System, ou BIOS. O primeiro firmware a executar uma sequência de BIOS usou um chip ROM, agora os sistemas mudaram para o uso de memória flash para BIOS, para que os dados possam ser reescritos sem que o chip tenha que ser removido da placa de sistema e reinserido após ser reprogramado.
Além das mudanças na forma como o firmware usa e armazena a memória, também houve avanços nos tipos de firmware disponíveis para os usuários. Atualmente, o firmware pode ser categorizado em três grupos básicos definidos por sua arquitetura:
O firmware de baixo nível é intrínseco ao hardware de um dispositivo e armazenado em chips não voláteis somente leitura, como o ROM, que não podem ser atualizados. Dispositivos que dependem de firmware de baixo nível usam memória que só pode ser gravada uma vez e nunca reprogramada.
Firmware de alto nível é firmware que não pode ser atualizado devido à complexidade de seu hardware. Em um computador, o firmware de alto nível está contido em chips de memória flash e é responsável por tarefas mais avançadas do que o firmware de baixo nível. O firmware de alto nível contém instruções importantes sobre o funcionamento do dispositivo e a interação dos vários componentes.
O firmware de subsistema está contido no que é conhecido como "sistema incorporado", uma combinação específica de hardware e software projetado para uma finalidade ou tarefa. O firmware de subsistema é semelhante ao firmware de alto nível em sua complexidade e adaptabilidade. Assim como o firmware de alto nível, o firmware do subsistema pode ser facilmente atualizado.
O firmware é usado em uma ampla variedade de dispositivos críticos para a transformação digital e, portanto, tem muitas aplicações úteis para a empresa moderna. Alguns dos usos comerciais mais comuns do firmware incluem:
Computadores pessoais
Os computadores pessoais (PCs) dependem do firmware para reter dados críticos enquanto estão desligados, bem como das especificações do BIOS e das Unified Extensible Firmware Interfaces (UEFI) para a interface de software entre um sistema operacional e um firmware. Normalmente, essas funcionalidades vêm incorporadas em um chip de memória na placa de sistema do computador. Além disso, componentes populares de PCs, como placas de vídeo e placas de vídeo, também dependem de firmware para funcionar.
Dispositivos de armazenamento de dados
Unidades USB, unidades de disco rígido externas, unidades flash e outros dispositivos portáteis de armazenamento de dados requerem firmware para funcionar. O firmware é integrado aos chips de memória flash dos quais muitos dispositivos modernos de armazenamento de dados dependem e pode ser atualizado facilmente, ao contrário do firmware contido em ROM ou EPROM.
Smartphones
Os smartphones dependem muito de firmware para funcionar. O firmware não apenas ajuda a garantir que um smartphone seja inicializado depois de um tempo sem uso, mas também ajuda a garantir que os componentes críticos possam interagir uns com os outros da maneira como foram projetados. Por fim, em um smartphone, correções de bugs, recursos de segurança e novas funcionalidades dependem de atualizações regulares de firmware baixadas da internet para funcionar corretamente.
Carros
Muitos carros projetados nos últimos dez anos contêm computadores que dependem de firmware para realizar tarefas críticas. Diferentes tipos de firmware são usados em vários sistemas automotivos, incluindo unidades de controle do motor (ECUs) que otimizam o desempenho do motor e a eficiência de combustível, e os sistemas cada vez mais complexos de informação e entretenimento (infoentretenimento) que auxiliam na navegação e nas câmeras conectadas a muitos carros.
Dispositivos de Internet das coisas (IoT)
A Internet das coisas (IoT) é uma rede que conecta dispositivos inteligentes e permite a coleta e o compartilhamento de dados entre eles e com a nuvem através da internet. Esses dispositivos possuem sensores, processadores, softwares e conexão de rede e outras tecnologias que possibilitam essa conectividade. O firmware é essencial para muitos casos de uso da tecnologia de IoT, como eletrodomésticos inteligentes, carros sem motorista, cidades e fábricas mais inteligentes e muitos outros. Em um dispositivo IoT, como um sensor que transmite dados pela Internet, o firmware contém instruções críticas armazenadas permanentemente no hardware que permitem ao dispositivo ligar e desligar, coletar, analisar e transmitir dados e mais.
1. Firmware (link externo a ibm.com), Wikipedia
2. Google Warns of Pixel Firmware Security Flaw Exploited as Zero-Day (link resides outside ibm.com), The Hacker News, 13 de junho de 2024
O IBM Cloud Infrastructure Center é uma plataforma de software compatível com o OpenStack para gerenciamento da infraestrutura de nuvens privadas em sistemas IBM zSystems e no IBM LinuxONE.
Conheça servidores, armazenamento e software projetados para sua estratégia corporativa de nuvem híbrida e IA.
Encontre a solução ideal de infraestrutura em nuvem para as necessidades do seu negócio e expanda os recursos conforme a demanda.