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

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

Info

Publication number
CN1514353A
CN1514353A CNA021601348A CN02160134A CN1514353A CN 1514353 A CN1514353 A CN 1514353A CN A021601348 A CNA021601348 A CN A021601348A CN 02160134 A CN02160134 A CN 02160134A CN 1514353 A CN1514353 A CN 1514353A
Authority
CN
China
Prior art keywords
kernel
interface
component object
user
component
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.)
Granted
Application number
CNA021601348A
Other languages
English (en)
Other versions
CN1270229C (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 SHIJI SCIENCE AND TECHNOLOGY Co Ltd BEIJING
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 SHIJI SCIENCE AND TECHNOLOGY Co Ltd BEIJING filed Critical KETAI SHIJI SCIENCE AND TECHNOLOGY Co Ltd BEIJING
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创建构件对象,并实现跨地址空间的创建构件。
本发明的再一目的在于提供一种基于基于动态内核实现跨地址空间创建构件对象的方法,基于用户—中间件——服务的三层结构体系,由内核的构件支持部件自动建立作为中间件的构件对象的存根代理构件,使用构件对象的存根代理构件跨进程访问构件。
本发明的还一目的在于提供一种基于基于动态内核实现跨地址空间创建构件对象的方法,对于同一构件,可以二进制载体形式直接运行在用户空间或内核空间。
为此,本发明通过如下技术方案实现上述目的:
一种计算机操作系统构件化灵活内核实现的方法,将计算机操作系统的系统功能抽象为对象并用构件技术封装成独立的构件模块,提供系统级构件技术支持,将该系统功能接口以构件对象接口的形式体现,用户可根据需要动态地配置模块运行状态,将构件模块配置在内核态运行或置于用户态运行。并且,用户构件在内核态与用户态可以使用同样的方法获取系统功能构件对象的接口,而且调用方法相同。
具体地,内核态构件模块包括内存管理、进程/线程管理以及控制装载的设备管理器。如果需要,也可包括扩展构件,用于针对具体的设备或应用设置相对固定的对应应用构件,以及文件系统构件或图形系统构件或网络服务构件或设备驱动程序构件。
作为用户态构件模块,包括扩展构件或文件系统构件或图形系统构件或网络服务构件或设备驱动程序构件。
为用户通过该中间构件完成跨地址空间的构件调用,内核态构件模块包括逻辑抽象层一构件运行平台,利用该运行平台生成跨地址空间的创建构件对象的中间件构件。  而中间件为代理构件对象、存根构件对象;其中存根构件对象设置在被创建的构件对象端;代理构件对象设置在对象的创建者端。
本发明的一种基于上述系统功能内核构件化的构件对象创建方法,在于通过系统提供给用户的API,用户可以选择在内核空间或用户空间创建构件对象。
针对在内核空间使用系统功能接口,直接调用系统功能接口;而在用户空间调用系统功能接口,通过中间件到实际对象,从用户空间获取某个系统功能接口时,系统自动创建对应于该接口的代理构件/存根构件,然后把代理对象的接口返回给用户。
进一步地,在用户空间创建用户态构件对象步骤为:
步骤1:在用户空间调用创建函数,其中设置参数,在同一地址空间中创建构件对象;
步骤2:在用户空间创建构件的类厂,然后使用类厂创建构件对象;
步骤3:返回构件对象的接口,使用该接口直接访问该构件对象。
在用户空间创建内核态构件对象步骤为:
步骤1:在用户空间调用创建函数,其中设置参数,表示内核地址空间中创建构件对象;
步骤2:使用内核中的构件运行支持部件的功能,陷入到内核中,在内核中创建构件的类厂,然后使用类厂创建构件对象,生成构件对象的存根对象,并返回到用户态;
步骤3:返回到用户空间,系统发现该系统功能调用应返回一远程对象的接口,则相应创建一个和存根对象对应的代理对象;
步骤4:使用代理对象接口,通过进程间通信实现对真实构件对象的访问。
当然,用户可以跨地址空间在用户空间创建构件对象。跨地址空间创建构件对象是由系统自动创建中间件的存根构件/代理构件,创建过程通过自动化散列集实现。
具体地,在跨地址空间的构件调用中,代理对象负责进程间通信,生成远程对象的本地代理;被调用构件对象所在的地址空间生成一存根对象,与代理对象匹配,通过存根对象向代理对象返回调用结果。其中创建存根构件对象时,获取对应构件对象的相应接口的元数据,根据元数据构造存根的接口形式,即建立存根的虚表,同时存根还有保存指向真实对象的指针和接口地址等信息;创建代理构件对象时,首先也要获取对应构件对象的相应接口的元数据,根据元数据构造代理的接口形式,并保存接口地址等信息。
为此,存根和代理还都会保存一个系统动态生成的标识符,系统通过此标识符来匹配一对代理和存根。代理/存根是对应于接口的,一个拥有多个接口的构件对象在作远程调用时,系统为每个接口建立一对代理/存根对象。
这样,在跨地址空间的通道建立后,代理与存根运行步骤为:
步骤1:当代理创建后返回一个指向代理对象的智能指针,对于智能指针方法的调用便转换为对代理对象方法的调用;
步骤2:代理对象调用通过IPC跳转到内核空间;
步骤3:系统在内核空间另外起一个线程,在该线程中使用IPC过程中复制的栈,调用存根对象;
步骤4:存根对象调用真实对象,真实的构件对象在完成调用之后,返回到存根调用;
步骤5:存根调用返回到IPC,在IPC中会根据接口方法的元数据将返回值和返回参数复制到代理对象所在的空间;
步骤6:IPC返回到代理调用;
步骤7:代理调用返回给调用者。
上述步骤2包括在IPC过程中,通过代理对象中的接口地址获取对应该接口的元数据,根据元数据将代理调用的栈拷贝到内核空间。
本发明操作系统把部分系统功能用构件技术封装成独立的构件模块,例如文件系统和图形系统。用户可以根据需要动态地配置这些模块运行状态,也就是说可以根据用户的需要,将一些来源值得信赖或对运行效率要求高的构件模块配置于内核态,而另一些不太稳定的模块置于用户态运行,在一个系统中同时满足稳定性、安全性与实时性的特殊要求。这样的体系结构不必区分是整体内核还是微内核,事实上所谓的“内核”可大可小,完全依据系统自身的需求动态决定。这就是本发明独创性的“灵活内核”体系结构,利用构件技术解决了长期以来困扰操作系统体系结构设计者的整体内核和微内核在性能、效率两者之间不能两全其美的矛盾。
附图说明
图1为本发明操作系统的三层结构示意图,图1中,1为动态链接库函数调用;2为构件对象接口方法调用;
图2为本发明构件运行平台共享代码动态链接库映射机制示意图;
图3为本发明基于构件化内核在用户空间创建构件对象接口结构示意图;
图4为本发明基于构件运行平台共享代码动态链接库在内核空间创建构件对象接口结构示意图;
图5为本发明基于构件运行平台共享代码动态链接库在用户空间创建构件对象接口结构示意图;
图6为本发明代理与存根生成流程图;
图7为本发明跨地址空间创建构件对象时代理与存根运行步骤流程图;
图8为本发明内核机制实现流程图;
图9为本发明构件接口方法调用流程图。
具体实施方式
如图1-9所示,本发明的本质是将构件技术引进到内核,因而内核是构件化,目的是实现系统的灵活多变。构件化内核是将计算机操作系统的系统功能抽象为对象并用构件技术封装成独立的构件模块,提供系统级构件技术支持。另外,本发明操作系统利用构件技术的优势在系统层面实现了“三层结构”(Client/Middleware/Server)计算模型,完全把构件技术的使用融入到系统内核中,由于构件、中间件技术,可以做到构件运行环境对用户和构件制造者透明,例如构件可以不加修改运行于不同地址空间。
内核态构件模块包括进程构件对象、线程构件对象、同步(Mutex,Monitor等)构件对象和虚拟内存构件对象以及控制装载的设备管理器。如果需要,也可包括扩展构件,用于针对具体的设备或应用设置相对固定的对应应用构件,以及文件系统构件或图形系统构件或网络服务构件或设备驱动程序构件;作为用户态构件模块,包括扩展构件或文件系统构件或图形系统构件或网络服务构件或设备驱动程序构件。
用户构件在内核态与用户态可以使用同样的方法获取系统功能构件对象的接口,而且调用方法相同。
参见图2、4、5,本发明作为中间件的构件运行平台与底层操作系统密不可分,在某种程度上构件运行平台是底层操作系统的一个抽象层,构件运行平台为客户程序与操作系统的交互界面,为客户程序提供相关的函数调用及构件服务,同时隐藏了底层操作系统的特征。构件运行平台为内核共享代码生成的虚拟动态链接库,通过该内核共享代码的映射机制,用户程序直接共享这些代码,在加载用户进程时,通过自动在用户空间注册该虚拟的动态链接库,将二进制载体直接运行操作。同时,构件运行平台还包括应用函数API,API是指动态链接库提供的系统调用函数,如:进程处理、线程管理、类对象等,提供用户基本的构件库服务和/或支持函数,共享代码表中的共享代码与API一一对应。
在本发明操作系统中,内核代码及用户代码都将被加载到共享地址空间(内核私有代码被加以保护,禁止用户进程直接访问),编译器将内核共享代码生成一个虚拟的动态链接库,通过内核共享代码的映射机制,所有用户程序共享这些代码,操作系统在加载用户进程的初始化时通过自动在用户空间注册该虚拟的动态链接库。动态链接库的引出API表与内核共享代码API表一一对应。动态链接库的引出API是提供给用户基本的构件库的服务及其他一些支持函数。
本发明内核代码映射由动态链接库的机制加以体现,由于都在共享地址空间,用户进程无需陷入到内核空间只需要一个长跳转指针就可以共享该部分代码资源,这样减少了切换CPU状态的系统消耗,并且该部分代码由所有进程共享(内核也是一个进程)可以最大程度的减少用户目标代码大小,以符合嵌入式市场对应用上的要求。标准函数库是完全基于系统功能接口实现的。
具体地,如图3、6所示,系统功能接口的使用:在内核空间使用系统功能接口,是直接的接口调用;在用户空间调用系统功能接口,也是通过代理/存根到实际对象,从用户空间获取某个系统功能接口时,系统会自动创建对应于该接口的代理/存根,然后把代理对象的接口返回给用户。
文件系统作为例子来说明。将一个构件加载在内核态和用户态,具体流程如下:
1、首先编写一个构件A;
2、编写一个用户程序,在用户态创建构件A的对象,并调用其中的方法;
3、编写一个用户程序,在内核态创建构件A的对象,并调用其中的方法;
其运行结果一致。
本发明用户态使用系统功能接口要跨越地址空间,在内核中使用系统功能接口则无需跨越地址空间,这其间的差异完全被系统所做的工作覆盖了。
下面说明在用户态和内核态获取系统功能接口的流程。
以创建进程为例,参见图5、8,在用户态获取系统功能接口的流程:
1、调用相应的API函数;
2、API函数调用系统功能接口,通过进程间通信(IPC)陷入到内核态创建一个新的进程,并创建一个对应于新进程构件对象接口的存根对象;
3、IPC返回到用户空间,系统发现该系统功能调用应该返回一个远程对象的接口,则会相应创建一个和存根(存根)对象对应的代理(代理)对象;
4、使用获取的代理对象接口,通过进程间通信实现对真实构件对象的访问。
以创建进程为例,参见图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 (23)

1、一种计算机操作系统构件化灵活内核实现的方法,其特征在于:将计算机操作系统的系统功能抽象为对象并用构件技术封装成独立的构件模块,提供系统级构件技术支持,将该系统功能接口以构件对象接口的形式体现,用户可根据需要动态地配置模块运行状态,将构件模块配置在内核态运行或置于用户态运行。
2、根据权利要求1所述的计算机操作系统构件化灵活内核实现的方法,其特征在于:用户构件在内核态与用户态可以使用同样的方法获取系统功能构件对象的接口,而且调用方法相同。
3、根据权利要求1所述的计算机操作系统构件化灵活内核实现的方法,其特征在于:内核态构件模块包括内存管理、进程/线程管理以及设备管理器。
4、根据权利要求3所述的计算机操作系统构件化灵活内核实现的方法,其特征在于:内核态构件模块还包括扩展构件,用于针对具体的设备或应用设置相对固定的对应应用构件。
5、根据权利要求3或4所述的计算机操作系统构件化灵活内核实现的方法,其特征在于:内核态构件模块还包括文件系统构件或图形系统构件或网络服务构件或设备驱动程序构件。
6、根据权利要求1所述的计算机操作系统构件化灵活内核实现的方法,其特征在于:用户态构件模块包括扩展构件或文件系统构件或图形系统构件或网络服务构件或设备驱动程序构件。
7、根据权利要求1或3或4所述的计算机操作系统构件化灵活内核实现的方法,其特征在于:内核态构件模块包括逻辑抽象层一构件运行平台,利用该运行平台为跨地址空间的构件对象生成中间件构件,用户通过该中间件构件完成跨地址空间的构件调用。
8、根据权利要求7所述的计算机操作系统构件化灵活内核实现的方法,其特征在于:中间件为代理构件对象、存根构件对象;其中存根构件对象设置在被访问的构件对象端;代理构件对象设置在对象的访问者端。
9、根据权利要求8所述的计算机操作系统构件化灵活内核实现的方法,其特征在于:在多个地址空间同时对一个构件进行调用时,被调用的构件为每个地址空间的调用者生成一个存根构件对象,该构件与调用者一端的代理构件对象相对应。
10、根据权利要求8所述的计算机操作系统构件化灵活内核实现的方法,其特征在于:构件运行平台还包括应用函数API,API提供用户基本的构件库服务和/或支持函数,共享代码与API一一对应。
11、一种基于上述系统功能内核构件化的构件对象创建方法,其特征在于:通过系统提供给用户的API,用户可以选择在内核空间或用户空间创建构件对象。
12、根据权利要求11所述的基于上述系统功能内核构件化的构件对象创建方法,其特征在于:在内核空间使用系统功能接口,直接调用系统功能接口。
13、根据权利要求11所述的基于上述系统功能内核构件化的构件对象创建方法,其特征在于:在用户空间调用系统功能接口,通过中间件到实际对象,从用户空间获取某个系统功能接口时,系统自动创建对应于该接口的代理构件/存根构件,然后把代理对象的接口返回给用户。
14、根据权利要求11所述的基于上述系统功能内核构件化的构件对象创建方法,其特征在于:在用户空间创建用户态构件对象步骤为:
步骤1:在用户空间调用创建函数,其中设置参数,在同一地址空间中创建构件对象;
步骤2:在用户空间创建构件的类厂,然后使用类厂创建构件对象;
步骤3:返回构件对象的接口,使用该接口直接访问该构件对象。
15、根据权利要求11所述的基于上述系统功能内核构件化的构件对象创建方法,其特征在于:在用户空间创建内核态构件对象步骤为:
步骤1:在用户空间调用创建函数,其中设置参数,表示内核地址空间中创建构件对象;
步骤2:使用内核中的构件运行支持部件的功能,陷入到内核中,在内核中创建构件的类厂,然后使用类厂创建构件对象,生成构件对象的存根对象,并返回到用户态;
步骤3:返回到用户空间,系统发现该系统功能调用应返回一远程对象的接口,则相应创建一个和存根对象对应的代理对象;
步骤4:使用代理对象接口,通过进程间通信实现对真实构件对象的访问。
16、根据权利要求11所述的基于上述系统功能内核构件化的构件对象创建方法,其特征在于:用户可以跨地址空间创建构件对象跨地址空间创建构件对象是由系统自动创建中间件的存根构件/代理构件,创建过程通过自动化散列集实现。
17、根据权利要求16所述的基于上述系统功能内核构件化的构件对象创建方法,其特征在于:在跨地址空间的构件调用中,代理对象负责进程间通信,生成远程对象的本地代理;被调用构件对象所在的地址空间生成一存根对象,与代理对象匹配,通过存根对象向代理对象返回调用结果。
18、根据权利要求17所述的基于上述系统功能内核构件化的构件对象创建方法,其特征在于:创建存根构件对象时,获取对应构件对象的相应接口的元数据,根据元数据构造存根的接口形式,即建立存根的虚表,同时存根还有保存指向真实对象的指针和接口地址等信息。
19、根据权利要求17所述的基于上述系统功能内核构件化的构件对象创建方法,其特征在于:创建代理构件对象时,首先也要获取对应构件对象的相应接口的元数据,根据元数据构造代理的接口形式,并保存接口地址等信息。
20、根据权利要求17所述的基于上述系统功能内核构件化的构件对象创建方法,其特征在于:存根和代理还都会保存一个系统动态生成的标识符,系统通过此标识符来匹配一对代理和存根。
21、根据权利要求17所述的基于上述系统功能内核构件化的构件对象创建方法,其特征在于:代理/存根是对应于接口的,一个拥有多个接口的构件对象在作远程调用时,系统为每个接口建立一对代理/存根对象。
22、根据权利要求13-21之一所述的基于上述系统功能内核构件化的构件对象创建方法,其特征在于:在跨地址空间的通道建立后,代理与存根运行步骤为:
步骤1:当代理创建后返回一个指向代理对象的智能指针,对于智能指针方法的调用便转换为对代理对象方法的调用;
步骤2:代理对象调用通过IPC跳转到内核空间;
步骤3:系统在内核空间另外起一个线程,在该线程中使用IPC过程中复制的栈,调用存根对象;
步骤4:从存根对象调用真实构件对象,真实的构件对象在完成调用之后,返回到存根调用;
步骤5:从存根调用返回到IPC,在IPC中会根据接口方法的元数据将返回值和返回参数复制到代理对象所在的空间;
步骤6:IPC返回到代理调用;
步骤7:代理调用返回给调用者。
23、根据权利要求22所述的基于上述系统内核功能构件化的跨地址空间构件对象创建方法,其特征在于:步骤2包括在IPC过程中,通过代理对象中的接口地址获取对应该接口的元数据,根据元数据将代理调用的栈拷贝到内核空间。
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 true CN1514353A (zh) 2004-07-21
CN1270229C 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)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100462914C (zh) * 2006-08-04 2009-02-18 上海科泰世纪科技有限公司 构件初始化过程中的构造方法
CN102164101A (zh) * 2010-02-15 2011-08-24 埃森哲环球服务有限公司 开放式网关框架
CN101770393B (zh) * 2008-12-29 2013-06-05 上海科泰世纪科技有限公司 Applet构件模型及其应用方法
CN110046502A (zh) * 2019-04-08 2019-07-23 中国科学院软件研究所 一种基于虚拟化高效hash的可配置函数api监测方法
CN111462560A (zh) * 2020-04-29 2020-07-28 广州乐庚信息科技有限公司 一种基于云计算的网络教育方法及平台
CN114090072A (zh) * 2022-01-21 2022-02-25 成都云祺科技有限公司 Windows用户文件系统开发框架搭建方法、系统及其应用
CN114697162A (zh) * 2022-03-26 2022-07-01 浪潮云信息技术股份公司 一种基于微内核架构的物联网网关实现方法及系统
CN117827277A (zh) * 2024-03-05 2024-04-05 浙江省北大信息技术高等研究院 操作系统的多内核适配装置、方法及工业物联网操作系统

