论文摘要
开发能够在Linux上加载运行COM构件的中间件平台,对于弥补Linux上应用程序的不足,推广Linux的发展,节约软件开发成本等都有着重要的意义。本文对COM构件在Linux上运行的跨平台兼容技术做了剖析,并分析了在Linux上实现Windows平台开发的COM构件和应用程序的二进制兼容运行的关键技术。COM主要用于Windows平台上,是Windows操作系统和其上应用软件的结构基础,突出优点是软件之间直接通过二进制接口进行通讯。本文阐述了COM构件、ActiveX控件和Windows程序在Linux上直接运行的基础。通过以上分析,本文提出了一种Linux上COM构件运行平台结构的设计并实现了原型。该平台由COM /ActiveX机制支撑层和操作系统兼容层两个层次组成。操作系统兼容层的功能是消除两个系统运行时接口(包括系统调用和图形显示机制等)的差异、提供进程/线程管理调度、提供Windows消息机制在Linux上的实现等、将COM构件和客户程序加载到Linux进程空间并运行、实现COM构件和客户程序调用Windows内核对象的服务、提供COM构件和客户程序执行所需的系统调用函数。操作系统兼容层由四部分组成:Win32核心动态链接库、PE文件加载器、内核对象服务层和驱动程序适配层。COM机制兼容层由COM函数库、注册表和ActiveX控件“容器-控件”机制的支持函数库组成。COM函数库主要包括创建COM对象应用程序的底层API、构件程序的定位服务函数、透明的RPC实现函数、进程空间里内存的分配和释放函数、注册表注册和卸载函数。注册表的实现以文件代替。在已经实现的原型系统上成功加载了简单的ActiveX控件“日历控件”,验证了本文提出的设计以及实现技术的可行性和正确性。本文探索了Linux上直接运行COM构件和ActiveX控件的关键技术,为ActiveX应用在Linux上运行提供了一个可行的解决方案,对开发相关领域的系统有积极的参考意义。