CN1270229C - 基于动态内核实现跨地址空间创建构件对象的方法 - Google Patents

基于动态内核实现跨地址空间创建构件对象的方法 Download PDF

Info

Publication number
CN1270229C
CN1270229C CNB021601348A CN02160134A CN1270229C CN 1270229 C CN1270229 C CN 1270229C CN B021601348 A CNB021601348 A CN B021601348A CN 02160134 A CN02160134 A CN 02160134A CN 1270229 C CN1270229 C CN 1270229C
Authority
CN
China
Prior art keywords
component
kernel
user
interface
component object
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB021601348A
Other languages
English (en)
Other versions
CN1514353A (zh
Inventor
陈榕
杜永文
林清洪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ketai Century Science and Technology Co., Ltd., Shanghai
Original Assignee
KETAI CENTURY SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KETAI CENTURY SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI filed Critical KETAI CENTURY SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI
Priority to CNB021601348A priority Critical patent/CN1270229C/zh
Priority to US10/747,233 priority patent/US20040153991A1/en
Publication of CN1514353A publication Critical patent/CN1514353A/zh
Application granted granted Critical
Publication of CN1270229C publication Critical patent/CN1270229C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

一种计算机操作***构件化灵活内核实现的方法,将计算机操作***的***功能抽象为对象;用构件技术将对象封装成独立的构件模块,提供***级构件技术支持;构件模块包括内核态构件模块和用户态构件模块,内核态构件模块包括进程管理构件、线程管理构件、内存管理构件、设备管理器及构件运行平台,用户态构件模块包括扩展构件或文件***构件或图形***构件或网络服务构件或设备驱动程序构件;在构件运行平台生成中间件构件;将计算机操作***的***功能接口以构件对象接口的形式体现。本发明灵活内核技术是将构件技术融入到***内核中,实现从***级支持构件技术,从而能够灵活地动态配置应用构件在用户空间或内核空间的运行状态。

Description

基于动态内核实现跨地址空间创建构件对象的方法
技术领域
本发明涉及一种计算机操作***动态内核的实现机制,尤其是一种基于动态内核实现跨地址空间创建构件对象的方法。属于计算机技术领域。
背景技术
由于计算机硬件的快速发展和用户要求的提高,以及因特网时代的到来,操作***的复杂性与日俱增,***的体系结构对***性能的影响也越来越明显。大多数的操作***采用两种体系结构之一:一个是整体内核(Monolithickernel or Macro-kernel)操作***,另一个是微内核(Micro-kernel)操作***。
早期的操作***基本上采用的是整体内核技术,此类***的***服务和驱动程序都在内核空间,分别定义成不同的功能模块;任何模块可以遵循特定的接口规范来调用其它模块;所有模块必须连接在一起,形成一个可执行文件,使用时整个文件都应完整装载到计算机的内存中。微内核是从功能上说,它由操作***最基础的抽象模块构成的,整体内核***中包含的许多***服务以及驱动程序都被放在了核外,核内一般只包括进程管理、I/O处理、内存管理、进程间通讯等。整体内核和微内核的特点分别为:整体内核的效率高但稳定性比较差,而微内核恰好相反,效率低而稳定性好。究其原因:微内核效率低的原因是因为大量使用了进程间通讯造成的。整体内核的***功能大部分是在内核中实现的,从而降低了***的稳定性。从技术上讲,要从根本上解决效率和稳定性这对矛盾即解决微内核和整体内核的矛盾是不可能的。
构件技术已经广泛应用于应用软件的开发过程中,在***软件设计中运用构件技术已经成为研究的热点,特别是分布式***的发展,为构件技术提供了广阔的施展空间。
发明内容
本发明的目的在于提供一种基于动态内核实现跨地址空间创建构件对象的方法,其灵活内核技术是将构件技术融入到***内核中,实现从***级支持构件技术,从而能够灵活地动态配置应用构件在用户空间或内核空间的运行状态。
本发明的又一目的在于提供一种基于动态内核实现跨地址空间创建构件对象的方法,其***功能接口的构件化,通过***构件API创建构件对象,并实现跨地址空间的创建构件。
本发明的再一目的在于提供一种基于基于动态内核实现跨地址空间创建构件对象的方法,基于用户—中间件——服务的三层结构体系,由内核的构件支持部件自动建立作为中间件的构件对象的存根代理构件,使用构件对象的存根代理构件跨进程访问构件。
本发明的还一目的在于提供一种基于基于动态内核实现跨地址空间创建构件对象的方法,对于同一构件,可以二进制载体形式直接运行在用户空间或内核空间。
为此,本发明通过如下技术方案实现上述目的:
一种计算机操作***构件化灵活内核实现的方法,其执行以下步骤:
步骤1:将计算机操作***的***功能抽象为对象;
步骤2:用构件技术将所述对象封装成独立的构件模块,提供***级构件技术支持;所述构件模块包括内核态构件模块和用户态构件模块,所述内核态构件模块包括进程管理构件、线程管理构件、内存管理构件、控制装载的设备管理器及构件运行平台,所述用户态构件模块包括扩展构件或文件***构件或图形***构件或网络服务构件或设备驱动程序构件;
步骤3:在构件运行平台上生成包含代理构件对象和存根构件对象的中间件构件,其中该构件运行平台向用户提供与计算机***功能交互的界面;步骤4:将所述计算机操作***的***功能接口以构件对象接口的形式体现。
作为用户态构件模块,包括扩展构件或文件***构件或图形***构件或网络服务构件或设备驱动程序构件。
其中,构件运行平台是底层操作***的一个逻辑抽象层;中间件包括代理构件对象与存根构件对象;其中存根构件对象设置在被创建的构件对象端;代理构件对象设置在被创建的构件对象的创建者端。
本发明的一种基于上述***功能内核构件化的构件对象创建方法,在于通过***提供给用户的API,用户可以选择在内核空间或用户空间创建构件对象。
针对在内核空间使用***功能接口,直接调用***功能接口;而在用户空间调用***功能接口,通过中间件到实际对象,从用户空间获取某个***功能接口时,***自动创建对应于该接口的代理构件对象/存根构件对象,然后把代理对象的接口返回给用户。
进一步地,在用户空间创建用户态构件对象步骤为:
步骤11:在用户空间调用创建函数,并在其中设置用于指示在同一地址空间中创建构件对象的参数;
步骤12:在用户空间创建构件的类厂,然后使用类厂创建构件对象;
步骤13:返回构件对象的接口,使用该接口直接访问该构件对象。
在用户空间创建内核态构件对象步骤为:
步骤21:在用户空间调用创建函数,其中设置参数,表示内核地址空间中创建构件对象;
步骤22:使用内核中的构件运行支持部件的功能,陷入到内核中,在内核中创建构件的类厂,然后使用类厂创建构件对象,生成构件对象的存根对象,并返回到用户态;
步骤23:返回到用户空间,***发现该***功能调用应返回一远程对象的接口,则相应创建一个和存根对象对应的代理对象;所述代理对象负责进程间通信,生成远程对象的本地代理;被调用构件对象所在的地址空间生成一存根对象,与代理对象匹配,通过存根对象向代理对象返回调用结果;
步骤24:使用代理对象接口,通过进程间通信实现对真实构件对象的访问。
当然,用户可以跨地址空间在用户空间创建构件对象。跨地址空间创建构件对象是由***自动创建中间件的存根构件对象/代理构件对象,创建过程通过自动化散列集实现。
具体地,创建存根构件对象时,获取对应构件对象的相应接口的元数据,根据元数据构造存根的接口形式,即建立存根的虚表,同时存根还有保存指向真实对象的指针和接口地址等信息;创建代理构件对象时,首先也要获取对应构件对象的相应接口的元数据,根据元数据构造代理的接口形式,并保存接口地址等信息。
为此,存根和代理还都会保存一个***动态生成的标识符,***通过此标识符来匹配一对代理和存根。代理和存根是对应于接口的,一个拥有多个接口的构件对象在作远程调用时,***为每个接口建立一对代理和存根对象。
这样,在跨地址空间的通道建立后,对在用户空间中创建的内核态构件对象进行调用的步骤为:
步骤1:当代理创建后返回一个指向代理对象的智能指针,对于智能指针方法的调用便转换为对代理对象方法的调用;
步骤2:代理对象调用通过进程间通信(Interprocess Communication,IPC)跳转到内核空间;
步骤3:***在内核空间另外启动一个线程,在该线程中使用进程间通信过程中的复制栈,调用存根对象;
步骤4:存根对象调用真实对象,真实的构件对象在完成调用之后,返回到存根调用;
步骤5:存根调用返回到进程间通信,在进程间通信中会根据接口方法的元数据将返回值和返回参数复制到代理对象所在的空间;
步骤6:进程间通信返回到代理调用;
步骤7:代理调用返回给调用者。
上述步骤2包括在进程间通信过程中,通过代理对象中的接口地址获取对应该接口的元数据,根据元数据将代理调用的栈拷贝到内核空间。
本发明操作***把部分***功能用构件技术封装成独立的构件模块,例如文件***和图形***。用户可以根据需要动态地配置这些模块运行状态,也就是说可以根据用户的需要,将一些来源值得信赖或对运行效率要求高的构件模块配置于内核态,而另一些不太稳定的模块置于用户态运行,在一个***中同时满足稳定性、安全性与实时性的特殊要求。这样的体系结构不必区分是整体内核还是微内核,事实上所谓的“内核”可大可小,完全依据***自身的需求动态决定。这就是本发明独创性的“灵活内核”体系结构,利用构件技术解决了长期以来困扰操作***体系结构设计者的整体内核和微内核在性能、效率两者之间不能两全其美的矛盾。
附图说明
图1为本发明操作***的三层结构示意图,图1中,1为动态链接库函数调用;2为构件对象接口方法调用;
图2为本发明构件运行平台共享代码动态链接库映射机制示意图;
图3为本发明基于构件化内核在用户空间创建构件对象接口结构示意图;
图4为本发明基于构件运行平台共享代码动态链接库在内核空间创建构件对象接口结构示意图;
图5为本发明基于构件运行平台共享代码动态链接库在用户空间创建构件对象接口结构示意图;
图6为本发明代理与存根生成流程图;
图7为本发明跨地址空间创建构件对象时代理与存根运行步骤流程图;
图8为本发明内核机制实现流程图。
具体实施方式
如图1-7所示,本发明的本质是将构件技术引进到内核,因而内核是构件化,目的是实现***的灵活多变。构件化内核是将计算机操作***的***功能抽象为对象并用构件技术封装成独立的构件模块,提供***级构件技术支持。另外,本发明操作***利用构件技术的优势在***层面实现了“三层结构”(Client/Middleware/Server)计算模型,完全把构件技术的使用融入到***内核中,由于构件、中间件技术,可以做到构件运行环境对用户和构件制造者透明,例如构件可以不加修改运行于不同地址空间。
内核态构件模块包括进程管理构件、线程管理构件、内存管理构件和控制装载的设备管理器,还包括一构件运行平台。如果需要,也可包括扩展构件,用于针对具体的设备或应用设置相对固定的对应应用构件,以及文件***构件或图形***构件或网络服务构件或设备驱动程序构件;作为用户态构件模块,包括扩展构件或文件***构件或图形***构件或网络服务构件或设备驱动程序构件。
参见图2、4、5,本发明作为生成中间件构件的构件运行平台与底层操作***密不可分,在某种程度上构件运行平台是底层操作***的一个抽象层,构件运行平台为客户程序与操作***的交互界面,为客户程序提供相关的函数调用及构件服务,同时隐藏了底层操作***的特征。构件运行平台为内核共享代码生成的虚拟的动态链接库,通过该内核共享代码的映射机制,用户程序直接共享这些代码,在加载用户进程时,通过自动在用户空间注册该虚拟的动态链接库,将二进制载体直接运行操作。同时,构件运行平台还包括应用函数API,API是指动态链接库提供的***调用函数,如:进程处理、线程管理、类对象等,提供用户基本的构件库服务和/或支持函数,共享代码表中的共享代码与API一一对应。
在本发明操作***中,内核代码及用户代码都将被加载到共享地址空间(内核私有代码被加以保护,禁止用户进程直接访问),编译器将内核共享代码生成一个虚拟的动态链接库,通过内核共享代码的映射机制,所有用户程序共享这些代码,操作***在加载用户进程的初始化时通过自动在用户空间注册该虚拟的动态链接库。动态链接库的引出API表与内核共享代码API表一一对应。动态链接库的引出API是提供给用户基本的构件库的服务及其他一些支持函数。
本发明内核代码映射由动态链接库的机制加以体现,由于都在共享地址空间,用户进程无需陷入到内核空间只需要一个长跳转指针就可以共享该部分代码资源,这样减少了切换CPU状态的***消耗,并且该部分代码由所有进程共享(内核也是一个进程)可以最大程度的减少用户目标代码大小,以符合嵌入式市场对应用上的要求。标准函数库是完全基于***功能接口实现的。
具体地,如图3、6所示,***功能接口的使用:在内核空间使用***功能接口,是直接的接口调用;在用户空间调用***功能接口,也是通过代理/存根到实际对象,从用户空间获取某个***功能接口时,***会自动创建对应于该接口的代理/存根,然后把代理对象的接口返回给用户。
本发明用户态使用***功能接口要跨越地址空间,在内核中使用***功能接口则无需跨越地址空间,这其间的差异完全被***所做的工作覆盖了。
下面说明在用户态和内核态获取***功能接口的流程。
以创建进程为例,参见图6,在用户态获取***功能接口的流程:
1、调用相应的API函数;
2、API函数调用***功能接口,通过进程间通信(InterprocessCommunication,IPC)陷入到内核态创建一个新的进程,并创建一个对应于新进程构件对象接口的存根对象;
3、IPC返回到用户空间,***发现该***功能调用应该返回一个远程对象的接口,则会相应创建一个和存根对象对应的代理对象;
4、使用获取的代理对象接口,通过进程间通信实现对真实构件对象的访问。
以创建进程为例,在内核态获取***功能接口的流程:
1、调用相应的API函数;
2、API函数会调用***功能接口,由于已经处于内核中,因此直接创建一个新的进程;
3、直接返回新进程的接口;
4、直接调用进程对象的接口。
对于构件对象的创建,本发明***功能接口的调用和使用者所处于的运行状态无关,这样,基于本发明的***功能接口开发的构件可以在不同运行状态下创建和使用,也就是说同样的二进制代码可以丝毫不变地运行于内核态和用户态,而且接口使用也不会受到运行空间的影响。
甚至可以说运行于内核态的构件看上去就像扩展的***功能一样,但与***功能接口不同的是***功能接口是***运行必须的构件,而用户构件可以加载也可以不加载;另外,***功能接口背后的***构件对象是***用根据需要创建的,用户一般不会介入到***构件对象的创建过程中,而用户构件则有比较显示的创建过程。
无论将用户构件创建在用户态还是内核态,对使用者来说都是透明的,在使用者看上去任何时候都像是在同真实的对象交互。本发明操作***把内核看成是一个进程,通过本发明提供给用户的API,可以选择在用户空间还是内核空间创建构件对象。
在用户空间创建内核态构件对象的流程为:
1、在用户空间调用创建函数,其中设参数,表示在内核地址空间中创建构件对象;
2、使用内核中的构件运行支持部件的功能,陷入到内核中,在内核中创建构件的类厂,然后使用类厂创建构件对象,生成构件对象的存根对象,并返回到用户态;
3、返回到用户空间,***发现该***功能调用应该返回一个远程对象的接口,则会相应创建一个和存根对象对应的代理对象;
4、使用代理对象接口,通过进程间通信实现对真构件对象的访问。
在用户空间创建构件对象的流程为:
1、在用户空间调用创建函数,其中设参数,表示在同一个地址空间中创建构件对象;
2、创建函数会在用户空间创建构件的类厂,然后使用类厂创建构件对象;
3、直接返回构件对象的接口,使用该接口即可直接访问构件对象。
本发明内核中的构件运行环境,是灵活内核技术在使用中的外在体现。本发明***实现灵活内核技术的根本在于将构件技术融入到内核当中,并且***能够自动为跨地址空间的接口创建存根代理对象,并且实现了自动化散列集(marshaling)。
在跨地址空间的调用中,要考虑调用参数和返回值的传输问题,列集是指把方法的参数打包,准备传输到另一个地址空间;散集在另一端把收到的数据包打开,散集和列集合称散列集。散列集的过程中必须掌握数据的格式,包括数据的尺寸以及数据的摆放形式。这些描述数据的信息可以称作元数据,本发明中准确地说元数据是指用于描述构件信息的数据,包括构件功能和接口形式。获取元数据通常有两种方式。一种方式是把这些信息静态地注册到***中,在需要的时候,进行查询并获取。另外一种方式是把元数据直接封装到构件中,这种方式可以降低***成本。
具体地,本发明存根代理构件对象的创建是在跨地址空间的构件调用中,因调用者与被调用者不在同一个地址空间,无法实现直接的调用,代理对象就是为完成进程间通信而生成的远程对象的本地代理。与之相对应,被调用构件对象所在的地址空间也会生成一个存根对象与代理对象匹配,通过存根对象向代理对象返回调用结果。在有多个地址同时对一个构件进行调用时,被调用构件对象会为每个地址生成一个存根构件(与每个进程调用生成的代理构件对象相对应);另外,创建存根构件对象时,首先要获取对应构件对象的相应接口的元数据,根据元数据构造存根的接口形式。亦即建立存根的虚表,同时存根还有保存指向真实对象的指针和接口地址等信息。
而在创建代理构件对象时,首先也要获取对应构件对象的相应接口的元数据,根据元数据构造代理的接口形式。并保存接口地址等信息。
此外存根和代理还都会保存一个***动态生成的标识符,***通过此标识符来匹配一对代理和存根。
应该强调的是,代理/存根是对应于接口的,一个拥有多个接口的构件对象在作远程调用时,***会为每个接口建立一对代理/存根对象。
参见图7,针对存根代理的运作,本发明是在跨地址通道建立起来以后,进行如下运作流程:
步骤1:当代理创建后会返回一个指向代理对象的智能指针,对于智能指针方法的调用便转换为对代理对象方法的调用;
步骤2:代理对象调用会通过IPC跳转到内核空间。在IPC过程中,通过代理对象中的接口地址获取对应该接口的元数据,根据元数据将代理调用的栈拷贝到内核空间;
步骤3:***在内核空间另外起一个线程,在该线程中使用IPC过程中的复制栈,调用存根对象;
步骤4:从存根对象调用真实构件对象,真实的构件对象在完成调用之后,返回到存根调用;
步骤5:存根调用返回到IPC,在IPC中会根据接口方法的元数据将返回值和返回参数复制到代理对象所在的空间;
步骤6:IPC返回到代理调用;
步骤7:代理调用返回给调用者。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (13)

1、一种计算机操作***构件化灵活内核实现的方法,其特征在于:执行以下步骤:
步骤1:将计算机操作***的***功能抽象为对象;
步骤2:用构件技术将所述对象封装成独立的构件模块,提供***级构件技术支持;所述构件模块包括内核态构件模块和用户态构件模块,所述内核态构件模块包括进程管理构件、线程管理构件、内存管理构件、控制装载的设备管理器及构件运行平台,所述用户态构件模块包括扩展构件或文件***构件或图形***构件或网络服务构件或设备驱动程序构件;
步骤3:在构件运行平台上生成包含代理构件对象和存根构件对象的中间件构件,其中该构件运行平台向用户提供与计算机***功能交互的界面;步骤4:将所述计算机操作***的***功能接口以构件对象接口的形式体现。
2、根据权利要求1所述的计算机操作***构件化灵活内核实现的方法,其特征在于:所述内核态构件模块还包括文件***构件或图形***构件或网络服务构件或设备驱动程序构件。
3、根据权利要求1所述的计算机操作***构件化灵活内核实现的方法,其特征在于:所述构件运行平台是底层操作***的一个逻辑抽象层,用于为跨地址空间的构件对象生成一完成用户跨地址空间的构件调用的中间件构件。
4、根据权利要求3所述的计算机操作***构件化灵活内核实现的方法,其特征在于:所述存根构件对象设置在被访问的构件对象端;所述代理构件对象设置在被访问的构件对象的访问者端。
5、根据权利要求4所述的计算机操作***构件化灵活内核实现的方法,其特征在于:当多个用户地址空间同时对一个内核态构件进行调用时,被调用的构件为每个用户地址空间的调用者生成一个存根构件对象及代理构件对象。
6、根据权利要求4所述的计算机操作***构件化灵活内核实现的方法,其特征在于:构件运行平台还包括应用函数API,API提供用户基本的构件库服务和/或支持函数,共享代码与API一一对应。
7、一种基于权利要求1-6任一所述的方法在用户空间实现的***功能内核构件化的构件对象创建方法,其特征在于:该方法包括用户通过***提供的API,在用户空间创建用户态构件对象以及在用户空间创建内核态构件对象,所述在用户空间创建用户态构件对象的步骤为:
步骤11:在用户空间调用创建函数,并在其中设置用于指示在同一地址空间中创建构件对象的参数;
步骤12:在用户空间创建构件的类厂,然后使用类厂创建构件对象;
步骤13:返回构件对象的接口,使用该接口直接访问该构件对象。
所述在用户空间创建内核态构件对象的步骤为:
步骤21:在用户空间调用创建函数,其中设置参数,表示内核地址空间中创建构件对象;
步骤22:使用内核中的构件运行支持部件的功能,陷入到内核中,在内核中创建构件的类厂,然后使用类厂创建构件对象,生成构件对象的存根对象,并返回到用户态;
步骤23:返回到用户空间,***发现该***功能调用应返回一远程对象的接口,则相应创建一个和存根对象对应的代理对象;所述代理对象用于负责进程间通信,生成远程对象的本地代理;被调用构件对象所在的地址空间生成一存根对象,与代理对象匹配,通过存根对象向代理对象返回调用结果;
步骤24:使用代理对象接口,通过进程间通信实现对真实构件对象的访问
8、根据权利要求7所述的***功能内核构件化的构件对象创建方法,其特征在于:创建存根构件对象时,获取对应构件对象的相应接口的元数据,根据元数据构造存根的接口形式,即建立存根的虚表,同时存根还有保存指向真实对象的指针和接口地址等信息。
9、根据权利要求7所述的***功能内核构件化的构件对象创建方法,其特征在于:创建代理构件对象时,首先也要获取对应构件对象的相应接口的元数据,根据元数据构造代理的接口形式,并保存接口地址等信息。
10、根据权利要求7所述的***功能内核构件化的构件对象创建方法,其特征在于:存根和代理还都会保存一个***动态生成的标识符,***通过此标识符来匹配一对代理和存根。
11、根据权利要求7所述的***功能内核构件化的构件对象创建方法,其特征在于:代理和存根是对应于接口的,一个拥有多个接口的构件对象在作远程调用时,***为每个接口建立一对代理和存根对象。
12、一种对用户空间中创建的内核态构件对象进行调用的方法,其特征在于:所述内核态构件对象是根据权利要求7-11任一所述的***功能内核构件化的构件对象创建方法在用户空间所创建的,调用步骤为:
步骤1:当代理构件创建后返回一个指向代理对象的智能指针,对于智能指针方法的调用便转换为对代理对象方法的调用;
步骤2:代理对象调用通过进程间通信跳转到内核空间;
步骤3:***在内核空间另外启动一个线程,在该线程中使用进程间通信过程中的复制栈,调用存根对象;
步骤4:从存根对象调用真实构件对象,真实的构件对象在完成调用之后,返回到存根调用;
步骤5:从存根调用返回到进程间通信,在进程间通信中会根据接口方法的元数据将返回值和返回参数复制到代理对象所在的空间;
步骤6:进程间通信返回到代理调用;
步骤7:代理构件将调用结果返回给调用者。
13、根据权利要求12所述的方法,其特征在于:所述步骤2包括在进程间通信过程中,通过代理对象中的接口地址获取对应该接口的元数据,根据元数据将代理调用的栈拷贝到内核空间。
CNB021601348A 2002-12-31 2002-12-31 基于动态内核实现跨地址空间创建构件对象的方法 Expired - Fee Related CN1270229C (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CNB021601348A CN1270229C (zh) 2002-12-31 2002-12-31 基于动态内核实现跨地址空间创建构件对象的方法
US10/747,233 US20040153991A1 (en) 2002-12-31 2003-12-30 Method of realizing component object creation in over-address space based on dynamic kernel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB021601348A CN1270229C (zh) 2002-12-31 2002-12-31 基于动态内核实现跨地址空间创建构件对象的方法

Publications (2)

Publication Number Publication Date
CN1514353A CN1514353A (zh) 2004-07-21
CN1270229C true CN1270229C (zh) 2006-08-16

Family

ID=32739371

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021601348A Expired - Fee Related CN1270229C (zh) 2002-12-31 2002-12-31 基于动态内核实现跨地址空间创建构件对象的方法

Country Status (2)

Country Link
US (1) US20040153991A1 (zh)
CN (1) CN1270229C (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8020141B2 (en) * 2004-12-06 2011-09-13 Microsoft Corporation Operating-system process construction
US7882317B2 (en) * 2004-12-06 2011-02-01 Microsoft Corporation Process isolation using protection domains
US8849968B2 (en) 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US20070094495A1 (en) * 2005-10-26 2007-04-26 Microsoft Corporation Statically Verifiable Inter-Process-Communicative Isolated Processes
US8074231B2 (en) * 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
US8032898B2 (en) 2006-06-30 2011-10-04 Microsoft Corporation Kernel interface with categorized kernel objects
CN100462914C (zh) * 2006-08-04 2009-02-18 上海科泰世纪科技有限公司 构件初始化过程中的构造方法
US8453108B1 (en) * 2007-02-15 2013-05-28 Vmware, Inc. Static, configurable kernel interface
US8789063B2 (en) 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
CN101770393B (zh) * 2008-12-29 2013-06-05 上海科泰世纪科技有限公司 Applet构件模型及其应用方法
EP2360586B1 (en) * 2010-02-15 2018-08-22 Accenture Global Services Limited Open gateway framework for a service platform architecture
CN102331931B (zh) * 2011-07-25 2014-05-14 深圳万兴信息科技股份有限公司 动态库管理方法和装置
CN106250113A (zh) * 2016-07-18 2016-12-21 百富计算机技术(深圳)有限公司 一种应用开发平台
CN110046502B (zh) * 2019-04-08 2020-12-04 中国科学院软件研究所 一种基于虚拟化高效hash的可配置函数api监测方法
CN111462560B (zh) * 2020-04-29 2023-04-21 广州乐庚信息科技有限公司 一种基于云计算的网络教育方法及平台
CN114090072B (zh) * 2022-01-21 2022-04-26 成都云祺科技有限公司 Windows用户文件***开发框架搭建方法、***及其应用
CN114697162A (zh) * 2022-03-26 2022-07-01 浪潮云信息技术股份公司 一种基于微内核架构的物联网网关实现方法及***
CN114675892A (zh) * 2022-04-12 2022-06-28 杭州雾联科技有限公司 一种显示参数设置方法、装置、设备及存储介质
CN117827277B (zh) * 2024-03-05 2024-07-16 浙江省北大信息技术高等研究院 操作***的多内核适配装置、方法及工业物联网操作***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0011020D0 (en) * 2000-05-09 2000-06-28 Ibm Intercepting system API calls
US6996832B2 (en) * 2001-05-30 2006-02-07 Bea Systems, Inc. System and method for software component plug-in framework
US7024672B2 (en) * 2002-06-26 2006-04-04 Microsoft Corporation Process-mode independent driver model

Also Published As

Publication number Publication date
CN1514353A (zh) 2004-07-21
US20040153991A1 (en) 2004-08-05

Similar Documents

Publication Publication Date Title
CN1270229C (zh) 基于动态内核实现跨地址空间创建构件对象的方法
CN1249601C (zh) 用于远程web服务克隆和实例化的***和方法
US20110264861A1 (en) Methods and systems for utilizing bytecode in an on-demand service environment including providing multi-tenant runtime environments and systems
US7219329B2 (en) Systems and methods providing lightweight runtime code generation
CN1264106C (zh) 一种统一访问数据库***的方法
CN1746844A (zh) 一种跨操作***平台的机群***监控和管理方法
CN1496517A (zh) 用于宽带网络的计算机体系结构的数据同步***和方法
JP2000020487A (ja) ネットワークとして接続された複数のコンピュータマシン用の分散ソフトウェアシステム及びその実現手法
CN101727481A (zh) 对flow服务和大型文档进行映射化简的方法和服务器集群
US20140089905A1 (en) Enabling polymorphic objects across devices in a heterogeneous platform
US7490316B2 (en) Method and apparatus to implement adaptive scripting tool
CN1834918A (zh) 一种组件间调用方法
CN105975261B (zh) 一种面向统一接口调用的运行时***及运行方法
CN100346303C (zh) Java操作***中类装载的实现方法
US11106623B1 (en) Virtualized multicore systems with extended instruction heterogeneity
CN1933425A (zh) 实现设备访问接口的模块和方法、设备访问***和方法
CN101043381A (zh) 服务网格溯源信息收集***及方法
CN100365583C (zh) 组件的实现方法以及***
Falkner et al. Implementing asynchronous remote method invocation in Java
CN1805345A (zh) Web服务工作流处理器
CN1662011A (zh) 使用元数据定义映射来构建组件应用程序的***和方法
Grimshaw et al. Architectural support for extensibility and autonomy in wide-area distributed object systems
CN1208481A (zh) 分布式处理
CN1956445A (zh) 一种面向Web服务的门户组件的实现方法
CN1749957A (zh) 一种面向图形绘制引擎的io中间件装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: SHANGHAI KETAI SHIJI TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: KETAI SHIJI SCIENCE AND TECHNOLOGY CO., LTD., BEIJING

Effective date: 20050617

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20050617

Address after: 201203 Shanghai city Pudong New Area Jing Road No. 498 building 17 layer 2

Applicant after: Ketai Century Science and Technology Co., Ltd., Shanghai

Address before: 100176, Beijing Haidian District Tsinghua Science Park Innovation Building, block B, 6 floor

Applicant before: Ketai Shiji Science and Technology Co., Ltd., Beijing

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060816

Termination date: 20151231

EXPY Termination of patent right or utility model