参考:http://news.hiapk.com/anzhuo/20131113/1465009.html
一、引 言
每部具有移动通信功能的手机都运行着两个操作系统:
在终端用户熟悉的Android和iOS外,
还有一个实时操作系统 (RTOS) 管理着无线电功能。
RTOS 这个操作系统储存在固件,运行在基带处理器上,这些基带RTOS系统都是私有的。
例如,运行在高通基带处理器的RTOS系统叫AMSS,基于高通私有的REX内核,由69个并发任务构成,处理从USB到GPS的一切事物,它运行在一个 ARMv5处理器上。这些私有闭源的软件从未经过恰当的同行评审,实际上质量堪忧。
再例如,MTK 平台采用的是Nucleus OS,Nucleus是Accelerated Technology公司开发的嵌入式RTOS,使用标准C开发,其中Nucleus Plus提供源代码下载。Nucleus支持FAT、CD-ROM 文件系统。
Luxembourg大学的安全研究员Ralf-Philipp Weinmann 逆向工程了高通和英飞凌的基带处理器软件,轻而易举的就发现了大量的bug。这些漏洞可以让攻击者远程执行代码,导致设备崩溃,可以用Hayes命令集悄悄启动自动应答。
二、瑞典RTOS供应商Enea公司(OSE/OSEck RTOS)
详情请参考: Enea公司官网: http://www.enea.com/solutions/rtos/ose/
Enea OSE是一款稳定、高性能的实时操作系统,它专门针对要求真正的确定性实时行为和高可用性的多处理器系统进行了优化。对于从手机和汽车到医疗仪器和电信基础设施的许多系统,它缩短了研发时间,提高了可靠性并降低了生命周期维护成本。
1. 针对手机应用处理器的OS(如Windows Mobile\Windows CE\Symbian\Linux和Android) 在实时性能上要差一些。
2.针对手机基带处理器的RTOS: OSE 是一个紧凑的、可靠的、高性能的RTOS,专门针对分布式容错多内核系统进行了优化。它的目标应用市场是对实时响应性能要求非常高的手机基带处理器和基站用户线路接入卡,尤其适用于基于多内核处理器或分布式的多处理器的应用场合。
2008年全球有4亿部新手机采用了Enea公司的OSE/OSEck RTOS来实现,同时OSE/OSEck RTOS也被用在全球约50%的基站设备里,而且客户大多是全球第一流的系统供应商,包括:爱立信、诺基亚、诺基亚-西门子, Alcatel-Lucent、摩托罗拉、富士通、Infineon、Agere、波音、三星、索尼-爱立信、Yamaha、华为、中兴、大唐和中国普天等。
“OSE 在手机基带市场上可以说是一枝独秀。”Enea 公司亚太区副总裁Dan Andersson 很自豪地说:“OSE 是一种模块化的解决方案,适用于从超低成本手机到智能手机的全部手机市场。它既支持DSP、RISC基带处理器和应用处理器,又支持包括Linux在内(OSE 虚拟机技术)的任一应用OS,可扩展性和移植性非常好,是一种非常好的长远投资选择。”
OSE 经久不衰的成功奥秘是它的模块化、分层架构和直接异步消息传递设计。这一内在的分布式架构在确保高性能的同时,允许程序员对复杂的应用进行概括、分割和开发,这类应用可以是单一CPU系统,也可以是大型的、分布式多CPU和多内核系统。
Enea 还可提供一个可选的OSE仿真环境,即OSE Soft Kernel,它允许OSE进程运行在Windows、Linux或Solaris宿主机上。它也可以与一个运行中的实时系统一起工作。这使得设计人员能够建立混合式软/硬件OSE目标环境,从而使得设计师可以在宿主机上运行一部分应用,并在硬件到位后移植到真正的目标板上。
多核处理器对OS的挑战是,OS也被要求并行地工作。对多核RTOS的要求是必须为最大程度地发挥出多核应用的性能提供非常好的支持,以及支持扩展到更多内核的处理器,同时保持标准的RTOS实时特性,如响应确定性和中断时延。RTOS(实时操作系统)必须提供一种简单的、灵活的和统一的编程环境,它可以提供下列功能,如负载平衡、启动加载、文件系统和联网。
OSE 有四大独特技术优势,分别是:可移植性好、可扩展性好、更高性能和更好响应确定性。
三、瑞典RTOS供应商Enea公司(OSE/OSEck RTOS)技术详解
1.纯SMP模式的缺点
SMP(对称多处理) 模式指采用一个RTOS来管理一个处理器上的所有同类内核,或一块板子上的多个同类处理器。这种模式需要很多个不同的锁定机制,并需要频繁进行同步操作。从软件管理角度来看,SMP 模式是非常容易管理的,因为它创建了一个高度抽象的硬件资源,从而很容易实现各CPU上的负载平衡。
在很多情况下,高度抽象的硬件资源是一种优势,但当某个应用的I/O变得非常密集时(如在嵌入式数据报转发/路由应用中),这一抽象层就会带来很大的开销。在应用层上的共享存储编程模型的原则是基于使用存储器中可变的共享对象,这对多核系统的可扩展性来说是一种固有的瓶颈。这将不可避免地导致很难扩展到更多的内核。
这一点,再加上在许多情况下用SMP来实现多个内核比较复杂这样一个事实,使得采用SMP模式的多处理器系统的响应确定性不是那么好,从长期角度来看,这也使得传统的SMP模式不太适合用来实现高速数据包处理应用。
2.纯AMP模式的缺点
AMP(非对称多处理)模式使用的方法是,每个内核都运行一个属于它自己的完整的、单独的操作系统或应用框架(一种简化版RTOS的替代说法)。这种模式允许不同内核运行不同的RTOS。AMP系统的优势是每个内核可实现高性能,以及它可很好地扩展到多个内核。使用AMP模式和虚拟化技术也是一个能够复用传统单核设计的办法。
AMP模式的缺点是OS不能为分布式应用的负载平衡或OS资源管理提供支持。此外,采用AMP模式应用的配置、加载和启动也具有内在的设计复杂性。
3.OSE混合模式的独特优势
OSE 采用了独特的SMP(对称多处理)和AMP(非对称多处理)混合模式来实现最大的设计灵活性,这一模式既可克服AMP模式或SMP模式的缺点,又可以融合它们各自的优点,OSE 的这种独特的多核设计架构可以提供裸机(Bare Metal)模式的性能,并同时保有SMP模式的易用性和AMP模式的可扩展性及确定性。OSE 的多核支持可为以前的OSE应用提供完全的向后兼容性,从而使得用户可以保护它的软件投资。
OSE 是 一个真正的分布式操作系统,它使用了一个基于消息的编程模型,这可提供应用位置的透明性。OSE 架构是一个非常模块化和可扩展的架构,由运行在一个微内核顶部的大量运行时组件构成。
OSE 内核的开发基础是进程之间的消息交换,这一进程间通信(IPC)机制是OSE编程模型的基础,它的实现形式是一个简单的API,用于分布式系统上不同进程/线程之间的消息交换,这些进程/线程可运行一个、或几个处理器节点上。OSE 还提供了一个寻址模式来实现应用的可扩展性,这使得一个系统可以运行在一个处理器节点上或分布式集群的多个节点上,而无须改变程序代码。
当多处理器在物理上是分开的时,OSE 内核使用IPC协议LINX传递消息。LINX 可使得基于同一背板的不同插卡上的处理器、同一插卡上的不同处理器、以及同一芯片上的不同内核之间相互之间保持透明度,它使得用户很容易实现负载平衡。
4.OSE 同时支持 RISC CPU和DSP
(1).Enea OSE组成
Enea OSE 由OSE Delta、OSEck、OSE Epsilon、Optima和LINX组成:
OSE Delta支持大部分的 RISC CPU,包括:ARM、XScale、MIPS、PowerPC;
OSEck 是 Enea 专门为DSP优化而设计的内核;
OSE Epsilon支持MCU和SoC,该内核100%用汇编编写,因此占用存储空间极小;
Optima是基于Eclipse的集成开发环境或工具,主要用于开发应用程序;
LINX 是一个分布式处理器间或多个处理器内核间进行通信的中间件。
(2).Enea OSE支持架构
在RISC处理器方面,目前最新的OSE支持XScale、ARM、PowerPC和MIPS32架构的RISC处理器,包括:ARM7、ARM9E、ARM10、ARM11、XScale、IBM PowerPC4xx、IBM PowerPC7xx、Intel网络处理器IXP2400/2350、Freescale MPC86xx (支持多核MPC8641D)、Freescale MPC85xx(支持多核MPC8572DS)、Freescale MPC83xx、Freescale MPC82xx、Freescale MPC74xx、TI所有OMAP处理器和MIPS32/64处理器。
在DSP方面,OSE 支持TI的所有DSP器件和内核、Freescale MSC8101/03、Freescale MSC8102/22/26、Freescale MSC8144、SC120/SC1200、SC140/SC1400、SC2400/SC3400、ADI TigerSHARC (TS101S and TS201S)、ADI Blackfin、Freescale MPC5xx/55xx、LSI Logics ZSP400/500、STMicroelectronics ST100/120/…、Agere Systems dsp16k、CEVA的DSP及其内核。