Families Citing this family (10)

* 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
US8074231B2 (en) * 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
US20070094495A1 (en) * 2005-10-26 2007-04-26 Microsoft Corporation Statically Verifiable Inter-Process-Communicative Isolated Processes
US8032898B2 (en) 2006-06-30 2011-10-04 Microsoft Corporation Kernel interface with categorized kernel objects
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
CN102331931B (zh) * 2011-07-25 2014-05-14 深圳万兴信息科技股份有限公司 动态库管理方法和装置
CN106250113A (zh) * 2016-07-18 2016-12-21 百富计算机技术(深圳)有限公司 一种应用开发平台

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

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100462914C (zh) * 2006-08-04 2009-02-18 上海科泰世纪科技有限公司 构件初始化过程中的构造方法
CN101770393B (zh) * 2008-12-29 2013-06-05 上海科泰世纪科技有限公司 Applet构件模型及其应用方法
CN102164101A (zh) * 2010-02-15 2011-08-24 埃森哲环球服务有限公司 开放式网关框架
CN102164101B (zh) * 2010-02-15 2015-11-25 埃森哲环球服务有限公司 开放式网关框架
CN110046502A (zh) * 2019-04-08 2019-07-23 中国科学院软件研究所 一种基于虚拟化高效hash的可配置函数api监测方法
CN111462560A (zh) * 2020-04-29 2020-07-28 广州乐庚信息科技有限公司 一种基于云计算的网络教育方法及平台
CN114090072A (zh) * 2022-01-21 2022-02-25 成都云祺科技有限公司 Windows用户文件系统开发框架搭建方法、系统及其应用
CN114697162A (zh) * 2022-03-26 2022-07-01 浪潮云信息技术股份公司 一种基于微内核架构的物联网网关实现方法及系统
CN117827277A (zh) * 2024-03-05 2024-04-05 浙江省北大信息技术高等研究院 操作系统的多内核适配装置、方法及工业物联网操作系统

