Quais são as diferenças entre firmware e software / SO?

13
  1. Eu queria saber quais são as diferenças entre firmware e software?
  2. Quais são as diferenças entre firmware e SO?
  3. O firmware dos carregadores de inicialização? Bios é. Que tal o GNU grub? O software ou firmware do grub?
por Tim 20.06.2011 / 01:57

4 respostas

12

Tradicionalmente, o firmware é o código da CPU que reside em uma ROM não modificável que é necessária para que um dispositivo de hardware inicialize e carregue um sistema operacional ou um binário (software) de sua escolha. Às vezes, nenhuma escolha de um binário é dada e uma anexada ao firmware da parte de inicialização é usada.

Todas as CPUs têm o problema clássico de que, uma vez que buscam instruções de memória, algum tipo de memória pré-programada deve existir em um endereço fixo quando a CPU é inicializada, para que possa fazer algo automaticamente na inicialização. Firmware existe para este propósito. Alguns firmware também tem código que os programas posteriores podem usar para serviços. O firmware do BIOS expõe muitas funções usadas pelo DOS para entrada e saída básicas (daí porque o BIOS significa Basic Input Output System).

A distinção não é totalmente clara. Algumas (mais) placas WLAN requerem que o firmware seja carregado antes de começar a funcionar. No entanto, normalmente há um pequeno firmware no dispositivo cujo trabalho é não fazer nada além de aceitar um "firmware" principal através do barramento USB quando o dispositivo é iniciado pelo sistema operacional e entregar o controle quando ele é carregado. A maioria das pessoas diria que tudo é firmware.

Como a EEPROM e a memória flash se tornaram mais comuns, o firmware geralmente não reside mais em uma ROM não gravável, mas na memória flash e pode ser modificado. A distinção entre firmware e software está embaçada hoje com o advento da memória flash. No entanto, uma coisa não mudou ao longo dos anos e as CPUs ainda são CPUs e exigem que algum código, ou firmware, seja visível na inicialização para, assim, iniciar.

As CPUs estão em mais dispositivos do que nunca, portanto, desenvolver e permitir que o firmware seja atualizado no caso de bugs é um grande negócio agora e muitos dispositivos de hardware com uma CPU possuem interfaces de atualização de firmware, às vezes não documentadas.

Um firmware pode ser usado para carregar um sistema operacional. Ele pode conter um gerenciador de inicialização ou código que carregue um carregador de inicialização. É possível armazenar uma imagem do sistema operacional no mesmo local do firmware e deixar que o código de tempo de inicialização do firmware carregue o sistema operacional (os telefones celulares fazem isso). As BIOS do PC, como regra, não incluem os carregadores de inicialização. O U-boot (não para PCs) é um exemplo de um firmware "ciente de sistema de arquivos" que carrega diretamente um sistema operacional.

FIrmwares geralmente não possuem todos os recursos de um sistema operacional completo devido ao princípio de que o mais simples é mais confiável. Os firmwares mais simples simplesmente inicializam um mínimo de hardware, carregam um setor ou bloqueiam um dispositivo de armazenamento e executam a execução nele. Isso é simples de programar e, portanto, fácil de verificar como livre de erros. Bugs no firmware do tempo de inicialização podem significar um desastre para um dispositivo.

    
por 20.06.2011 / 02:53
3

Os limites podem ser um pouco confusos.

O software normalmente é qualquer instrução ou rotina que um computador pode fazer.

Firmware é tipicamente uma instrução específica (software) que é carregada no hardware para que ele execute sua função.

Eu diria que praticamente todo hardware tem algum tipo de firmware incluído nele.

Mais uma vez, não creio que exista um guia definitivo sobre onde começar e parar - tudo o que é firmware, é um software que é compilado para qualquer chip que esteja no dispositivo.

Quanto à sua segunda pergunta sobre o que é firmware, eu diria que os bootloaders não são, mas o BIOS é e o grub não é.

Isso é muito difícil de desenhar, mas ... a maneira que eu vejo é que o BIOS (agora EFI) é o firmware da placa-mãe, e o disco rígido tem seu próprio firmware.

Assim, o gerenciador de inicialização / grub é puro software - ele pode executar tarefas com o disco rígido, mas não está controlando diretamente qualquer hardware.

Se você usar um dispositivo incorporado, como o iPhone / Ipad, onde o firmware termina e o software começa? Se você considera o IOS como firmware, então porque não o Windows ou similar.

Para mim, isso mostra que os limites são onde os fabricantes ou fornecedores de qualquer dispositivo permitem que você assuma o controle e não é realmente uma coisa fixa / ciência exata.

Por exemplo,

  • Uma placa-mãe é para inicializar - o firmware é o BIOS, quando passa para a próxima parte
  • As unidades óptica e de disco rígido são componentes para leitura / gravação de dados, o firmware é a parte que faz esse trabalho sob solicitação.
  • A placa gráfica é um componente para exibição de gráficos, o firmware é a parte que, mediante solicitação, extrai a saída.

Para complicar ainda mais - quando digo, mediante solicitação, isso pode ser de um driver dentro de outro software

Agora, um Ipad, um iPhone ou qualquer outro dispositivo incorporado ...

  • Um dispositivo que é comprado da prateleira para executar uma função limitada (por exemplo, executar o IOS) é o firmware, pois você não modifica (ou não deve) manualmente. Ele pode conter outras peças de hardware, mas é apresentado como um dispositivo e você não compra o hardware separadamente. Ali, qualquer atualização disponível atualizará tudo de forma invisível (por exemplo, um telefone, você não atualiza manualmente o controlador GSM, variáveis e mais, você só tem uma atualização que pode modificar essas coisas).

Então .... Para resumir ...

Para mim, eu diria que firmware = o software que vem nos dispositivos em que um software tão puro é comprado como dados, mas tenho certeza que outros podem dizer diferente!

    
por 20.06.2011 / 02:45
3
  1. A diferença é basicamente onde o código reside. Geralmente, o firmware é gravado em algum tipo de EPROM ou memória flash incorporada, enquanto o software é armazenado em um dispositivo de armazenamento massivo.

  2. O sistema operacional de um dispositivo pode residir em firmware ou software. Em um PC, o firmware (BIOS) fornece apenas serviços de baixo nível que um SO de software (Windows / Linux / etc) pode usar. Em dispositivos móveis, o SO entrie geralmente está no firmware.

  3. Pela definição em (1) o BIOS do computador é firmware, mas os bootloaders, que residem no disco rígido, são software.

por 20.06.2011 / 02:46
3

Firmware é software, exceto que em vez de ser armazenado em disco, ele é armazenado em uma EEPROM que geralmente é exibido para permitir atualizações.

O firmware é, de certo modo, um sistema operacional, mas muito mais restritivo e de propósito único, pois é apenas para controlar esse dispositivo, enquanto um SO é um sistema de uso geral que permite que qualquer tipo de software seja executado em vários hardwares. dispositivos.

Não, os carregadores de boot não são firmwares porque são softwares que existem no disco. Sim, o BIOS é porque existe em um chip (flashable). Não, o GRUB não é firmware porque, novamente, ele não é firme (não há nenhum componente de hardware), é um software que existe no disco - embora ele possa (e possa) ser instalado em um chip, caso em que < em> seria firmware.

    
por 20.06.2011 / 02:48