原厂SDK 我们所知道的BCM、MTK、AR等都是生产SoC(系统芯片,英语:System on Chip,縮寫:SoC)的,之所以在路由器里没有我们常见到的cpu,哪是因为这样的SOC里包括了HNAT、快速TCP包计算等等这样的硬件加速算法 模块,同时在这个SoC里除了CPU以外还有众多的接口,比如交换机、PCI-e、USB等。所有的这些东西要运行起来就需要驱动。所以SoC生产厂就在 Linux基础上进行了很多的加工,加入各种驱动,为了硬件加速,改kernel的接口。一切的一切都是为了让Linux能够支持这个SoC里的功能。为 了让最终的路由器生产厂生产及加入自己的功能,原厂都为客户提供SDK,这个SDK里就包括了一个基础的Linux和编译软件的环境。由于厂商为了让系统 足够的稳定,现在原厂SDK中的Linux都还在2.6.x的老旧年代。而且原厂的SDK要想得到,就需要和厂商签署保密协议和软件使用许可。所以在互联 网上我们一般无法得到原厂SDK的软件。 OpenWRT是一个开源项目,它的出现就是为了让每个人都可以有一个开放的运行环境,并且得到Linux里各种软件的第一时间的支持。所以 OpenWRT的Linux Kernel非常激进,但是正是因为它激进,所以在驱动上非常痛苦。OpenWRT的驱动通常是开源社区的同学们写的驱动,或是从原厂SDK中的二进制移 植。但是由于Kernel的过新,大量加速硬件的驱动都无法移植进来。不过还是有众多的爱好者喜欢OpenWRT,原因很简单,它可以高度定制。 从长远来看,基于Linux的操作系统会越来越多,原因很简单:
使用原厂SDK还是OpenWRT呢?这有几个不同的情况:
综上所述,表迷信哪个,要找到最适合自己的。 我们创业做智能路由器时就OpenWRT和原厂SDK做了很痛苦的挣扎,因为使用的芯片较新,我们在OpenWRT社区里折腾很久,最终 OpenWRT发布了一些支持新的SoC的版本。同时国内也有人将原厂SDK中的Kernel及驱动移植到了OpenWRT上来运行。经过大量的测试,我 们发现从稳定性、高性能上都不能达到我们的要求。所以最终在果壳路由器上,我们还是使用了原厂的SDK,一方面是因为我们必竟有商业化的第一时间原厂支 持,另一方面我们也认为稳定、高效是路由器的基础,如果这都做不到,哪么智能也就无从谈起了。 来源:雷锋网 |