第二十五期 总结《路由器就是开发板》

https://blog.csdn.net/aggresss/article/details/52753089

        在读《人人都是产品经理》这本书时,我最大的收获就是:不光要低头拉车,还要抬头看路。研究技术为了一个问题不吃不睡是经常的,但为了一个超出个人挑战能力的问题浪费时间而影响到团队的进度是万万不可取的。看到有人时不时晒加班博得大家得认可,聊天时总要把自己怎么怎么辛苦和勤奋挂在嘴边,我觉得这都是在用战术上的辛苦来掩盖战略上的懒惰。这一期我们来分析一下无线路由器的行业环境和前景,在埋头学习技术的同时也要分析一下当前的大环境。
        在国内OpenWrt已经成为智能路由器的标配,只要标称智能无线路由的产品几乎都是在OpenWrt上修改而来的,原因很简单,OpenWrt作为一个有12年历史的Linux发行版本,已经建立了足够成熟的生态系统,而且完全开源,只要在上面搭载一个漂亮的UI,就可以变现成为一个产品,这种商业诱惑是没有人会拒绝的,虽然听起来很简单,但即使是百度这样的互联网巨头作为一个硬件外行公司推出的小度路由也悄然失败,可见无线路由这个产业是有很多坑的。我们先来分析一下OpenWrt为什么在众多的Wrt中脱颖而出,网络上有人总结了5点:
1、SquashFS与JFFS2文件系统的整合形成的overlayfs机制。
        对用户而言,OpenWrt的整个文件系统是完全动态可读写的,而其中的固件部分是用SquashFS实施的只读压缩文件系统,而用户所有的对文件系统的增删改都是用类似“差值”的形态存储在JFFS2文件系统中的,二者用overlayfs机制黏合,对用户完全透明。因此我们可以在文件系统中肆意发挥、随便折腾,出现任何问题则可像手机一样恢复出厂设置,并提供fail-safe模式帮助用户修复系统。而在传统的嵌入式Linux里,固件是静态的,对系统做任何一点与可运行程序相关的变动,比如增加一个模块,删除一个应用程序,都要重新编译全部固件,并重新刷写,就好比你一个Android手机要升级微信就要重新刷机。这种反人类的传统文件系统完全阻挡了非专业爱好者进入嵌入式Linux这一领域。
2、UCI(Unified Configuration Interface)
        帮助用户在任何平台的OpenWrt上用同样的方法配置系统、网络和应用。在Boardcom的平台上,在Atheros的平台上,甚至x86的平台上,修改系统配置均为同样的命令。而UCI的机制并不是二进制硬件虚拟层实现的,是由Linux shell脚本实现的。这毫无疑问是一种别致的创新,比Android来的轻巧得多。OpenWrt里的Linux shell脚本用得很帅很高端,那种感觉怎么形容呢?就好像精通十八般武艺的高手有一天特别复古地拿起铅笔刀在硬盘上刻出来了系统,就是这种感觉。
3、Opkg包管理系统与丰富的软件源
        是一个与桌面级Linux使用的apt-get、yum等同级别的包管理系统,使用形如:opkg install xxxx-app的命令从互联网软件源中安装大约3000余种各种软件。3000款软件,数量没法跟手机的应用市场比,但是要知道,这里头的任何一个软件都来头不小,是经过Linux社区千锤百炼的东西,一个应用折腾一个月都玩不够。类型覆盖网络、音频、视频、编程开发、Linux系统管理等。当然,如果是专业比较偏的东西OpenWrt的软件源里还是不够完善,比如笔者团队用到的OpenCV的东西,源里就没有,就靠自己交叉编译了。
4、Luci WEB界面系统
        除CLI命令行终端界面外,不同于桌面级Linux使用屏幕GUI作为交互界面,OpenWrt使用WEB界面交互。而不同于传统路由器web管理界面的是,luci是用户可订制的,安装了支持luci的软件后,WEB界面系统就中出现了新的模块,而opkg本身也web化了。这个特征让用户感觉很像手机的app store。
