韌體在路由器上扮演什麼具體角色?

韌體在路由器上扮演什麼具體角色?

如果路由器正確實現標準網路協定(DNS、DHTCP、TCP/IP 等),那麼相同的韌體(實現這些協定)是否適用於所有路由器?

我想我想知道為什麼路由器都使用不同的韌體;為什麼同一台路由器製造商的不同型號使用不同的固件,以及為什麼似乎有一個相當大的開源社區,其中的人們喜歡為路由器編寫自訂固件。這讓我相信路由器的韌體可能不僅僅是某些協議的實現。

所以我問:除了只是實施 DHCP/DNS/等?

編寫自己的韌體有哪些具體用例?

答案1

首先,您必須了解路由器只不過是具有專用網路硬體的嵌入式(超緊湊型)電腦。

韌體路由器的組成包括作業系統、驅動程式和應用程式路由器運作。它本質上是一個磁碟映像,就像戴爾或惠普在電腦出廠前用於初始化的磁碟映像。

由於路由器是嵌入式設備,因此它們需要盡可能高效且小型。這就是韌體作為單一文件分發的原因;該文件是根據路由器的特定型號定制的;沒有不存在的硬體驅動程序,也沒有針對韌體設計的路由器不支援的功能的應用程式。

韌體不「實現」DNS/DHCP/等。韌體包含實現這些協定/服務的應用程式(DNSMasqDHCPd等)。就像有許多不同的應用程式可以處理*.zip文件一樣,有許多不同的應用程式可以履行這些角色,所有應用程式的功能都略有不同,或者允許稍微不同的自訂。例如,您可能想換成DNSMasq) 。Bind這些實際上與您可能在桌面或伺服器上找到的履行這些角色的應用程式相同。

二、廠商多每個韌體的核心都使用相同的核心。許多人使用精簡的 Linux 作業系統。路由器韌體的相似性使得 DD-WRT 等開源韌體專案可以在數百種不同的路由器型號上運行;否則,就會需要太多的工作。

這些開源韌體社群的出現是因為路由器上運行的軟體很少是依賴硬體的。只要路由器有足夠的 CPU 能力和記憶體來支援您想要執行的操作,您就可以輕鬆安裝其他應用程序,例如 OpenVPN、串流媒體伺服器和代理程式。

答案2

路由器的韌體不僅僅處理網路協定。它告訴設備如何操作。它決定當您開啟裝置時要執行的操作。它可以提供web、telnet、ssh等介面供用戶管理。它包含您設定的所有自訂設定。它的作用不僅僅是處理網路協定。將其視為設備的作業系統。

人們編寫了自訂路由器韌體來替換製造商的韌體,因此出現了 dd-wrt ​​和 tomato。

本質上,假設硬體有能力並且有足夠的空間,您可以編寫韌體來執行幾乎任何您想要的操作。

答案3

韌體特定於硬體及其功能。這適用於路由器、電話(不只是智慧型手機)、大型路由器、交換器、網橋,凡是你能想到的。韌體的某些部分執行低階任務,例如從快閃記憶體/磁碟儲存讀取數據,下一部分介紹如何與無線電通訊或如何與板載 LAN 晶片通訊。對於 (A)DSL 路由器,還有一個部分負責撥號和 DHCP、DNS 等。其他部分負責為您提供 WEB 介面,正如您可能猜到的那樣,它們的選項因硬體功能而異(即為什麼同一路由器製造商的不同型號使用不同的韌體部分)。

所有這些與硬體或表示相關的部分(drivers為簡單起見,我們稱之為 )都由某個中央程序告訴要做什麼。該程式管理各種驅動程式/模組之間的交互,並且不允許它們做無意義的事情。kernel為了簡單起見,我們再次將此中央管理器稱為 a 。

考慮到上述內容,你可能會說嘿,看起來就像一個linux/windows/什麼盒子,看看這個結構!。嗯,沒錯!它沒有鍵盤和滑鼠,但實際上它是一台小型的、專用於任務的電腦。其中許多家庭路由器確實使用Linux(好吧,不是Windows)或能夠運行Linux(例如Tomato)。

至於為什麼有人為他們編寫新韌體- 假設您有一個路由器,它沒有實現您關心的特定功能(在我的例子中,它是靜態分配的 DHCP)。但是有一個番茄路由器固件,它確實具有此功能,並且它確實支援您的路由器硬體。為什麼不使用它呢? (除了喪失製造商的保固之外)。我願意,我也這麼做。所以答案是——人們為我們的路由器編寫不同的固件,因為有需求,這是由於原始製造商無能力/不願意/實現功能緩慢造成的。

相關內容