Also Published As

Publication number Publication date
US20040153991A1 (en) 2004-08-05
CN1270229C (zh) 2006-08-16

Similar Documents

Publication Publication Date Title
CN1270229C (zh) 基于动态内核实现跨地址空间创建构件对象的方法
US8984009B2 (en) Methods and systems for utilizing bytecode in an on-demand service environment including providing multi-tenant runtime environments and systems
CN1264106C (zh) 一种统一访问数据库系统的方法
CN1746844A (zh) 一种跨操作系统平台的机群系统监控和管理方法
JP2004206712A (ja) トポロジ・アウェア・グリッド・サービス・スケジューラ・アーキテクチャ
CN1794177A (zh) 用于为虚拟机揭示处理器拓扑结构的系统和方法
CN1589442A (zh) 用于与多重调度池进行消息接发的应用服务器的系统
US20090125611A1 (en) Sharing loaded java classes among a plurality of nodes
CN1867897A (zh) 扩展基于脚本的应用程序的能力和执行效率的系统和方法
US20140089905A1 (en) Enabling polymorphic objects across devices in a heterogeneous platform
CN101169733A (zh) 用于提供基于策略的操作系统服务的方法和系统
CN1933425A (zh) 实现设备访问接口的模块和方法、设备访问系统和方法
CN1805345A (zh) Web服务工作流处理器
CN1889048A (zh) 组件的实现方法以及系统
CN1777154A (zh) 用于对应用组件的接口的方法和系统
US20050132327A1 (en) Software development environment
CN1945541A (zh) 处理操作信息传送控制系统和方法
Heger Mobile Devices-An Introduction to the Android Operating Environment-Design, Architecture, and Performance Implications
CN1956445A (zh) 一种面向Web服务的门户组件的实现方法
CN1427361A (zh) 基于客户/服务器结构的底层设备驱动的方法
CN1208481A (zh) 分布式处理
CN1749957A (zh) 一种面向图形绘制引擎的io中间件装置
CN200953143Y (zh) 一种虚拟硬件系统
CN1719416A (zh) 嵌入式并行计算系统以及嵌入式并行计算方法
CN1251079C (zh) 实现不同系统之间数据交互的方法

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