Embedded 版 (精华区)

发信人: Thinkpad (船 长), 信区: Embedded_system
标  题: 中间件技术在嵌入式操作系统中的应用
发信站: 哈工大紫丁香 (2001年11月24日14:41:05 星期六), 站内信件

中间件技术在嵌入式操作系统中的应用
北京科泰世纪科技有限公司 首席科学家  陈榕

地址:100029北京市朝阳区安定路1号

电话:64955876,64955897(Fax),  E-mail: chen2rong2@2911.net



操作系统存在的目的就是为了更好地支持应用程序运行。在某种程度上,操作系统所提
供的支持决定了应用程序的工作方式。随着因特网时代的到来,应用程序模型已经发生
了很大变化,这些变化对操作系统提出了新的要求,也必将引起操作系统的新发展。本
文简要介绍因特网时代应用程序模型的变化、技术发展和北京科泰世纪科技有限公司自
主开发的下一代嵌入式操作系统中所实现的重要关键技术。

1.  因特网时代的技术发展与操作系统
传统操作系统大多是静态链接而成,由某一家公司提供,所有功能都集成在同一个软件
中,一旦链接之后就不可能替换其中的软件模块。这样的操作系统有两大功能:首先它
向用户提供一个分时系统;其次是向用户提供一组函数库。用户程序从主程序起,一步
一步驱动软件控制流程,最终完成计算工作。操作系统始终处于被动地位,为用户程序
提供服务。这类系统的典型范例有DOS和控制台模式下的Unix操作系统,以及目前存在的
大多数嵌入式操作系统。

因特网时代新的应用模型与操作系统
在因特网时代,一个应用程序可以包括文字、图表、音频、连续图像播放等功能,各部
分功能的软件模块(组件component)可以来自不同的软件开发商,在运行时动态组织起
来,向用户提供一个“天衣无缝”、具有复合功能的应用软件。这种应用软件看上去象
因特网的浏览器,其实质是组件化(componentization)的软件工程技术。组件化技术
早在因特网时代之前就已经初见端倪,微软的OLE技术在90年代初就可以初步支持Word和
Excel的相互嵌套。在因特网时代的今天,组件化技术可以说是无处不在,比如微软最近
发表的Windows XP和Office XP的核心都是这种组件化技术,从视窗桌面到Word和Excel
的窗口全部是“浏览器”。

这种因特网应用模式的主要特点是:

程序作为动态组件自动加载运行,而不需要由用户去逐个启动。
组件支持脚本语言控制,多个组件可以相互操作,交换信息。
以浏览器为交互式操作界面,既便于有户掌握,又为程序开发提供了统一标准。
网络化资源管理,程序自动下载运行,不需要用户介入。
在这种新的应用模式下,“浏览器”实际上已经退化为一个可见或不可见的“框”,用
操作系统术语讲,这个框是一个可执行文件,或说是一个EXE文件,它本身非常简单,不
为用户提供应用功能,但能提供组件运行环境。所有组件都被做成一个个动态链接库,
或说是DLL文件。因为这个小“框”放之四海而皆准,对于任何应用程序都是一样的,操
作系统自然可以代劳,在操作系统中做一份就行了。在这种操作系统里启动运行这样一
个小小的可执行文件,通常根本不用访问外部存储器(如磁盘),所以效率很高。框里
的第一个组件一般需要有一个主函数(main)。这种组件中的主函数与传统操作系统术
语中用户程序里的主函数有本质上的区别。熟悉JAVA的读者可能会联想到,这里讲的操
作系统模型就是JAVA虚拟机的编程模型。

“服务器-中间件-用户”编程模型
中间件(middleware)程序设计技术是因特网时代技术的纲。中间件是操作系统根据元
数据生成的组件,因特网技术都是围绕中间件发展的。JAVA、C#的目的不在于它们的文
法比C/C++简单,也不在于它们支持内存的废物回收,也不在于跨平台。为了处理元数据
发明了新语言,为了生成中间件发明了虚拟机,为了建立软件工厂发明了组件库。语言
、虚拟机、组件库三位一体形成了当今世界软件编程的主流发展趋势。虚拟机实际上是
一种特殊的操作系统。

随着硬件和软件技术的发展,操作系统动态由服务器组件中的元数据(metadata)生成
代理和存根成为可能。编程模型逐步转移到“服务器—中间件—用户”三层结构。通讯
程序(如TCP/IP)不再是用户或服务器程序的一部分,既然TCP/IP协议可以生成,HTTP
协议也可以生成。既然用户和服务器都不包含通讯协议,它们也就适用于任何通讯协议
。由此网络编程模式产生了革命性的飞跃。