5、积极、完整的社区
        OpenWrt与Arch Linux、Debian、FFmpeg、MinGW、PostgreSQL等开源领域重要的软件一起,是Software in the Public Interest, Inc.资助和保护的项目,OpenWrt社区在美国、欧洲、中国、俄罗斯有大量的追随者,有不计其数的分支和代码贡献者。社区活跃度非常高。
        这几个特征加起来,赋予OpenWrt比肩桌面级Linux和现代移动操作系统(Android)的用户体验,完全回避了传统嵌入式Linux的磨叽和枯燥,使一个小小的路由器真正成为完整的、现代的、开放的计算系统,降低了入门门槛,产生了大量非嵌入式专业的爱好者群体。OpenWrt框架的奠定者们和广泛的代码贡献者们,在桌面级和现代操作系统的理念下,也使OpenWrt成为嵌入式Linux领域个性十足而广受追捧的佼佼者。
        上面这几点中,我最看重的是第五点。社区对一个开源软件的发展起到了极大的推动作用,大家有秩序组织在一起,协作完成某个项目,同时有很多大的硬件厂商在幕后提供各种支持,甚至加入其中共同开发。而在国内相关社区里我们听到最多就是两种声音:第一种,某某大神放出一个含有各种广告和商业目的的固件,打着无私分享的旗帜,具体的源码根本不会公开;第二种,某某在商业项目中遇到问题,在论坛上各种发问,问题被解答后便悄无声息,根本不会回馈社区。这就是国内社区的大环境,所以当某位真正带动社区发展的个人或组织出现后,会显得格外耀眼。在这里发表一下个人观点:我们每个人都是开源软件的受益者,你周围的电子产品多少都会有一点开源软件的影子,只是你感觉不到,举一个最简单的例子Andorid就是开源的内核,IOS的底层也是基于开源内核FreeBSD和netBSD。当开源对你有帮助的时候一定要想着回馈,虽然个人的力量是有限的,但社区的良性循环就是依靠每一点星星之火的能量。
        眼下无线智能路由器的产业热度已经渐渐消退,大型团队入局,用户对产品越来越挑剔,获取流量的成本急剧攀升,越来越多的小玩家退场。路由器和手机行业有很大的不同,手机现在已经作为我们的一个器官每天与我们形影不离,而且我们经常花大量的时间与手机进行交互。但无线路由器却不同,用户最经典的做法就是,新路由器买回来,进行配置联网,成功后便扔到角落里,只要没有故障绝不多看一眼,所以在家用无线路由上面加的功能都不是大众用户的真正痛点,您没见TP-LINK的非智能路由器销量依然很高。所以我认为,家用路由器并不是OpenWrt的应用突破点,虽然OpenWrt作为家用路由器被大家认识,但它真正的用武之地是由路由器延伸出的其它领域,比如将OpenWrt植入到工业控制设备,前端数据采集设备,无人机,智能穿戴设备,所以在这里提醒大家,不要将OpenWrt局限在路由器上,我们可以把OpenWrt与一个最小系统结合,利用它的生态系统,结合自己独特的想象力,衍生出各种智能产品。
        在新型智能设备和机器人的热潮中,OpenWrt的价值也越来越得到人们的重视。相比Android系统,OpenWrt被认为是更加适应智能设备和机器人的平台。Android的整体设计构架全部着眼于重度依赖屏幕与人进行交互,导致从硬件到软件的设计上都严重依赖于图形界面的展示,有过多的GPU硬件加速和软件上的图形、3D库,而智能设备和机器人并不强调屏幕,相对更多地依赖于机械、网络与人进行交互,Android上的这些图形图像特征反倒成为影响功耗、系统尺寸、稳定性的负面因素。再加之相对于Android的Java虚拟机对效率的严重损耗,OpenWrt直接的原生二进制代码得到了更高的计算效率。在这个重新强调人工智能、机器学习,重新重视物理机械交互的新兴智能机器人的时代,我们有理由相信因为其纯正的Linux味道,小型化、亲近物理交互的特征,身为Linux社区与物理交互的最佳桥梁,OpenWrt会迎来新一轮的发展。
        WIFI使用的是不需要牌照的频谱,有着独特的优势,现在的5G也在向WIFI兼容,但WIFI的设计初衷并不是实现公众应用,所以WIFI在应用到大型场所的时候,同频干扰问题异常突出,这就需要从底层设计解决方案,现在的大厂商也都在陆续推出大型应用场景的解决方案,这也是一个很好得发展方向。
        OpenWrt之所以流行还有一个重要的因素是它的载体是随处可见的路由器,只要感兴趣,50RMB就能入手一个甚至更便宜,这种普及方式非常有利于兴趣产生后的实践过程,并不像航天梦想那样必须要有庞大的平台支撑才能展开。兴趣的产生只是一个开端,接下来面临的问题是怎样把兴趣变成能力,这个过程会淘汰掉一大批浅尝辄止的弟兄,有些问题的学习曲线不是三五年就能达到的,而且科班出身和扎实的基础知识是必须的。当技术控把兴趣转化为能力后问题又来了,能力还要转化为市场,市场的深奥可是技术宅们无法想象的,三分靠打拼,七分天注定。当市场成功后一定要回过头来回馈当初为你搭建兴趣平台的社区,比如现在阿里和百度越来越多的开源项目就是受益于开源并回馈开源的产物,这样才会形成一个良性循环。
        任何事物都有它的局限性,任何组织和个人的价值和能力也都是有限度的。
        由于时间和精力的因素,关于《路由器就是开发板》这个主题,我暂且写到这里,其实在我的规划里还有很多内容可以深入分析,比如U-Boot精巧的数据结构,OpenWrt的定制开发,这些东西都是很有意义的,这一系列只是作为一个入门级的科普材料让大家见笑了。当然,如果前几期的文章给了您很大的启发,让您产生了更多的想法,那我深感欣慰,因为这就是我的初衷。真的希望这只是一个开始,您可以在已有文档和思路的基础上迎接更大的挑战,得到更多的收获。
 

猜你喜欢

转载自blog.csdn.net/wxh0000mm/article/details/85613469