國美&華為,戰略合作簽約!
858
2025-04-05
可以實現路由器功能的開源軟件很多,為什么只有OpenWrt成功了?OpenWrt軟件成功的關鍵在于3個方面:領導者、基礎設施以及實現軟件的技術。通常領導者是最重要的,因為領導者決定著社區的規則和技術方向,但是每個人都是獨特的而且是無法復制的,因此通常無法借鑒。基礎設施和實現軟件的技術則是可以借鑒的。
OpenWrt社區采用六大基礎設施工具支撐整個社區的運轉,這六大基礎設施工具分別是代碼管理工具Git、郵件列表、自動構建工具buildbot、文檔管理工具WiKi、Trac和技術論壇。
代碼管理工具Git可以跟蹤文件和目錄的歷史信息,包含4個W(Who、When、Why和What),即誰做了修改,什么時間做了修改,為什么修改以及修改的內容是什么。此外,Git還支持分布式代碼倉庫,適合開源軟件項目的跨地域開發,這個工具可以讓每個人看到代碼的變化過程。OpenWrt經過了12年的發展,代碼倉庫還保留了最初的提交記錄。
郵件列表是代碼審查及代碼提交集成的地方,開發人員將修改代碼生成補丁發送給所有的郵件訂閱者,每個人都可以進行代碼評審,核心開發人員看到后會將代碼集成到代碼倉庫中。郵件內容可以永久保存到郵件列表中。郵件列表和普通郵件的主要區別在于訂閱機制和存檔機制,每個人都可以自由訂閱并查看歷史郵件。
自動構建工具buildbot的核心是一個作業調度系統,它會將任務排隊,當提供了任務所需的資源時,執行任務并報告結果。buildbot不僅僅支持持續集成及自動化測試,還支持應用程序的自動化部署和軟件發布的管理。同時在多個平臺開發時,通常最后的編譯驗證都是重復的,編譯機器人(buildbot)將這一部分接管過來,每日自動下載代碼進行編譯驗證,并將安裝包上傳到文件服務器上,如果編譯失敗則將用郵件通知感興趣的人。
文檔管理工具WiKi的特點是具有開放性,可以讓任何參與人員非常方便地進行編輯、訪問和搜索。大多數軟件公司的軟件文檔均保存為二進制格式,在經過一段時間和人員流動之后,這些文檔就會成為固定的資料,因為它會被遺落在某個角落而無法找到,而OpenWrt社區的軟件開發文檔和使用手冊均保存到WiKi上。WiKi是一個協同寫作和分享平臺,允許所有人修改頁面。WiKi使用簡化的語法來代替復雜的HTML語言,降低了內容維護的門檻。
Trac是一個集成WiKi和問題跟蹤管理系統的項目管理平臺,可以幫助開發人員更好地管理軟件開發過程,從而開發出高質量的軟件。任何人都可以使用該系統來提交Bug并查詢當前的進展。Trac采用面向進度的項目管理模型,采用里程碑的方式來組織開發。里程碑是以ticket(問題)來組織的,所有的問題都解決了,就到達了里程碑。但社區并不完全遵從這個標準,因為其開發人員全部是志愿者,通常到了一定時間會發布一個版本。
技術論壇是一個技術討論的平臺,每個注冊用戶均可發帖參與討論。在開發過程中,每個新版本的說明通過該平臺發布。
社區的運轉是通過以上所述的六大基礎設施工具來實現的,我們通過這些工具可以理解到,開源軟件和社區的精髓在于其開放性,任何人員均可以通過網絡自由地獲取其信息并參與其中,這樣可以激勵每個人貢獻出自己的力量,開發人員同時也從社區獲得回報。開源社區的工具大多都是相同的,掌握這些工具可以幫助你深入了解開源社區和OpenWrt。
OpenWrt技術上成功的秘訣在于:統一編譯框架、統一配置接口(Unified Configuration Interface,UCI)、開放的軟件包管理系統及其讀寫分區系統、系統總線ubus和進程管理模塊procd。
統一編譯框架使得數千個軟件以相同的方式進行編譯,并且可以在幾十個平臺編譯。每個軟件模塊按照相同的步驟進行代碼下載、解壓縮、打補丁、配置、編譯及生成安裝包。
統一配置接口使得數千個軟件在幾十個平臺上以相同的方式來存取配置數據,配置以統一格式的文本文件進行管理。
開放的軟件包管理系統和讀寫分區系統使得軟件管理非常方便,并且能夠方便地處理軟件包的依賴關系。讀寫分區系統可以自由地安裝軟件,而不像大多數專有系統需要全部重新編譯才能安裝新的軟件。
系統總線ubus。每個進程均可以注冊到系統總線上進行消息傳遞,并且提供命令行工具來訪問系統總線。
進程管理模塊procd。每一個進程交給procd來啟動,并在意外退出之后再次調用。
所有的這些功能并不是一次性設計出來的,而是隨著時間的推進,根據用戶和開發進展逐步發展起來的,每一種技術都有其獨特的價值。
本文節選自《智能路由器開發指南 》
內容簡介
OpenWrt是在實現路由器功能方面最受歡迎的開源軟件之一。本書基于OpenWrt,詳細介紹了智能路由器的開發。
本書共計15章,按照認識路由器的順序進行編寫,介紹了智能路由器、開發環境及編譯分析、OpenWrt包管理系統、OpenWrt配置、軟件開發、GDB調試、網絡基礎知識、路由器基礎軟件模塊、常用軟件模塊、IP路由、DNS與DHCP、iptables防火墻、UCI防火墻、UPnP、網絡測試及分析工具等。豐富的理論知識和代碼示例可以幫助讀者深入認識和理解OpenWrt技術,并能夠提升開發水平和開發效率。
本書適合軟件架構師、軟件開發工程師、軟件測試工程師以及計算機相關專業的學生閱讀。讀者通過閱讀本書,不僅可以掌握OpenWrt技術,還能進一步提升自己的軟件開發水平。
本文轉載自異步社區
原文鏈接:https://www.epubit.com/articleDetails?id=NC7E3EF9197400001D36316BA50C01D1E
軟件開發 編程語言
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。