1 研制背景
随着通信行业的快速发展,嵌入式软件系统得到越来越多的应用,诸如VxWorks、pSos等嵌入式实时操作系统的应用带来了人们对嵌入式软件开发的新思路和新需求。在屏蔽不同的硬件平台甚至不同操作系统基础之上,中间件、虚拟机等概念的引用形成了符合通信设备上应用软件不同需求的支撑平台,为上层的嵌入式应用软件的开发提供了统一接口,也为嵌入式软件提供了一种新的开发模式和实现思想。
1.1 市场需求
由于通信设备变得越来越复杂,导致嵌入式软件的复杂程度也越来越高,而中国企业目前设备的开发很多还是小作坊式的,重复开发严重,导致大量的资源浪费,同时也使得开发速度和产品质量难以满足市场发展的要求。如何通过平台技术简化软件的设计,通过模块重用的思想减少开发的工作量,提高系统的稳定性,成为一项十分紧迫的任务。经过多年的努力,中兴通讯已经在嵌入式软件系统开发方面取得了丰硕的成果和丰富的经验,嵌入式系统在中兴通讯的数据通信、光通信、移动通信等产品中得到了广泛的应用。在这种情况下中兴通讯提出了“嵌入式软件开发平台”项目并开始进行研究,目的是使嵌入式软件系统朝着通用化、标准化、系列化、模块化、平台化的方向发展,为系统内外的互连、互通、互操作提供稳定可靠的保障。
1.2 竞争需求
随着中国加入世界贸易组织,知识产权和产品特许费用问题越来越成为制约中国企业快速成长的阻碍,同时信息网络的安全也成为关注的焦点,但目前中国的主流通信设备中均使用的是国外嵌入式实时操作系统,研制具有完全自主知识产权的嵌入操作系统,掌握嵌入式软件的核心技术成为亟待解决的问题。中国很多软件公司和研究部门也进行了有益的尝试,但由于研究与产业的脱节,导致很多研究成果难以真正应用到实际产品中,更别说取代国外昂贵的嵌入操作系统。作为通信系统的关键,核心操作系统内核掌握在外国厂商手中,这不能不说是一个令人忧虑的问题。
Linux作为开放源码的自由软件,正越来越受到各大公司的关注,许多公司投入大量的人力物力进行相关研究,其应用的领域也从桌面系统逐步扩展到嵌入式领域。作为一种低成本的操作系统,对Linux在嵌入式实时系统中具体应用的研究,对操作系统内核技术的把握、分析和改造,并逐渐形成自己的核心技术,将会带来可观的经济效益和社会效益。因此嵌入式软件开发平台与Linux相结合,逐渐形成中国在通信领域软件方面的核心技术优势,对提高中国企业的综合竞争力有重要的实际意义。
2 体系架构
中兴通讯的面向通信行业的嵌入式软件开发平台将平台的体系框架定义在3个层面:嵌入式实时操作系统、符合通信行业需求的定制组件和中间件、通信应用的集成开发环境。平台在设计时注重满足高可靠性、实时性、自愈性、可维护性、简单性、易封装性、可移植性和可扩充性等要求。面向通信设备的嵌入式软件开发平台体系框架如图1所示。
在嵌入式实时操作系统层面,中兴通讯的嵌入式软件平台支持目前的主流嵌入式实时操作系统VxWorks、pSos,并在嵌入式Linux的研制中解决了在通信设备应用中的内核装载启动、驱动器实现、实时调度内核、任务机制构建、开发调试工具链等关键技术;嵌入式软件平台通过将嵌入式Linux的性能基准与通信行业的需求相结合,并结合数据产品和移动产品的测试验证了嵌入式Linux在通信设备上的应用稳定性和适用范围;嵌入式软件平台完成了在X86系列和PPC系列CPU上嵌入式Linux的应用研究和测试,并在手机终端上进行了xScale系列CPU的嵌入式Linux的应用研制,完成了嵌入式Linux对多种CPU的支持和应用。对于嵌入式Linux的开发调试工具链,尤其对Linux的内核裁减、二进制工具、交叉编译器、交叉调试器、应用程序函数库等进行了有针对性的研究,完成了嵌入式Linux的开发调试工具链的应用。
针对通信行业设备软件的一些特定需求(如配合通信呼叫流程设定的多线程调度,在单板软件运行过程中对内存动态分配的保护和出错定位,配合多种通信流程的大数目容量定时器的需求以及配合调试的仿真、测试等功能),平台实现了可定制的组件和中间件功能模块,包括调度管理、内存管理、定时管理、系统监控、异常处理、调试打印和文件系统等功能模块。
在通信应用的集成开发环境中,平台实现了在Windows NT的操作系统下,参考Tornado、Visula Sudio的开发风格,将功能组件和中间件的可视化配置功能、通信中有限状态机框架代码的自动生成功能、通信应用的测试仿真功能以及在线帮助功能等集成为通信应用统一集成的一套开发环境,成为配合平台的辅助工具集,并将继续完善形成通信应用的集成开发测试环境,以提高平台的应用规范性和可用性。
3 关键技术
中兴通讯的面向通信行业的嵌入式软件开发平台主要是为中兴通讯的多种产品提供稳定的操作系统支撑功能,屏蔽底层操作系统和硬件,向上为各处理机上的应用程序提供一个统一的运行平台。
3.1 嵌入式Linux
(1)嵌入式Linux的内核启动和装载
对于Linux内核,嵌入式Linux的内核启动和装载依靠装载器实现内核映像在内存中的放置,并从装载器接收内核启动时候的参数;对于嵌入式系统而言,当内核从装载器获取启动所需要的参数以后,系统进入正常的执行过程,装载器的功能就此结束。装载器的研究主要参照开发源码的U-Boot为原型,目前实现了X86、PPC、ARM的Linux装载器。
(2)Linux的可抢占调度内核
在原Linux的调度机制下,由于进程一旦进入内核空间就不会再被别的进程抢占,从而简化对数据进行的保护。因此,解决方案的关键是在中断控制器的中断出口处增加调度器运行机会,增加对内核的可抢占性,同时解决内核抢占性能增加后的数据保护问题。因为需要对SMP支持,Linux引入了锁机制,如Spinlock,以加强对内核空间数据的保护。可以利用这些锁机制改进Linux的内核调度性能,增加对内核的抢占性,即允许高优先级进程在内核空间也能发生抢占,同时保护内核数据不受影响,从而大大提高对具有高优先级的实时进程的响应性能。
(3)低延时调度内核
许多调度延时是由于长时间运行的庞大内核代码引起的,因此解决思路就是在这些代码中加入可进行调度的抢占点,降低调度延时。实现的关键是通过测试找出内核中容易引起长延时的内核代码,同时在这些内核代码处加入对调度器的调用。
3.2 操作系统抽象层
操作系统抽象层代码的作用是屏蔽低层操作系统与硬件平台的差异,它封装了操作系统的各种系统调用,如信号量、创建任务等,并向上层的面向通信行业的支撑功能库提供一致的接口。目前该抽象层可支持Linux、pSos、vxWorks及Windows系统。
3.3 功能组件库
功能组件库可扩充操作系统的功能,方便应用设计,使上层应用设计人员只需关心具体业务的实现,而不用深入了解低层的操作系统的细节。功能组件库包括支撑功能库、业务支撑功能库、内存数据库、通用算法库等。
(1)支撑功能库
支撑功能库提供的功能模块有:进程调度管理软件模块、进程通信软件模块、内存管理软件模块、定时管理软件模块、系统监控软件模块、调试打印软件模块、异常处理软件模块、文件系统软件模块和命令行软件模块。
(2)业务支撑功能库
业务支撑功能库为通信领域中通用的操作维护、软件远程升级、信令分析、ASN.1编解码等对通信协议业务层提供通用功能模块。
(3)内存数据库
内存数据库将商用数据库延伸到嵌入软件领域,完成通信设备软件执行过程中数据的存储、管理、访问以及与后台的同步。
(4)通用算法库
通用算法库针对通信协议中用到的一些基本算法实现诸如队列、链表、二叉树、查找等提供嵌入式算法函数。
(5)通用协议库
通用协议库提供以TCP/IP协议栈为核心,实现数据链路层、网络层和应用层的多种协议,在操作系统的中间件中集成了路由技术、QoS技术、VPN技术、安全技术等数据通信要件,并以IP转发引擎技术作为基础,为通信网络设备提供高性能的数据转发能力。
3.4 系统开发测试环境
系统开发测试环境的目标是开发集编辑、工程管理、Makefile自动生成、编译及交叉调试为一体的集成开发环境,同时为支撑平台提供丰富的工具集,如平台配置工具、性能测试工具、远程打补丁工具、内存测试工具、基于ASN.1的自动化测试工具等。
系统开发测试环境目前已实现了集成开发环境(IDE)的原型,开发了带语法分析功能的编辑、工程管理、Makefile自动生成、工具链集成(编译、调试及二进制操作工具)及标准C/C++库函数,实现了部分工具集,如支持SDL描述的有限状态机代码自动生成、平台配置及内存测试工具等。
4 平台推广的经济价值
嵌入式软件开发平台目前已经在中兴通讯的许多产品上推广应用,并取得了预期的效益,主要体现在以下几个方面:
(1)节约了人力成本
中兴通讯的产品均将直接在一个公共的平台上进行开发,减少了过去的重复开发工作,降低了人力资源的浪费。中兴通讯不同产品在使用支撑平台前后的工作量对比如图2所示。
(2)加快了开发速度
嵌入式软件开发平台作为公共模块的共享载体,使得应用软件具有高度的可移植性,开发人员可以直接使用已有的成熟模块而不必重新设计,大大提高了开发效率,加快了产品走向市场的速度。
(3)增强了产品的稳定性和可靠性
嵌入式软件开发平台使得很多模块具有了通用性,扩大了模块的使用范围和领域,便于更快地发现并解决软件存在的缺陷,使得软件稳定的速度大大加快,同时大量成熟模块的应用也大大提高了软件的质量。图3是中兴通讯两个类似产品的在完成1年内的缺陷发现数量比较,可以看出,使用平台不仅缺陷数量大为减少,而且缺陷数的降低速度也非常快,大部分缺陷在头3个月即被发现,大大提高了软件稳定度。
(4)摆脱了对操作系统和底层硬件的依赖
嵌入式软件开发平台封装了底层操作系统和硬件设备,上层应用软件可以方便地在不同的操作系统和CPU之间切换,使得系统设计人员具有更多的选择,彻底摆脱了对某种具体操作系统和硬件的依赖。
而且对操作系统内核的研究可为将来替换国外商用嵌入软件操作系统打下基础,节约操作系统的版本费用,使软件成本大幅下降。
5 平台应用的社会效益
嵌入软件开发平台是通信系统软件的核心技术,关系到中国信息领域未来的发展和安全。中兴通讯对嵌入软件开发平台的研究和推广,将使中国在这一通信的关键技术领域占有一席之地,提升国内厂商的技术水平和素质,增强民族企业的核心竞争力,为中国企业参与国际竞争打下良好的基础。
由于目前中国国家通信骨干网络设备上的操作系统大多是国外厂商提供,对国家来说是一个巨大的信息安全隐患。自主嵌入操作系统的推出为中国构建一个安全的信息网络提供了一个新的选择,对中国具有重要的战略意义。
嵌入软件开发平台还对推进软件向模块化、专业化方向发展具有积极的意义。通过大幅度提高软件的标准化和复用程度,实现真正的软件货架技术,将使得软件企业可以向更加专业化方向发展,对提升软件企业的素质和竞争力有积极的促进作用[1—3]。
嵌入软件领域是中国在软件领域上最有可能赶超国际水平的领域。在嵌入软件平台的开发过程中,中兴通讯培养了一批具有很高专业素质的研究人员,提高了中国在这个领域的研究水平,为尽快赶上世界水平打下坚实基础。
由于在嵌入软件开发过程中坚持研究与产业相结合的原则,使得研究人员不仅成为嵌入软件开发方面的专家,同时也成为通信系统的专家,培养了一流的人才,为嵌入软件开发平台今后的发展打下了一个良好的基础。
嵌入软件开发平台的研究对提高中国软件开发的技术水平,增强中国企业的综合竞争力具有重要的意义。
6 参考文献
[1] 陈翌. 嵌入式软件开发技术 [M]. 北京: 国防工业出版社, 2003.
[2] James Noble, Charles Weir. 内存受限系统之软件开发 [M]. 武汉: 华中科技大学出版社, 2003.
[3] Wayne Wolf. 嵌入式计算系统设计原理 [M]. 北京: 机械工业出版社, 2002.
收稿日期:2004-03-26
[摘要] 文章介绍了一种应用于通信设备中的嵌入式软件平台,在给出了嵌入式软件平台的体系架构的基础上,从嵌入式实时操作系统、符合通信行业需求的定制组件和中间件、通信应用软件的集成开发环境3个层面对嵌入式软件平台的关键技术和特点进行了描述,并分析了嵌入式软件平台的经济价值和社会效益。
[关键词] 面向通信设备;嵌入式软件平台;嵌入式实时操作系统;中间件
[Abstract] The paper introduces a new embedded software platform applied in telecom equipment. It describes its architecture first, and then focuses on the key technologies and characteristics of the platform by analyzing its embedded real-time operating system, telecom-oriented customized components and middleware, and integrated software development environment. In the end, economic returns and social benefits of this platform are presented.
[Keywords] telecom-oriented equipment; embedded software platform; embedded real-time operating system; middleware