自从1991年Linux次面世以来,任何人也不会想到这个不起眼的操作系统现今会应用得这么广泛。无论是从嵌入式领域的智能手机到小型估算服务器都可以找到它的身影,但是无论哪些工作它都完成得十分出众,由于Linux的开放性决定了其自身可以按照使用领域而高度订制。作为一个开源软件,当前业界的工业标准可以快地支持任何刚发布的硬件产品。同时,被世界各地的商业公司和志愿者一起参与开发和测试,它也弄成了非常稳定的操作系统之一。
Linux的设计原则决定了它的无所不能,并且对于特定领域它并不是的解决方案。同样对于嵌入式联通领域来说linux apache 虚拟主机,为了追求满足联通领域的高实时性和高吞吐量要求,你们通常都采用传统的RTOS+Linux+运行环境。

在传统构架中(参见图1),数据面处理采用RTOS+CPU/DSP形式,主要处理底层合同数据业务,通过RTOS的高实时性及多核CPU/DSP来达到性能需求。Linux自身的实时性较差,而且比较适宜于高负载的复杂合同处理,因而通常用于完成用户控制平面合同的处理和IP转发等功能。这个方案在性能上可以保证网通产品的使用需求,但系统中存在多个处理器和多个不同操作系统平台,对于用户的维护和后续升级管理带来很大负担,同时也难以满足当前的低成本和低帧率要求。
图1:典型的联通基站系统结布光
随着近些年来处理器硬件技术的急速发展,处理器的能力越来越强,多核平台早已广泛地应用在联通领域,尤其是在ARM公司将CortexA15引入联通基站领域后,整合单芯片解决方案将成为业界主流。并且软件领域的发展相对滞后,尤其是怎样在SoC单芯片硬件环境下保证用户已有成熟业务软件的承继使用,是每一个网通设备制造商关心的问题。

简单的解决方案是如图2将Linux和RTOS根据AMP形式独立运行在多核CPU的不同核上。这些方案可以保证高实时能力,同时可以防止用户应用软件的更改。并且该方案的问题是两个操作系统要求在硬件资源使用上独占升级linux内核,须要在使用前静态分配好,系统运行后则难以动态分配,没有办法做到资源共享。同一个硬件环境下同时运行两个独立的系统也带来了运行安全方面的隐患。综上所述,AMP方案前期设计简单,方以便原先成熟软件集成,并且后期维护成本较高,同时导致了硬件资源的浪费。
图2:AMP解决方案构架图
LinuxKVM是基于Linux内核的虚拟机制升级linux内核,通过KVM可以在其上虚拟出原有RTOS所须要的运行环境(参见图3)。比如我们可以将原有业务软件以及原有的RTOS一齐移植到KVM的虚拟环境中,这些方法对业务应用软件不须要任何更改。同时,整个系统硬件资源也由Linux统一分配,相对AMP方案避开了硬件资源的浪费。KVM机制可以做到系统的安全隔离,保证了联通系统的运行安全。并且该方案存在实时性较差(尤其是运行在Linux内核上RTOS的实时性),很难应用于联通合同等单播要求较高的场合。

图3:LinuxKVM解决方案
怎样在Linux基础上提供愈发高效的实时处理能力,同时又简化多操作系统并存带来的软件复杂性?因此,Enea(宜能)公司在用户空间实现了LWRT(Light-weightRun-timeThreading,轻量级运行环境)。LWRT是针对多核使用场景设计的,它基于Linux用户空间的标准Pthread作为运行载体,并在此基础上实现了可确定的调度方法、信号机制和显存管理。通过这些方法,LWRT内部的线程切换和讯号处理不再借助Linux内核调度机制,而是完全在用户态的LWRT内部实现。这在降低系统开支的同时,也实现了严格意义上的实时切换。图4描述了基于LWRT联通基站软件构架。
图4:LWRT多核解决方案

为了保证整个LWRT的实时性,我们须要将其承载的容器LinuxPthread绑定到一个数学内核上,通过这些方法使LWRT像单独运行在这个数学内核的传统RTOS一样。同时,我们在LWRT上设计了用户态中断处理模型,将整个中断处理过程放到用户态进行。在Linux内核只须要在上半部中向LWRT发出中断讯号,而所有的下半部处理完全实现在用户态的LWRT中。整个中断处理不再有内核互斥锁的影响,因而保证了高实时处理能力。
先进的设计保证了高效的性能,在一个实际测试环境中对于一个简单的“信号触发-线程切换-讯号接收”的线程切换模型,LWRT可以在不超过200个周期内完成,且该数据不会随着CPU占用率增高而深受影响,而在同一硬件条件下,采用Linux标准线程完成同样的切换动作须要大概3500个时钟周期,测试解决见图5.整个切换过程达到了高实时性要求。Linux中将不再只是运行控制面代码,用户完全可以将数据面处理迁移到Linux上。基于这些方案我们将不再须要RTOS,而是将RTOS的功能基于LWRT来提供。
目前整个联通领域向IP化发展,针对于IP数据处理,Enea实现了PAX(数据包加速基础)解决方案。PAX同样运行在Linux的用户态。
它实现了基于图形形式现实的IP报文剖析处理流程,在PAX中可以完成IP转发、IPSec、流量控制和ARP/WLAN集线器,以及数据包检测DPI等IP通信中消耗资源的处理。针对于数据面的这种处理过程不再依赖于原有Linux内核IP合同栈实现,而是由PAX及其相关的硬件加速器一起完成。这样便将原有LinuxIP转发能力提升数倍,而特别适宜于可扩充、高吞吐量和低信噪比的IP合同处理,尤其适用于基于IP的无线基站、控制器、智能防火墙、入侵监测系统和防病毒扫描网段等产品中。同时,PAX提供的图象化追踪(tracing)和剖析(profiling)功能可以方面用户找出系统困局所在,进行针对性优化。
联通级应用对产品的可靠性和稳定性的要求极高,因此Enea将多年成熟的软件开发流程引入了Linux的开发和维护中。这样保证了所有用户的可选软件包都是在不同硬件平台下严格验证过的。作为开源社区成员,我们也密切监视开源社区的安全漏洞和Bugfix修补情况,并在全面验证后将其列入EneaLinux产品中。为了更好地保护用户在软件领域的投资,在EneaLinux的升级版本中可以保证EneaIPR的向后兼容。这将确保对每一个硬件平台的Linux内核进行常年支持。另外,所有目标平台均采用Linux3.0.x系列内核linux查看进程,但是每18个月更新一次内核版本。依据与顾客达成的合同,Enea也可愈加频繁地更新内核版本。