面向中间件编程模型中的中间件也可以想象成组件的代理组件(或虚拟组件),中间件
在系统管理员控制下由操作系统生成(见下图)。中间件可以为空,这时用户程序与服
务组件运行于同一地址空间,用户直接访问组件,充分发挥计算机的效率。



最典型的中间件就是跨地址空间的TCP/IP通讯协议。如果通讯协议是HTTP,中间件就成
了防火墙;如果协议对来往消息作了备份,系统可以容错;如果协议根据服务器繁忙程
度分配消息,就是负载均衡;如果一个机器上只配有10份组件版权,代理组件可以挡住
第11个用户直到前10个用户中有人离开;如果一个事件是由几个分事件合成,代理组件
可以执行事务处理;如果怕病毒,就把组件放到远程,同时不给它文件支持。把这些功
能实现在一个进程里,该进程就叫应用服务器(application server)。由此可见应用
服务器处在因特网技术的核心地位,中间件技术正是应用服务器的理论基础。

中间件技术的应用不限于应用服务器。中间件技术为程序模块、组件库、软件工厂提供
了联接“管道”、“连线”和“集成电路板”,软件组件的“即插即用”模式将走向主
流市场。这种“软集成电路”就是包含元数据的组件。因为元数据可以抽象描述组件功
能和接口,从而组件的发布、版本升级都省去了对头文件(.h files)和库文件(.lib
files)的依赖。元数据解决了软件工程的一大难题,中间件技术使得软件的工程化开发
水平提高到一个新的层次。

操作系统与虚拟机
Java和C#基于中间代码,其虚拟机运行于其它操作系统之上。由于其运行效率、实时性
、资源需求等方面的原因,至今没有在嵌入式系统中得到成功的应用。

操作系统可以作为虚拟机,直接提供中间件的运行环境。既然应用程序员只写组件或动
态链接库,而操作系统自始至终控制程序运行的主动权,显而易见,这种操作系统与DOS
或Unix有本质的不同。操作系统可以对应用程序组件进行各种各样的控制,使得封装好
的组件能够适应不同的运行环境和用户要求。组件制造商对组件运行环境往往有些特殊
的复杂要求,例如组件是否支持多线程或信息加密,这些对于一般用户来讲很难理解和
适应;而众多用户的不同好恶,如怀疑组件有病毒,也不是组件制造商料所能及的。这
时操作系统控制主动权,动态生成中间件和构造组件运行环境,就能很好地解决这些问
题。

操作系统利用中间件技术支持和控制应用程序的运行环境,就形成了因特网时代操作系
统的关键技术。

操作系统对XML的支持
XML文本描述语言的广泛使用将是因特网时代操作系统的另一明显标志。XML统一了对网
络上传输的数据和远程函数调用的描述,比如SOAP(Simple Object Access Protocol)
。XML对任意消息中的信息都要进行描述,我们称这类消息为自描述消息。由于自描述消
息可以根据不同国家语言,不同操作系统,不同软件版本,或不同安全协议来作不同解
释,XML已经成了因特网信息交换的标准,未来的操作系统内核会对XML进行最有效的支
持。现在网络和分布式操作系统中有大量的命名服务器(name server),它们都运行于
用户态,比如HTTP、TCP/IP、FTP、Telnet等服务器,它们都可以统一在内核对XML远程
函数调用功能的支持之下。表面上XML速度可能不如其它二进制协议高,但内核不必进行
不必要的地址空间切换,大大减少众多服务器的内存消耗,因而势必增加系统的安全性
、可靠性以及运行效率。微软的Windows XP已经按照这一思路设计操作系统。

浏览器成为统一的用户界面
在因特网时代新的应用模式下,浏览器已经不仅是显示网络页面信息的界面,它包含诸
如解释网络页面信息,通过对组件中元数据的直接解释执行,与底层的系统软件协同调
用相关的组件等功能。基于网络标准的浏览器可以成为强有力的工具,实现跨平台的应
用,实现丰富多彩的用户界面和传统桌面系统的应用程序所能完成的功能。实质上,浏
览器已经成为操作系统不可缺少的组成部分。

我们可以将网络时代应用重点的转移以及操作系统技术的发展归纳为下图。



2.  基于中间件技术的嵌入式操作系统
北京科泰世纪科技有限公司基于对因特网时代软件技术发展的深入理解,开发了具有完
全自主版权,采用先进的组件、中间件编程技术构筑的下一代高性能网络操作系统Zyco
,以及制定了跨操作系统的组件、中间件标准ezCOM;提供跨平台的ezCOM组件运行环境
、开发平台和组件库;提供支持XML等最新因特网标准的浏览器引擎;提供全面的操作系
统应用开发环境。

