Linux的开放性决定了其自身可以根据使用领域而高度定制。但随着近年来处理器硬件技术的飞速发展,处理器的能力越来越强,多核平台已经广泛地应用在电信领域,尤其是在ARM公司将Cortex A15引入电信基站领域后,整合单芯片解决方案将成为业界主流。如何在Linux基础上提供更加高效的实时处理能力,同时又简化多操作系统并存带来的软件复杂性,是每一个电信设备制造商关心的问题。
为此,宜能(Enea)公司在用户空间实现了轻量级运行环境(Light-weight Run-time Threading,LWRT)。该公司高级应用工程师高晓亮表示,LWRT是针对多核使用场景设计的,它基于Linux用户空间的标准Pthread作为运行载体,并在此基础上实现了可确定的调度方式、信号机制和内存管理。通过这种方式,LWRT内部的线程切换和信号处理不再依靠Linux内核调度机制,而是完全在用户态的LWRT内部实现。这在减少系统开销的同时,也实现了严格意义上的实时切换。
为了保证整个LWRT的实时性,Enea将Linux Pthread绑定到一个物理内核上,通过这种方式使LWRT像单独运行在这个物理内核的传统RTOS一样。同时,他们还在LWRT上设计了用户态中断处理模型,将整个中断处理过程放在用户态进行。Linux内核只需在上半部中向LWRT发出中断信号,而所有的下半部处理完全实现在用户态的LWRT中。整个中断处理不再有内核互斥锁的影响,从而保证了高实时处理能力。 (图片)
图1:Enea LWRT多核解决方案。 在一个实际测试环境中,对于一个简单的“信号触发—线程切换—信号接收”的线程切换模型,LWRT可以在不超过200个周期内完成,且该数据不会随着CPU占用率增高而受到影响。而在同一硬件条件下,采用Linux标准线程完成同样的切换动作,却需要大约3500个时钟周期,无法满足高实时性要求。Linux上将不再只是运行控制面代码,用户完全可以将数据面处理迁移到Linux上。基于这种方案我们将不再需要RTOS,而是将RTOS的功能基于LWRT来提供。
电信领域发展的另一个明显趋势是向IP化发展。针对于IP数据处理,Enea推出了PAX(数据包加速基础)解决方案,同样运行在Linux的用户态。高晓亮说,PAX实现了基于图形方式现实的IP报文分析处理流程,在PAX中可以完成IP转发、IPSec、流量控制和ARP/WLAN网桥,以及数据包检查DPI等IP通讯中最消耗资源的处理。
整个过程不再依赖于原有Linux内核IP协议栈实现,而是由PAX及其相关的硬件加速器一起完成。这样便将原有Linux IP转发能力提高数倍,非常适合于可扩展、高吞吐量和低时延的IP协议处理,尤其适用于基于IP的无线基站、控制器、智能防火墙、入侵检测系统和防病毒扫描网关等产品中。同时,PAX提供的图像化追踪(tracing)和分析(profiling)功能可以方面用户找出系统瓶颈所在,进行针对性优化。
电信级应用对产品的可靠性和稳定性的要求极高,为此Enea将多年成熟的软件开发流程引入了Linux的开发和维护中。在Enea Linux提供的开发工具中,用户依然可以找到Opitma调试分析工具,LTTng、oProfile、Gcov&gprof、valgrind等常用开源分析工具和Qemu主机仿真环境。此外,Enea方面承诺说,作为开源社区成员,公司会密切监视开源社区的安全漏洞和Bugfix修复情况,并在全面验证后将其纳入Enea Linux产品中。并同时保证每18个月更新一次内核版本,在Enea Linux的升级版本中可以实现Enea IPR的向后兼容。
|