OpenWrt高清无码(2)OpenWrt的历史

tags: openwrt tutorial

OpenWrt的历史

故事要从一款Linksys的路由器WRT54G说起。

2002年, Linksys公司推出了一款无线路由器叫WRT54G。这款路由器性能与外观并无过人之处,却吸引了很多Hacker的目光。因为诸多迹象表明,WRT54G中使用了Linux操作系统。

题外话:2002年,既是好久远的年代,又像是昨天一样。那时只有高端商务人士才用得起笔记本电脑,普通电脑都配的都是又大又沉的CRT显示器。那时宽带普遍还在1M、2M的阶段,很多数还没有听说WiFi这个技术。那时的手机还是诺基亚的天下,而且绝大多数手机都是没有WiFi功能的。甚至有传闻,中国境内销售的手机都要禁止带WiFi模块,说是中国要强推自己的WiFi标准(即WAPI)。现在想来,历史有时候跟搞笑一样。

题外话2:Linux是一个基于GPL协议开源的操作系统。GPL是一个开源代码使用协议,它有一个特点,可以形象的称之为“传染性”,即如果你使用或者修改了基于GPL协议的源代码,那么你的代码也需要按GPL协议开源。GPL协议看上去有一点不近情理,但事实上它一直是开源项目的灵魂,是众多如雷贯耳的开源项目得以发扬光大的理论支撑。GPL协议倡导者是Richard Stallman,关于这尊巨神的神迹,我也许会写点东西鼓吹一下。作为自由软件运动的精神领袖,他想通过GPL这种形式的约束,阻止个别人或者组织将开源项目变成自己的私产。可惜的是,国内的很多公司缺乏契约精神,并没有自觉的遵守这一约定。事实上,GPL在很多国家是具有法律效力的。

回到WRT54G这款产品上来,当时有诸多证据表明,WRT54G的代码是基于Linux二次开发的结果,因此开源界呼吁Linksys按GPL协议的要求,将WRT54G开源。经过一些法律程序,Linksys最后同意把WRT54G的源代码开放。

这下就热闹了,WRT54G成了黑客、极客们一个极佳的玩具。越来越多的人开始研究和维护WRT54G的代码。他们在Linksys的代码基础上修修改改,增加一些功能,修补一些bug,并且逐渐形成了一个一个的爱好者社区。这些社区中,后来比较有名的有DD-Wrt,Tomato,OpenWrt。

OpenWrt的Wrt三个字,最早就是来源于WRT54G这款产品,意思是开源的路由。这个社区的玩法比较特别,它并不直接继承Linksys的源码,而是把Linksys的源码做为一个参考,从头到尾自己来实现一个独立的路由器系统。OpenWrt最初的只在WRT54G系列上折腾,后来它成功的扩展到其它一些品牌的路由器上,进化成了一个通用的开源路由器系统。

2012年6月,OpenWrt核心成员之一Jo-Philipp Wich在一次针对OpenWrt的演讲里回顾了OpenWrt的开发历史。显然他是从开发者角度来看的,因此里面充满了一堆不知所云的术语。

  • 2003: Linksys released the WRT54G
  • 2004: OpenWrt.org appeared, project based on Linksys GPL sources, later rebuilt from scratch using the uClibc Buildroot and only minimal Kernel diffs
  • 2006: X-Wrt project started
  • 2006: Buildroot-NG introduced, major rewrite of uClibc buildroot
  • 2006: UCI is developed, gets integrated into OpenWrt
  • 2008: UCI gets reimplemented in C, OpenWrt switches to UCI configuration
  • 2008: LuCI project started
  • 2008: ath9k hits trunk, OpenWrt gains 11n support
  • 2011: netifd gets developed
  • 2012: switch to netifd

我们可以从另一些角度来看。首先是版本更迭的历史(数据来自wikipedia):

代号版本时间内核版本第三方软件
White Russian0.92006-012.4.30≈ 360
Kamikaze7.062007-062.6.19≈ 750
Kamikaze7.072007-072.6.21≈ 790
Kamikaze7.092007-092.6.21≈ 630
Kamikaze8.092008-092.6.26≈ 1400
Kamikaze8.09.12009-062.6.26≈ 1400
Kamikaze8.09.22010-012.6.26≈ 1400
Backfire10.032010-042.6.32≈ 2350
Backfire10.03.12011-102.6.32≈ 2950
Attitude Adjustment12.092013-043.3≈ 3450
Barrier Breaker14.072014-103.10.49未统计
Chaos Calmer15.052015-093.18.20未统计
Chaos Calmer15.05.12016-033.18.23未统计
Designated Driver待定待定≥4.1未统计