面向因特网应用,基于组件、中间件技术的新型操作系统Zyco
Zyco操作系统的实现采用组件技术,提供ezCOM组件运行的虚拟机环境,支持动态加载组
件。Zyco小型、实时、多任务(多进程、多线程),支持虚拟存储、动态链接库、各种
外设、网络(TCP/IP)、多媒体、汉字等。具备图形系统,支持真彩显示,键盘、鼠标
、触摸屏等指点设备的事件处理机制与Java的设计相似。可执行代码与Win2000二进制兼
容,文件系统和微软DOS、NT兼容,支持Flash ROM、DOC(Disk on Chip),支持从软盘、
硬盘、ROM、DOC启动操作系统。

创新的ezCOM组件、中间件技术,跨平台的运行环境和开发环境
ezCOM技术与微软COM(Component Object Model)组件技术兼容。

ezCOM为组件的互操作性定义了编程语言无关、可扩展、跨平台的二进制标准。ezCOM组
件之间的相互作用通过一组称作接口(interface)的功能实现。应用程序必须通过接口访
问组件提供的功能。每一个接口有唯一的标识符,组件添加新的功能,就要定义新的接
口。接口的唯一性和不变性保证了组件升级的独立性、简单快速的组件互操作、接口重
用、本地/远程透明性、编程语言无关性。

ezCOM提供接口描述语言CDL,为ezCOM服务器中新功能的实现提供了方便,如脚本语言调
用组件对象函数等。提供了优化、方便的ezCOM工具库和ezCOM库支持环境,灵活的ezCOM
服务器和ezCOM客户的实现机制。由ezCOM工具库自动实现的标准接口类封装层,屏蔽了
调用COM组件对象过程的繁琐细节,大大简化了COM客户程序的实现。

在Zyco、Windows2000上的ezCOM运行环境(虚拟机)可以在操作系统上自动生成中间件
(代理组件),提供组件定位、调用、管理、中间件自动生成、组件通信(进程内、跨进
程、跨网络等不同运行环境)等机制。支持组件访问顺序控制、安全(容错)性控制、软
件使用权的控制、负载均衡、线程同步、进程延续(Persistence)的控制、事务元(Tr
ansaction)控制等中间件功能。ezCOM组件可以原封不动地运行在Zyco和Windows2000上


ezCOM技术保证了软件互操作性、版本升级独立性和运行环境透明性,提供了提高系统安
全、软件协同开发、软件容错、可靠性、软件复用、软件升级的有效手段。

浏览器引擎
浏览器引擎直接运行于操作系统内核之上,操作系统和组件技术、浏览器技术紧密结合
,为网络应用提供高效率的运行平台。浏览器引擎支持业界广泛使用的Web标准(HTML
4.0、XML、JavaScript等)、具有完备的浏览器功能;通过用户接口语言可以开发跨平
台、跨设备的用户接口;通过跨平台的ezCOM实现可扩展的图形体系结构。比如支持同一
用户图形软件完成远程图形功能(类似X-Window)或在同一进程内的高速图形显示;同
一段用户图形组件代码可以不经修改,运行在硬件上或台式机的网页里。

应用开发环境
提供Win2000上MSVC6.0和MinGW 的C/C++交叉编译环境;可常驻内核的Zdbg,这是即使系
统崩溃时也可进入的系统调试工具,支持源代码级调试;交互式图形界面的源代码级连
机调试工具Windbg,可对目标系统进行远程(跨网络)源程序级查错;提供基于浏览器
技术的图形用户界面开发工具。可以在通用PC机上交叉开发和调试本操作系统的系统组
件、驱动程序库和用户程序。

完整的软件平台解决方案
Zyco以因特网技术发展为基础,与ezCOM有机结合,在嵌入式操作系统中实现对组件、中
间件的直接支持,使得传统嵌入式系统的软件开发能够利用当今先进的主流技术,实现
工程化、工厂化生产,顺应了软件技术的发展潮流。这是目前其他嵌入式操作系统产品
中不具备的创新功能。如下图所示,这些成果为面向下一代网络应用的嵌入式系统开发
提供了全面、完整的基础软件和应用软件开发平台。





Zyco与ezCOM技术利用Java虚拟机思想但不用其中间代码形式,利用C++语言及硬件机器
指令实现高效率、低资源要求的虚拟机。Zyco技术集语言、组件库、虚拟机三位一体,
与国际主流软件技术互补、互操作(与微软Windows 2000以及下一代操作系统Windows
XP兼容)。Zyco技术与国际主流软件技术的关系如下图所示。



