基于Linux的CAR构件与DotNet构件互操作运行平台的研究与实现

来源 :北京工业大学 | 被引量 : 0次 | 上传用户:yjtgu618215
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
构件技术的一个目标是构件具有平台无关性。一个开发好的构件,理想情况下,应该可以在任意操作系统,软件平台上独立部署,正常运行。但是构件技术最初并不能达到这个目标。虚拟机技术的主要特点就是屏蔽系统环境,为程序的运行提供一个虚拟的环境。虚拟操作系统是虚拟机技术的一部分,它对操作系统进行抽象,在新的操作系统环境中虚拟出原来操作系统的环境。 构件互操作是指两个或者两个以上的构件,尽管它们的构件实现语言、运行环境不同,但是它们仍然可以协同工作,相互调用,完成更加复杂的功能。 论文源于上述背景,在Linux上虚拟了Elastos操作系统和DotNet运行平台,并以Elastos的CAR构件和C撑语言编写的DotNet构件为实例,实现了基于Linux的CAR构件与DotNet构件的运行平台。另外,采用Socket通信原理实现了CAR构件与DotNet构件在Linux平台上的互操作。 本文介绍了一种在Linux上加载PE文件的PE加载器,该加载器利用Linux操作系统未使用的108M(从0x0400000到0x07000000)空间加载PE格式的应用程序,利用Linux操作系统在运行时为应用程序分配的432M(从0x15000000到0x30000000)空间来加载PE格式的dll模块,从而避免了与Linux程序在空间使用上的冲突。采取mmap方式为PE文件分配内存,避免了加载应用程序后,复杂的重定位操作。该加载器采取链表的方式来管理已加载的模块和使用的内存空间,采取这种方法可以防止模块的重复加载和内存泄漏问题。为了支持C#可执行程序的运行,该加载器采取链表的方式来存储C#程序集中方法的IL或者本机代码的地址。 本文分析了CAR构件元数据和DotNet构件元数据,提出了一种构件互操作描述语言CIDL(Component Interactive Description Ianguage),并实现了CIDL描述文件的自动生成器。定义了CAR构件与C#支持的数据类型的映射关系,采用Socket通信方式,实现了CAR构件与C#编写的DotNet构件间的互操作。
其他文献
软件工程的出现是为了通过借鉴传统工业的工程化思想和方法,以期提高软件质量和控制软件的成本,解决软件危机。软件工程历经了近四十年的历史,尽管硕果累累,但仍没有从根本上解决
央行会计核算系统(Central Bank Account Booking System以下简写为ABS)是人民银行中心支行及其以上辖区内会计核算集中处理,并通过中国现代化支付系统连接,实现中央银行资金清
设计模式是目前在系统开发方法研究中的一个比较热门的话题,企业网络化制造也是现在制造企业的主要技术发展方向。本文以应用网络化制造技术的中小型企业为研究对象,通过对广西
主流通用微处理器都已支持SIMD体系结构,面向SIMD的自动向量化是提高程序性能的重要手段。而在程序中手工加入指导命令,辅助编译器提升自动向量化能力的编译优化技术也已成为
视频驱动的人脸动画一直是计算机图形学和计算机视觉研究领域中的难点,并成为近年来的研究热点,在视频会议、网络游戏、数字娱乐等诸多方面有着非常广泛的应用。本文重点研究三
经验软件工程是一个新的研究热点,目前已经引起很多人的关注。在过去10几年,经验研究发展非常迅速,而且也逐渐变得成熟起来。目前国内从事这方面研究的人还很少,所以我们首次采用
经过多年发展,平面显示技术已完全融入人们生活的各方各面,能够将各类信息以清晰直观的平面图像形式表现出来。但是平面显示不能表现出真实世界的场景深度信息,研究者们从未
随着互联网的日益普及、无线通信的迅猛发展、数字高清晰电视的逐步应用以及多媒体业务的不断扩展,图像、视频的编码与传输技术成为当今信息科学与技术的研究热点。其中,多描述
近年来,互联网技术日益成熟,但是,由于网络规模的不断扩大以及计算机软硬件技术水平的飞速提高,给传统的应用软件系统的实现方式带来了巨大挑战。首先,在企业级应用中,便件系统集成
音频编码技术在现代多媒体技术中占据相当重要的地位,在网络音频、数字声音广播和家庭AV影院中音频编码技术都有广泛的应用。在音频编码标准方面,MPEG组织推出的音频编码标准应