从上面这张表可以得到这几个信息:OpenWrt版本的推进越来越快,紧跟Linux内核的步伐,第三方软件包越来越多。都是好消息。

随着这几年WiFi普及的热潮,路由器受到的关注越来越多。越来越多的OpenWrt爱好者进入这个社区。

谁在开发OpenWrt

Openwrt的参与者众多,但核心开发人员并不多,你可以在https://dev.openwrt.org/wiki/people看到一些介绍。

这份名单已经比较陈旧了,很多成员都不再活跃。

PS:网上找到一张许多成员的合照,大约是09年的,从左到右依次: Hamish (hcg), Felix (nbd), Lars, Imre (Kaloz), Nico, Peter (noz), Mirko, John (blogic)。不少人都频繁在出现在OpenWrt的commit history和邮件列表里。

OpenWrt的重生 - LEDE

就在我开始写这篇文章的时候,OpenWrt社区里发生了一件大事。2016年5月4日,核心成员Jo-Philipp Wich在OpenWrt邮件列表里发了一封邮件,声明原OpenWrt的几位核心成员决定放弃当前的OpenWrt项目,重新启动一个项目叫LEDE。

Hi,

We'd like to introduce LEDE, a reboot of the OpenWrt community. The project is founded as a spin-off of the OpenWrt project and shares many of the same goals.

We are building an embedded Linux distribution that makes it easy for developers, system administrators or other Linux enthusiasts to build and customize software for embedded devices, especially wireless routers. The name 'LEDE' stands for 'Linux Embedded Development Environment'.

Members of the project already include a significant share of the most active members of the OpenWrt community. We intend to bring new life to Embedded Linux development by creating a community with a strong focus on transparency, collaboration and decentralisation.

LEDE’s stated goals are:

  1. - Building a great embedded Linux distribution with focus on stability and functionality.
  2. - Having regular, predictable release cycles coupled with community provided device testing feedback.
  3. - Establishing transparent decision processes with broad community participation and public meetings.

We decided to create this new project because of long standing issues that we were unable to fix from within the OpenWrt project/community:

  1. Number of active core developers at an all time low, no process for getting more new people involved.
  2. Unreliable infrastructure, fixes prevented by internal disagreements and single points of failure.
  3. Lack of communication, transparency and coordination in the OpenWrt project, both inside the core team and between the core team and the rest of the community.
  4. Not enough people with commit access to handle the incoming flow of patches, too little attention to testing and regular builds.
  5. Lack of focus on stability and documentation.

To address these issues we set up the LEDE project in a different way compared to OpenWrt:

  1. All our communication channels are public, some read-only to non-members to maintain a good signal-to-noise ratio.
  2. Our decision making process is more open, with an approximate 50/50 mix of developers and power users with voting rights.
  3. Our infrastructure is simplified a lot, to ensure that it creates less maintenance work for us.
  4. We have made our merge policy more liberal, based on our experience with the OpenWrt package github feed.
  5. We have a strong focus on automated testing combined with a simplified release process

If you're interested in participating or want to learn more about the project, check out https://www.lede-project.org/.

Sincerely,

Jo-Philipp Wich
John Crispin
Daniel Golle
Felix Fietkau
Hauke Mehrtens
John Crispin
Matthias Schiffer
Steven Barth

Jo-Philipp Wich称作出这个决定是因为OpenWrt原社区的管理和运作存在一些无法治愈的固疾,希望通过重启项目的方式来解决,但实际情况未必是这样,很可能是因为涉及到一些商业利益问题。

最近几年高通与OpenWrt社区走得非常近,据称高通内部已经将OpenWrt作为其无线路由方案的标准SDK。高通从商业利益出发,希望扩大自己对社区的影响力,这可能让许多成员感到不适。最终导致了OpenWrt社区的分裂,核心成员出走。

怎么感觉有点像MySQL与MariaDB的尴尬关系。

不管将来是叫LEDE也好,OpenWrt也好,都是同源的项目,代码也是一样的,不影响后面的学习。