Wenn Router standardmäßige Netzwerkprotokolle (DNS, DHTCP, TCP/IP usw.) ordnungsgemäß implementieren, wäre dann nicht dieselbe Firmware (die diese Protokolle implementiert) für alle Router anwendbar?
Ich frage mich, warum alle Router unterschiedliche Firmware verwenden; warum verschiedene Modelle desselben Routerherstellers unterschiedliche Firmware verwenden und warum es eine ziemlich große Open-Source-Community von Leuten zu geben scheint, die gerne benutzerdefinierte Firmware für Router schreiben. Das lässt mich glauben, dass die Firmware eines Routers vielleicht mehr ist als nur die Implementierung bestimmter Protokolle.
Ich frage also: Was (konkrete) Dinge macht Firmware, außerNurDHCP/DNS/usw. implementieren?
Was sind einige konkrete Anwendungsfälle für das Schreiben einer eigenen Firmware?
Antwort1
Zunächst müssen Sie verstehen, dass Router nichts anderes als eingebettete (ultrakompakte) Computer mit spezieller Netzwerkhardware sind.
DerFirmwareeines Routers besteht aus demBetriebssystem, Treiber und Anwendungendass der Router läuft. Es handelt sich im Wesentlichen um ein Disk-Image, genau wie die, die Dell oder HP verwenden, um ihre Computer zu initialisieren, bevor sie das Werk verlassen.
Da Router eingebettete Geräte sind, müssen sie so effizient und klein wie möglich sein. Aus diesem Grund wird die Firmware als einzelne Datei verteilt. Diese Datei ist genau auf das Routermodell zugeschnitten. Es gibt keine Treiber für Hardware, die nicht existiert, und keine Anwendungen für Funktionen, die vom Router, für den die Firmware entwickelt wurde, nicht unterstützt werden.
Die Firmware „implementiert“ DNS/DHCP/usw. nicht. Die Firmware enthält eine Anwendung, die diese Protokolle/Dienste implementiert ( DNSMasq
, DHCPd
, usw.). So wie es viele verschiedene Anwendungen gibt, die mit *.zip
Dateien arbeiten können, gibt es auch viele verschiedene Anwendungen, die diese Rollen erfüllen können, alle mit leicht unterschiedlichen Funktionen oder leicht unterschiedlichen Anpassungsmöglichkeiten. Sie können beispielsweise DNSMasq
gegen austauschen Bind
. Dies sind tatsächlich dieselben Anwendungen, die Sie auf einem Desktop oder Server finden könnten, der diese Rollen erfüllt.
Zweitens: Viele HerstellerTunverwenden denselben Kern als Herzstück jeder ihrer Firmwares. Viele verwenden ein abgespecktes Linux-Betriebssystem. Die Ähnlichkeit der Router-Firmware ermöglicht es Open-Source-Firmware-Projekten wie DD-WRT, auf Hunderten verschiedener Routermodelle zu funktionieren; andernfalls wäre es einfach zu viel Arbeit.
Diese Open-Source-Firmware-Communitys sind entstanden, weil nur sehr wenige der auf einem Router laufenden Software hardwareabhängig sind. Sie können problemlos zusätzliche Anwendungen wie OpenVPN, Streaming-Media-Server und Proxys installieren, solange der Router über genügend CPU-Leistung und Speicher verfügt, um das zu unterstützen, was Sie tun möchten.
Antwort2
Die Firmware eines Routers kann mehr als nur Netzwerkprotokolle verarbeiten. Sie sagt dem Gerät, wie es zu funktionieren hat. Sie entscheidet, was zu tun ist, wenn Sie das Gerät einschalten. Sie kann eine Web-, Telnet-, SSH- usw. Schnittstelle für die Verwaltung durch Benutzer bereitstellen. Sie enthält alle benutzerdefinierten Einstellungen, die Sie festlegen. Sie kann viel mehr als nur Netzwerkprotokolle verarbeiten. Betrachten Sie sie als das Betriebssystem für das Gerät.
Leute haben benutzerdefinierte Router-Firmware geschrieben, um die Firmware des Herstellers zu ersetzen, daher DD-WRT und Tomato.
Im Wesentlichen können Sie Firmware schreiben, um praktisch alles zu tun, was Sie wollen, vorausgesetzt, die Hardware ist dazu in der Lage und es ist genügend Speicherplatz vorhanden.
Antwort3
Firmware ist spezifisch für die Hardware und ihre Fähigkeiten. Dies gilt für Router, Telefone (nicht nur Smartphones), große Router, Switches, Bridges und so weiter. Ein bestimmter Teil der Firmware erledigt Low-Level-Aufgaben wie das Lesen von Flash-/Festplattenspeichern, der nächste Teil erklärt, wie man mit Funkgeräten oder einem integrierten LAN-Chip kommuniziert. Bei (A)DSL-Routern gibt es auch einen Teil, der für das Wählen und DHCP, DNS usw. zuständig ist. Andere Teile sind für die Bereitstellung Ihrer WEB-Schnittstelle zuständig, deren Optionen sich, wie Sie wahrscheinlich vermutet haben, je nach Hardware-Fähigkeiten (das ist dieWarum verschiedene Modelle desselben Routerherstellers unterschiedliche Firmware verwendenTeil).
Alle diese Teile, die sich auf die Hardware oder die Darstellung beziehen (wir nennen sie drivers
der Einfachheit halber ), werden von einem zentralen Programm angewiesen, was sie tun sollen. Dieses Programm verwaltet die Interaktionen zwischen verschiedenen Treibern/Modulen und lässt sie keine unsinnigen Dinge tun. Wir nennen diesen zentralen Manager kernel
der Einfachheit halber wieder einen .
Mit dem oben Gesagten im Hinterkopf könnten Sie sagen:Hey, es sieht aus wie eine Linux-/Windows-/was-auch-immer-Box, wenn man sich diese Struktur ansieht!. Nun, das stimmt! Es hat weder Tastatur noch Maus, aber es ist in Wirklichkeit ein kleiner, aufgabenspezifischer Computer. Viele dieser Heimrouter verwenden Linux (also nicht Windows) oder können eines ausführen (z. B. Tomato).
Wie fürwarum gibt es Leute, die neue Firmware für sie schreiben- Stellen Sie sich vor, Sie haben einen Router, der die für Sie wichtigen Funktionen nicht implementiert (in meinem Fall war es statisch zugewiesenes DHCP). Aber es gibt eine Tomato-Router-Firmware, die diese Funktion HAT und die Hardware Ihres Routers HAT. Warum sollten Sie sie nicht verwenden? (abgesehen davon, dass Sie damit die Herstellergarantie verlieren). Ich würde es tun und tue es auch. Die Antwort lautet also:Die Leute schreiben unterschiedliche Firmware für unsere Router, weil eine Nachfrage danach besteht, die durch die Unfähigkeit/Unwilligkeit/Langsamkeit des ursprünglichen Herstellers bei der Implementierung von Funktionen verursacht wird.