Mas afinal, qual é a diferença entre Firmware, Driver e Software?
Independentemente do sistema operativo que usa, é comum existir, para o seu perfeito funcionamento vários componentes. Firmware, Driver e Software, afinal qual é o significado destes termos? E qual é a sua utilidade?
Neste artigo vamos procurar explicar, de uma forma bem simples de que se tratam e qual a função de cada um.
De uma forma muito resumida, pode dizer-se que Firmware, Driver e Software são programas de computador, cujo seu objetivo é desempenhar alguma tarefa na máquina ou sistema operativo onde estão presentes.
Firmware
Gravado num chip de memória não-volátil, o firmware foi projetado com o intuito de o controlar o hardware. Este tipo de memória retém informação, ou seja, os dados lá contidos não são perdidos após uma falha de energia. A sua principal característica é a rapidez, ideal para controlar o hardware, onde o desempenho é importante.
No caso de um computador, podemos associá-lo à BIOS (Basic Input/Output System) ou à UEFI (Unified Extensible Firmware Interface), abordado aqui anteriormente.
Enquanto que, por exemplo, num computador ou smartphone é possível instalar e desinstalar software, no firmware raramente existe a necessidade de atualizar e, provavelmente apenas seria feito se solicitado pelo fabricante, para corrigir problema.
O firmware pode ser gravado na memória de leitura (ROM), na memória de leitura programável apagável (EPROM) ou memória flash. Caso esteja incorporado em chips de memória flash, pode ser atualizado mais facilmente do que se gravado na ROM ou EPROM.
Assim que um computador é ligado, a BIOS entra imediatamente em ação, permitindo a interação com o hardware e, em simultâneo, verifica a existência de erros. Em seguida, a BIOS chama outro programa, denominado bootloader, cuja sua tarefa é “acordar” o sistema operativo.
Driver
Pense num driver como um tradutor entre um programa que está a usar e um dispositivo de hardware que esse programa requer para ser utilizado.
Um sistema operativo não vem com suporte para todo o hardware presente no computador. A missão principal de um driver é interagir com hardware específico. Por exemplo, existem drivers para as placa de rede, gráfica, som, entre outros dispositivos. Cada driver é específico para cada sistema operativo, marca e modelo de computador.
Portanto, para usar a placa de som do computador, deve ser utilizado um driver que corresponda ao dispositivo e também ao sistema operativo. Uma vez instalado, o driver saberá como ler 0's e 1's de um ficheiro áudio para posterior reprodução sonora.
Graças à existência de drivers, a maioria do software não tem que saber como trabalhar diretamente com o hardware. Considerando que existe uma infinidade de software e hardware, se todos tivessem que saber como comunicar entre si, o processo de desenvolver software e hardware seria, digamos, quase impensável.
Atualmente é provável que algum software já seja capaz de comunicar diretamente com alguns tipos de hardware. De uma forma geral, só é possível se o software enviar comandos muito simples para o hardware, ou se ambos forem desenvolvidos pela mesma empresa.
Software
Alan Turing, nascido no Reino Unido, foi quem inventou o termo software. Este termo é bastante amplo, abrangendo por exemplo antivírus, editores de texto, browsers, editores de vídeo, etc. Enquanto que o hardware é algo físico, o software não é. Um sistema operativo é um software, e permite que outro software seja instalado nele.
O software é extremamente flexível, uma vez que permite ser continuamente atualizado e alterado, podendo durar indefinidamente. Acontece que ele pode ser destruído, e caso não existam cópias de segurança, pode não ser possível recuperá-lo.
As soluções para os problemas de software são, habitualmente, mais complexas do que as dos problemas de hardware. Em relação ao hardware, pode parecer que as coisas são mais simples de resolver. Se existe algum componente avariado, normalmente procede-se à sua troca.
As etapas necessárias para resolver um problema de software dependem das informações fornecidas sobre o problema, que outro software está execução e que hardware está a executar o software, entre outros. Habitualmente, quando ocorre algum problema, deparamo-nos com uma mensagem de erro ou outra indicação. A partir desse momento, recorre-se ao processo de solução de problemas, sendo que cada vez mais fácil encontrar na Internet a solução.
Representação arquitetural
Para finalizar, e em termos representativos, o acontece o que está representado na imagem acima. O hardware do computador aparece como base, seguindo-se o firmware disponível na memória ROM, e os drivers, sistema operativo e as aplicações no disco.
Este artigo tem mais de um ano
Hmm… os desenhos acho que nao ajudam muito os leigos … podia ser mais simples IMO.
Parece pseudo-tecnico. para uma pergunta simples
Algo assim do genero!
( apenas um exemplo!)
https://s30.postimg.org/nq0to7c81/firmware_driver_software.jpg
ultimo eskema ta perfeito. thanks for post, dakelas curiosidades da shet finalmente satsfeitas
Interessante, para quem não tem conhecimentos profundos de informática, como eu.
Obrigado
O artigo tenta esclarecer algo que, por vezes, é difícil de explicar a quem não tem conhecimentos sobre computadores. Eu só tentaria não colar muito a questão do firmware à BIOS. Sim, a BIOS serve de exemplo mas convém explicar que muitos dos periféricos ou componentes ligados a um PC (discos, leitores dvd, placas controladoras) também tem firmware incorporado.
De referir que o firmware é, talvez, um termo bem mais abrangente que os outros. Existem dentro dos computadores mas fora deles, podem existir firmwares com sistemas operativos completos. Como em alguns routers e sistemas NAS. Fora dos computadores, podemos ver também firmware nos mais variados produtos de consumo. Como em máquinas de lavar roupa, loiça ou até em microondas ou mesmo nos chamados “robôs de cozinha”.
No fim:
Firmware é software escrito de uma forma mais ou menos permanente (tende a ser pouco mutável) numa memória não volátil. Este software lida com sistemas de controlo ao nível mais próximo do hardware.
Um Driver é também software mas funciona a um nível menos próximo do hardware (em muitos casos “fala” com o firmware e o firmware então comanda o hardware) e tem como propósito comunicar com um dispositivo dentro de um sistema operativo.
Neste artigo, o que designam por “software”, são ao fim e ao cabo, aplicações. As aplicações são tanto software quanto um sistema operativo. Ele existe no Firmware e é do que um Driver é feito.
Eu até diria que basicamente se divide em hardware e software. Se drivers e firmware não são software….. vou ali e já volto.
firmware e drivers SÃO software.
não digas disparates.
Foi o que ele disse.
Acho que ele estava a defender que drivers e firmware são software
Eu punha as coisas desta maneira Software é o que interage com o utilizador. Firmware software num chip que controla os periféricos. É o cérebro do periférico. Armazena as funções do periférico e responde a comandos externos do sistema operativo. Driver é a ponte entre os dois. Traduz um “print” do software ou sistema operativo na função em assembler armazenada no firmware do chip que por sua vez acciona os motores e cabeças de impressão para imprimir.
Ola! Gostei do artigo.. desta vez os gráfico podiam ser melhores… mas para o utilizador comum não passa tudo de software!! Para o expert cada um faz uma interface com o hardware em estágios diferentes e depois combinam-se todos tipo rave! 🙂
Só o termo muda em suma é tudo mesma coisa … Com pequenas diferenças claro …
Saudações
Teófilo Nihefe
Académico
Minha duvida: tenho um computador que acabou de ser montado e preciso colocar um programa para controlar um determinado processo nele. Não vou instalar sistema operacional ! como é escrito ou realizado esse programa? entendo que o processador é uma “caixa” que so entende 0 e 1. Como é feito esse simples programa? como ele é introduzido direto nesse processador? Lembre se que não existe nada nele, nem firware, drivers, etc.
Minha duvida: tenho um computador que acabou de ser montado e preciso colocar um programa para controlar um determinado processo nele. Não vou instalar sistema operacional ! como é escrito ou realizado esse programa? entendo que o processador é uma “caixa” que so entende 0 e 1. Como é feito esse simples programa? como ele é introduzido direto nesse processador? Lembre se que não existe nada nele, nem firware, drivers, etc.