Zyco可广泛应用于信息家电、工业控制、传统工业改造、国防、商业电子等领域,已经
开发了PDA/掌上电脑、数控机床、工业远程监控设备、医疗仪器等应用。

3.  基于中间件技术的操作系统Zyco的技术优势
Zyco导入了现代操作系统、软件工程、网络等领域的前沿技术,在后PC时代具有巨大的
技术发展空间和强大的生命力,为建立在该技术之上的软件产业提供了可持续发展的基
础。基于中间件技术的操作系统带来的好处是多样的,这里略举几个方面的例子。

提供系统的安全保护机制
Zyco中用户程序每调用一个组件对象(操作系统中就是创建一个新的进程),系统自动
地生成一个代理组件。系统通过代理组件可以控制组件对象的创建与消亡,控制组件对
象对特定资源的访问权限和运行空间,同时可以自动生成记录。这样的机制为软件设计
中加密、解密、防黑客、防病毒的设计提供了必要条件,为信息系统的安全性提供了坚
实的基础。

硬件设备的即插即用
在硬件设备的驱动程序对象中加入非执行的描述信息(即元数据),“告诉”访问者它有
哪些特性和功能。操作系统可以根据组件中的元数据动态生成中间件,这种中间件是连
接驱动组件与用户程序的桥梁,而操作系统可以“以不变应万变”。例如,一架VCD机的
元数据显示它可以有4种动作,分别用 播放、停止、快进、快退 表示。操作系统和浏览
器可以将这四个词组画在屏幕上,而根本不需要懂得它们的含义。当终端用户点击播放
时,这一动作信息通过桥梁送到驱动组件,VCD机竟然动起来了!这并不是因为操作系统
“支持”某种型号的VCD机,而是因为操作系统和VCD机都遵循组件化的硬件驱动模式。

稳定、健壮的系统特性
Zyco中组件的运行空间可控,可以很好地隔离个别组件的运行错误,不影响系统中其他
组件运行,不会导致整个系统的崩溃。如果需要,系统还可以自动重新启动组件以继续
中断的工作,自动实现容错等功能。

灵活内核操作系统体系结构
由于组件、中间件技术,可以做到组件运行环境对用户和组件制造者透明,例如组件可
以不加修改运行于不同地址空间。因此可以把操作系统的内核地址区看成是一段特殊的
地址空间,根据用户的需要,将一些来源值得信赖或对运行效率要求高的驱动程序配置
于内核态,而另一些不太稳定的驱动程序置于用户态运行,在一个系统中同时满足稳定
性、安全性与实时性的特殊要求。这样的体系结构不必区分是大内核还是微内核,事实
上所谓的“内核”可大可小,完全依据系统自身的需求动态决定。这就是Zyco独创性的
“灵活内核”体系结构,利用组件和中间件技术解决了长期以来困扰操作系统体系结构
设计者的大内核和微内核在性能、效率两者之间不能两全其美的矛盾。

提供工程化的软件开发手段
ezCOM规范了组件接口标准,就像机械零件规定了公制标准一样,软件组件可以实现标准
对接。或者可以说ezCOM规定了软件的“总线”标准,组件就是符合该“总线”标准、具
有特定功能的“插卡”,只要插卡插入总线,系统就可以自动识别和调用。

系统组件、应用组件独立升级。软件发布、升级容易,扩展性好。

组件是对象加元数据的独立封装,保证了软件的复用和共享,提高了软件开发效率。

高度模块化结构,可灵活重组,易于针对不同应用裁剪组合,移植性好。

4.  意义与展望
后PC时代,软件产业已成为国际竞争、综合国力和军事实力的重要战略要素,其产业规
模和发展水平是一个国家现代化程度的重要标志。操作系统是具有时代标志性产业的根
基,是信息产业与传统产业之间重要的结合点。掌握和拥有与国际软件主流技术接轨、
具有自主知识产权的嵌入式操作系统,对中国具有重要的战略意义。

Zyco与ezCOM的诞生,表明我们已经掌握了操作系统以及组件、中间件技术等因特网时代
软件的关键技术,可以为中国的软件开发企业提供国际一流的基础软件平台。

跨平台的ezCOM技术与微软主流操作系统兼容,便于应用软件的开发和知识产权的保护,
有利于Zyco操作系统的普及推广。同时,ezCOM组件规范和开发环境具有通用性,可作为
大型软件企业集团化协同开发的软件中间件编程平台,有利于组件技术在中国的推广,
以此为基础可以建立起中国自己的软件中间件标准。以组件技术为基础的软件工厂将极
大地提升中国软件产业的整体水平,带动中国的软件进入国际软件发展的主潮流,为中
国的软件走向世界打开通道。 

--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.239.147]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.192毫秒