智慧型路由器開發指南 book

2021-09-07 09:02:13 字數 2013 閱讀 2282

最近購得乙個openwrt書籍《智慧型路由器開發指南》,作者張永智。

building a smart router with openwrt

作者**:

書中所提到的系統使用openwrt 12.09和openwrt 15.05.1介紹。

作者希望通過本書的學習能夠掌握openwrt各種技術的應用,同時在一定程度上可以參考openwrt的技術架構,使自己的職業技能有乙個質的提高。

在非同步社群有本書前兩章內容,可供參考。

作者在前言中提到了openwrt成功的秘訣,可以學習參考。

可以實現路由器功能的開源軟體很多,為什麼只有openwrt成功了?openwrt軟體成功的關鍵在於3個方面:領導者、基礎設施以及實現軟體的技術。通常領導者是最重要的,因為領導者決定著社群的規則和技術方向,但是每個人都是獨特的而且是無法複製的,因此通常無法借鑑。基礎設施和實現軟體的技術則是可以借鑑的。

openwrt社群採用六大基礎設施工具支撐整個社群的運轉,這六大基礎設施工具分別是**管理工具git、郵件列表、自動構建工具buildbot、文件管理工具wiki、trac和技術論壇。

**管理工具git可以跟蹤檔案和目錄的歷史資訊,包含4個w(who、when、why和what),即誰做了修改,什麼時間做了修改,為什麼修改以及修改的內容是什麼。此外,git還支援分布式**倉庫,適合開源軟體專案的跨地域開發,這個工具可以讓每個人看到**的變化過程。openwrt經過了12年的發展,**倉庫還保留了最初的提交記錄。

郵件列表是**審查及**提交整合的地方,開發人員將修改**生成補丁傳送給所有的郵件訂閱者,每個人都可以進行**評審,核心開發人員看到後會將**整合到**倉庫中。郵件內容可以永久儲存到郵件列表中。郵件列表和普通郵件的主要區別在於訂閱機制和存檔機制,每個人都可以自由訂閱並檢視歷史郵件。

文件管理工具wiki的特點是具有開放性,可以讓任何參與人員非常方便地進行編輯、訪問和搜尋。大多數軟體公司的軟體文件均儲存為二進位制格式,在經過一段時間和人員流動之後,這些文件就會成為固定的資料,因為它會被遺落在某個角落而無法找到,而openwrt社群的軟體開發文件和使用手冊均儲存到wiki上。wiki是乙個協同寫作和分享平台,允許所有人修改頁面。wiki使用簡化的語法來代替複雜的html語言,降低了內容維護的門檻。

trac是乙個整合wiki和問題跟蹤管理系統的專案管理平台,可以幫助開發人員更好地管理軟體開發過程,從而開發出高質量的軟體。任何人都可以使用該系統來提交bug並查詢當前的進展。trac採用面向進度的專案管理模型,採用里程碑的方式來組織開發。里程碑是以ticket(問題)來組織的,所有的問題都解決了,就到達了里程碑。但社群並不完全遵從這個標準,因為其開發人員全部是志願者,通常到了一定時間會發布乙個版本。

技術論壇是乙個技術討論的平台,每個註冊使用者均可發帖參與討論。在開發過程中,每個新版本的說明通過該平台發布。

社群的運轉是通過以上所述的六大基礎設施工具來實現的,我們通過這些工具可以理解到,開源軟體和社群的精髓在於其開放性,任何人員均可以通過網路自由地獲取其資訊並參與其中,這樣可以激勵每個人貢獻出自己的力量,開發人員同時也從社群獲得回報。開源社群的工具大多都是相同的,掌握這些工具可以幫助你深入了解開源社群和openwrt。

openwrt技術上成功的秘訣在於:統一編譯框架、統一配置介面(unified configuration inte***ce,uci)、開放的軟體包管理系統及其讀寫分割槽系統、系統匯流排ubus和程序管理模組procd。

統一配置介面使得數千個軟體在幾十個平台上以相同的方式來訪問配置資料,配置以統一格式的文字檔案進行管理。

開放的軟體包管理系統和讀寫分割槽系統使得軟體管理非常方便,並且能夠方便地處理軟體包的依賴關係。讀寫分割槽系統可以自由地安裝軟體,而不像大多數專有系統需要全部重新編譯才能安裝新的軟體。

系統匯流排ubus。每個程序均可以註冊到系統匯流排上進行訊息傳遞,並且提供命令列工具來訪問系統匯流排。

程序管理模組procd。每乙個程序交給procd來啟動,並在意外退出之後再次呼叫。

所有的這些功能並不是一次性設計出來的,而是隨著時間的推進,根據使用者和開發進展逐步發展起來的,每一種技術都有其獨特的價值。

那麼怎樣向openwrt提交**呢?

《智慧型路由器開發指南》 1 2 整體功能元件

1.2.1 整體架構 路由器的典型架構劃分為管理平面 控制平面和資料 平面,如圖1 1所示。管理平面是提供網路管理人員使用uci web snmp和tr069等方式來管理路由器,以及執行這些管理功能所需的配置命令等,管理平面提供了控制平面正常執行所需的配置引數。控制平面用於控制和管理所有網路協議的執...

智慧型路由器 原始碼追蹤路由器啟動過程

首先來張圖簡要的從原始碼的角度展示一下linux核心的路由器啟動過程 看不清的話建議放大後檢視 下面的重點是關注一下,kernel啟動後,從第乙個使用者程序執行,到系統啟動完畢,做了哪些事。1.路由器核心啟動執行流程 uboot在設定好一些環境引數後會將pc指標指向核心 從此cpu就交由linux全...

迅雷智慧型路由器怎麼賺錢 迅雷路由器賺錢原理知識介紹

迅雷路由號稱 全球第一台會賺錢的路由器 原因就是其內部整合了一款名為 迅雷水晶 的功能,開啟該功能,即可有效利用家庭閒置頻寬,進行水晶挖礦,並獲得現金收益。那程式設計客棧麼迅雷路由器怎麼賺錢?其賺錢原理又是什麼呢?下面我們小編來為大家介紹下程式設計客棧。迅雷水晶www.cppcns.com工作原理 ...