满意答案
q452801402
推荐于 2016.06.21
采纳率:58% 等级:10
已帮助:566人
openwrt最早就是基于linksys wrt54G的固件开发而来。linksys wrt54G就是一个嵌入式linux。openwrt在基于wrt54G的内核时,使用了buildroot框架,后来重构时,使用了buildroot2框架。buildroot框架使得添加一个app变的非常方便,所以你用openwrt做开发,无论是添加内核模块还是上层应用,都很简单方便。而linux嵌入式的原生sdk,要加一个上层应用的话,需要你自己去添加不少的Makefile内容,才能编译进去。
openwrt社区强大,提供的app特别多,功能强大,勾选某个app即可。原生linux就需要你再手动移植了。
openwrt提供了jffs文件系统,配置参数使用uci,这也是得上层应用的开发变的更便捷。原生嵌入式linux的话,一般不提供可写文件系统,配置参数是直接用二进制的方式操作flash,比如mtk linux sdk提供的nvram之类的。这种方式灵活性就不如文件系统。但是没有文件系统的优势也很明显,占用空间少。
以上都是从开发便利程度讲的。至于说openwrt和原生嵌入linux本质的区别,openwrt自己做了不少修改,比如使用procd替代init,添加preinit阶段。openwrt实现的ubus通信机制,可以在上层应该开发进程间通信时,更方便使用。netifd进程管理网络等。追问: 我说的是 openwrt 和嵌入式Linux,就是 内核和驱动这方面的。
还有 oepnwrt,路由器上门的 协议 复杂吗?
追答: OpenWRT毕竟已经发展了很多年了啊(我印象里最少5年了吧),国内的各大厂商的智能路由也都是从OpenWRT改来的,用户基数大,整个环境也比较成熟(这个很重要,开源软件最难找的就是Documentation)。不过国内的开源开发者貌似没有国外的活跃,写档案的很少,要看的话英文的档案比中文的多很多。
OpenWRT的路由协议是标准的Linux网络协议(TCP/IP和iptables),要说和其他版本有差异也是很小的差异,基础的技术和理念是一样的
00分享举报