Se os roteadores implementassem adequadamente protocolos de rede padrão (DNS, DHTCP, TCP/IP, etc.), então o mesmo firmware (implementando esses protocolos) não seria aplicável a todos os roteadores?
Acho que estou me perguntando por que todos os roteadores usam firmware diferente; por que diferentes modelos do mesmo fabricante de roteador usam firmware diferente e por que parece haver uma comunidade de código aberto substancialmente grande de pessoas que gostam de escrever firmware personalizado para roteadores. Isso me leva a acreditar que talvez haja mais no firmware de um roteador do que apenas a implementação de determinados protocolos.
Então eu pergunto: quais coisas (específicas) o firmware faz, alémapenasimplementando DHCP/DNS/etc.?
Quais são alguns casos de uso concretos para escrever seu próprio firmware?
Responder1
Primeiro, você precisa entender que os roteadores nada mais são do que computadores embarcados (ultracompactos) com hardware de rede especializado.
Ofirmwarede um roteador consiste nosistema operacional, drivers e aplicativosque o roteador funciona. É essencialmente uma imagem de disco, igual às que a Dell ou a HP usam para inicializar seus computadores antes de saírem da fábrica.
Como os roteadores são dispositivos incorporados, eles precisam ser tão eficientes e pequenos quanto possível. É por isso que o firmware é distribuído como um único arquivo; Este arquivo é personalizado para o modelo exato do roteador; Não há drivers para hardware que não existam e nenhum aplicativo para recursos que não sejam suportados pelo roteador para o qual o firmware foi projetado.
O firmware não "implementa" DNS/DHCP/etc. O firmware contém um aplicativo que implementa esses protocolos/serviços ( DNSMasq
, DHCPd
, etc.). Assim como existem muitos aplicativos diferentes que podem trabalhar com *.zip
arquivos, existem muitos aplicativos diferentes que podem cumprir essas funções, todos com recursos ligeiramente diferentes ou permitir uma personalização ligeiramente diferente. Você pode querer trocar DNSMasq
por Bind
, por exemplo). Na verdade, esses são os mesmos aplicativos que você pode encontrar em um desktop ou servidor que cumpre essas funções.
Em segundo lugar, muitos fabricantesfazerusam o mesmo núcleo no centro de cada um de seus firmwares. Muitos usam um sistema operacional Linux simplificado. A semelhança do firmware do roteador é o que permite que projetos de firmware de código aberto como o DD-WRT funcionem em centenas de modelos de roteadores diferentes; caso contrário, simplesmente exigiria muito trabalho.
Essas comunidades de firmware de código aberto surgiram porque muito pouco software executado em um roteador depende de hardware. Você pode instalar facilmente aplicativos adicionais como OpenVPN, servidores de streaming de mídia e proxies, desde que o roteador tenha CPU e memória suficientes para suportar o que você deseja fazer.
Responder2
O firmware de um roteador faz mais do que apenas lidar com protocolos de rede. Diz ao dispositivo como operar. Ele decide o que fazer quando você liga o dispositivo. Ele pode fornecer uma interface web, telnet, ssh, etc. para os usuários gerenciá-lo. Ele contém todas as configurações personalizadas que você definiu. Ele faz muito mais do que apenas lidar com protocolos de rede. Pense nisso como o sistema operacional do dispositivo.
As pessoas escreveram firmware de roteador personalizado para substituir o firmware do fabricante, daí o dd-wrt e o tomate.
Essencialmente, você pode escrever firmware para fazer praticamente tudo o que quiser, desde que o hardware seja capaz e haja espaço suficiente.
Responder3
O firmware é específico do hardware e de seus recursos. Isso se aplica a roteadores, telefones (não apenas smartphones), grandes roteadores, switches, pontes, entre outros. Há uma parte do firmware que executa tarefas de baixo nível, como leitura de armazenamento em Flash/disco; a próxima parte explica como falar com o rádio ou como falar com um chip LAN integrado. No caso de roteadores (A)DSL, há também uma parte responsável pela discagem e DHCP, DNS etc. Outras partes são responsáveis por fornecer a você sua interface WEB, cujas opções diferem entre roteadores, como você provavelmente adivinhou, pelas capacidades de hardware (essa é apor que diferentes modelos do mesmo fabricante de roteador usam firmware diferentepapel).
Todas essas partes pertencentes ao hardware ou à apresentação (vamos chamá-las de drivers
, para simplificar) são informadas por algum programa central sobre o que fazer. Este programa gerencia interações entre vários drivers/módulos e não permite que eles façam coisas sem sentido. Chamaremos esse gerenciador central de kernel
, novamente, para simplificar.
Com o que foi dito acima em mente, você pode dizerEi, parece uma caixa linux/windows/whatever, olhando essa estrutura!. Bem, isso mesmo! não possui teclado nem mouse, mas é, na realidade, um pequeno computador especializado em tarefas. Muitos deles roteadores domésticos usam Linux (bem, não Windows) ou são capazes de rodar um (por exemplo, Tomato).
Quanto apor que há pessoas escrevendo novo firmware para eles- imagine que você tem um roteador que não implementa funcionalidades específicas de seu interesse (no meu caso, foi DHCP atribuído estático). Mas existe um firmware de roteador Tomato, que possui esse recurso e suporta o hardware do seu roteador. Por que não usá-lo? (além de perder a garantia do fabricante). Eu faria e faço. Então a resposta é -as pessoas escrevem firmwares diferentes para nossos roteadores, porque há uma demanda por eles, causada pela incapacidade/relutância/lentidão do fabricante original em implementar recursos.