本節書摘來異步社群《智能路由器開發指南》一書中的第1章,第1.1節,作者:張永智 ,李章明,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
openwrt是一個嵌入式裝置的linux發行版,以gpl許可協定發行。
openwrt項目始于2004年1月,其第一個版本采用了linksys的源碼。在linksys的代碼收費後,改為采用正式釋出的linux核心來內建,并将openwrt完全子產品化,不斷推出更新檔和驅動。openwrt的主要特點在于其高擴充性,并且檔案系統可寫,開發者無需在每一次修改後完全重新編譯,隻要編譯自己的軟體包即可,這樣就加快了開發的進度。另外openwrt提供了sdk,每個運作軟體均能夠以sdk來進行編譯,以軟體包形式進行安裝和解除安裝。其主要特點有如下幾個。
代碼裡不含第三方開源包,隻包含開源包位址連結。
編譯時自動下載下傳源代碼、打更新檔來滿足指定平台要求,并編譯。還可以修改makefile來下載下傳最新的軟體包。
使用luci作為最終使用者管理界面。luci以apache許可協定釋出web管理功能代碼。
uci通用配置管理方法。
通過腳本來調用iptables來實作防火牆功能,配置儲存在uci檔案中。
開放和可擴充的opkg格式安裝更新包。
openwrt曆史
openwrt在2004年由邁克·貝克和格裡·羅澤馬創立,到今天為止已經發展了12個年頭了。openwrt定期釋出版本,發行版本以代碼線和日期作為版本号。它的第一個正式版為kamikaze 7.06,第二個正式版本為backfire 10.03。
backfire
2010年4月7日,openwrt釋出backfire 10.03正式版。相對上一個穩定版本,其核心更新為linux 2.6.32,使用了新的web伺服器uhttpd,支援了一些新的平台硬體(如tp-link tl-wr1043nd等),增加了機器可讀的版本資訊/etc/openwrt_release。
2011年12月21日,openwrt釋出了backfire 10.03.1正式版。期間,openwrt釋出了6個rc版本。這一版本将核心更新為linux 2.6.32.16,修正了很多bug,并增加了對tp-link、tl-mr3420等的支援。
attitude adjustment
2013年4月25日,openwrt釋出12.09正式版。相對于backfire版本,attitude adjustment将核心更新至linux 3.3,改進了并行編譯支援;使用密文存儲密碼;各種防火牆功能增強;無線驅動更新及穩定性增強;新平台支援ramips、bcm2708(樹莓派)等;釋出鏡像檔案中支援網橋防火牆。
barrier breaker
2014年7月31日,openwrt釋出14.07正式版。相對于attitude adjustment版本,核心更新到3.10,增加了原生ipv6支援,檔案系統增強;uci配置增強,支援測試配置和復原最近工作狀态機制,增加配置更改按需觸發服務重新開機機制;網絡功能增強,可以支援動态防火牆規則,增加網橋的多點傳播傳輸到單點傳播傳輸的轉換等。
chaos calmer
openwrt于2015年9月11日釋出15.05正式版。chaos calmer中間釋出了3個rc版本。相對于 barrier breaker,其核心更新到了3.18;網絡功能增強,添加了多個3g/4g路由器支援,改進了ipv6等功能增強,增加了自管理網絡的支援;各種平台和驅動裝置的支援,例如飛思卡爾i.mx23/28系列等各種品牌,增加了樹莓派的支援。這個版本在64位平台的virtualbox下運作還存在問題。
注1:對于各種硬體平台核心版本可能不一緻。因為每個平台的核心版本在獨立的檔案中定義(target/linux/<平台>/ makefile:linux_version),在barrier breaker及以後的釋出版中,核心版本定義變量改為kernel_patchver。
注2:最新的兩個釋出版本沒有建立标簽,需要根據svn版本号來下載下傳代碼。
注3:2016年3月,openwrt已經從svn代碼倉庫切換到git代碼倉庫了,是以不再支援svn。