CN1783015A - 启用子系统间的资源共享 - Google Patents

启用子系统间的资源共享 Download PDF

Info

Publication number
CN1783015A
CN1783015A CNA2005101188729A CN200510118872A CN1783015A CN 1783015 A CN1783015 A CN 1783015A CN A2005101188729 A CNA2005101188729 A CN A2005101188729A CN 200510118872 A CN200510118872 A CN 200510118872A CN 1783015 A CN1783015 A CN 1783015A
Authority
CN
China
Prior art keywords
subsystem
resource
application program
operating system
computer
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.)
Pending
Application number
CNA2005101188729A
Other languages
English (en)
Inventor
A·安基尼尔
K·A·凡卡塔
P·本达普迪
R·克汉德瑞卡
R·加兰
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1783015A publication Critical patent/CN1783015A/zh
Pending 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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
    • 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/445Program loading or initiating
    • G06F9/44557Code layout in executable memory
    • G06F9/44563Sharing
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

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)
  • Multi Processors (AREA)

Abstract

提供了用于启用子系统间的资源共享的技术。执行应用程序的子系统(“应用程序子系统”)从提供诸如DLL等资源的另一个子系统(“资源子系统”)处接收资源。然后,当应用程序子系统的应用程序被执行时,该应用程序可以请求来自于应用程序子系统的资源,诸如DLL。当确定所请求的资源是与资源子系统相关联之后,应用程序子系统可以与资源子系统通信以请求该资源。资源子系统然后可以装载该资源。当应用程序诸如通过调用DLL的方法利用该资源来执行活动时,应用程序子资源可以与资源子系统通信以请求资源来执行该活动。当完成活动之后,资源子系统可以向资源子系统提供结果的指示。

Description

启用子系统间的资源共享
技术领域
本发明描述的技术一般涉及操作系统,尤其涉及启用子系统间的资源共享。
背景技术
操作系统执行涉及计算机系统的各种任务,包括管理计算机系统的硬件和软件资源。硬件资源包括处理器、初级存储(例如,存储器)、次级存储(例如,硬盘或光盘)、打印机、显示器适配器、网络接口卡、输入/输出端口等。软件资源包括应用程序、用户界面、设备驱动程序、网络协议栈等。操作系统诸如在应用程序指导下管理并协调这些资源来完成各种任务。
操作系统可以利用子系统向应用程序提供功能。子系统是实现操作系统的应用程序接口(API)的操作系统组件。子系统可以调用内核组件的函数。内核组件是提供核心操作系统函数的操作系统组件。
操作系统可以包括多个子系统,每一个子系统展示了不同的操作系统行为。作为示例,操作系统可以将可移植操作系统接口(“POSIX”)和MICROSOFTWINDOWS接口作为两个独立的子系统实现。这些子系统都在一公用操作系统上运行。这样的操作系统可以用为POSIX设计的应用程序和为MICROSOFTWINDOWS设计的应用程序来运作。
然而,为一个子系统设计的应用程序可能无法共享为另一个子系统设计的资源。作为示例,POSIX应用程序可能无法装载为MICROSOFT WINDOWS设计的动态链接库(“DLL”)。类似地,MICROSOFT WINDOWS应用程序可能无法装载为POSIX设计的DLL。为了使得为一个子系统设计的DLL能够使用另一个子系统来运作,开发者可以为另一个子系统重建DLL。然而,重建DLL可能需要涉及该DLL的源代码。例如,当DLL是由软件销售商提供时,源代码可能不可用。
作为示例,拥有基于UNIX的应用程序的顾客可能想要使该应用程序用MICROSOFT WINDOW来运行。该应用程序可能含有由顾客开发的部分和由诸如数据库软件销售商等软件销售商提供的部分。顾客然后可以将其开发的部分移植到POSIX上,作为将其应用程序移动到MICROSOFT WINDOWS的中间步骤。然而,尽管软件销售商可以使得其提供的部分作为DLL对MICROSOFT WINDOWS可用,但是它可能无法使其提供的部分对POSIX可用。因为顾客应用程序的POSIX部分不能使用软件销售商为MICROSOFT WINDOWS设计的DLL,因此顾客的应用程序可能无法完全使用POSIX子系统来运行。顾客可能因此较不倾向于将其应用程序移动到MICROSOFT WINDOWS。因此,启用子系统间的资源共享是急需的。
附图说明
图1是示出可在其上执行本发明的技术的合适的计算环境的示例的框图。
图2是示出操作系统的组件的框图。
图3是示出在一个实施例中含有利用多个子系统的服务的应用程序的操作系统组件的框图。
图4是示出一个实施例中的应用程序的框图。
图5是示出一个实施例中由POSIX组件执行的例程的流程图。
具体实施方式
提供了用于启用子系统间的资源共享的技术。在各实施例中,执行应用程序的子系统(“应用程序子系统”)从提供资源的另一个子系统(“资源子系统”)接收资源,诸如DLL。子系统能够被启用以用彼此来运作。然后,执行应用程序子系统的应用程序,该应用程序可以请求来自应用程序子系统的资源,诸如DLL。应用程序子系统一旦确定所请求的资源是与资源子系统相关联的,就可以与资源子系统通信以请求资源。资源子系统然后可以执行某些初始化内务处理活动并装载资源。当应用程序诸如通过调用DLL的方法来利用该资源以执行活动时,应用程序子系统可以与资源子系统通信以请求资源来执行该活动。一旦完成该活动之后,资源子系统可以向资源子系统提供结果的指示。这样,一个子系统可以共享为另一子系统设计的资源。在各实施例中,应用程序可以在资源子系统执行初始化内务处理之后直接利用资源。
子系统之间的资源共享可以涉及使用对子系统公用的工具。作为示例,POSIX子系统和MICROSOFT WINDOWS子系统都拥有“C”运行库(“CRT”)。CRT可以是具有常用函数的一个或多个静态链接库。应用程序开发者有时对应用程序使用静态链接库。当库是由应用程序静态链接时,它成为应用程序执行代码的一部分。将应用程序迁移到另一操作系统上的应用程序开发者可能需要使用由诸如为MICROSOFT WINDOWS设计的库和为POSIX设计的另外的库等各种库提供的函数,因此可能链接这些库。执行链接以将由编译器发出的目标代码转换为可执行代码。当多个库被链接,且这些库拥有共用的方法名时,会导致出错。作为示例,两个库都可以提供“print(打印)”函数。当两个库被链接时,该冲突可能会导致出错。至少存在解决这些出错的三种方法。一种解决方案是,通过更改两个库中的一个或两者的名字来去除重复的名字。另一种解决方案法涉及使用DLL。DLL可以被保证拥有它们自己的名字空间。即,DLL的方法由提供该方法的DLL来标识。结果,当应用程序调用DLL的方法时,方法的名字(如用DLL所标识的)不可能与静态链接库或另一个DLL中的名字冲突。第三种解决方案是创建提供作为两个库中的函数的超集的统一名字空间的静态链接库。对多个静态链接库共用的方法在超集库中仅提供一次。当方法名相同,但是方法接收不同的参数或者提供不同的函数时,不同的方法可由应用程序通过诸如提供标志以具体地标识方法来调用。这样,尽管在子系统上共享资源,仍有可能避免名字冲突。
现在转向附图,图1示出了本发明的技术或工具可在其中实现的合适的计算系统环境110或者操作环境。计算系统环境110只是合适的计算环境的一个示例,并不旨在对本发明的设备的使用范围或功能提出任何限制。也不应该把计算系统环境110解释为对示例性操作环境110中示出的任一组件或其组合有任何依赖性或要求。
本发明的工具可用众多其它通用或专用计算系统环境或配置来操作。适合在本发明的工具中使用的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持或膝上型设备、图形输入板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子产品、网络PC、小型机、大型机、包含上述系统或设备中的任一个的分布式计算机环境等。
本发明的工具可在诸如由计算机执行的程序模块等的计算机可执行指令的通用语境下描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。本发明的工具也可以在分布式计算环境中实现,其中任务由通过通信网络连接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
参考图1,用于实现本发明的工具的一个示例性系统包括计算机111形式的通用计算设备。计算机111的组件可以包括,但不限于,处理单元120、系统存储器130和将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构中的任一种的局部总线。作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、扩展的ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也被称为Mezzanine总线)。
计算机111通常包括各种计算机可读介质。计算机可读介质可以是能够被计算机111访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机111访问的任何其它介质。通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语“已调制数据信号”指的是这样一种信号,其一个或多个特征以在信号中编码信息的方式被设定或更改。作为示例,而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其它无线介质。上述中任一个的组合也应包括在计算机可读介质的范围之内。
系统存储器130包括易失性或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包含有助于诸如启动时在计算机111中元件之间传递信息的基本例程,它通常存储在ROM 131中。RAM 132通常包含处理单元120可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例,而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机111也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器141,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151,以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘156中读取或向其写入的光盘驱动器155。可以在示例性操作环境下使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常由不可移动存储器接口,诸如接口140连接至系统总线121,磁盘驱动器151和光盘驱动器155通常由可移动存储器接口,诸如接口150连接至系统总线121。
以上描述和在图1中示出的驱动器及其相关联的计算机存储介质为计算机111提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。操作系统144、应用程序145、其它程序模块146和程序数据147在这里被标注了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,诸如图形输入板或电子数字化仪164、麦克风163、键盘162和定点设备161(通常指鼠标、跟踪球或触摸垫)向计算机111输入命令和信息。图1中未示出的其它输入设备可以包括操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常由耦合至系统总线的用户输入接口160连接至处理单元120,但也可以由其它接口或总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器191或其它类型的显示设备也经由接口,诸如视频接口190连接至系统总线121。监视器191也可以与触摸屏面板或其类似物集成。注意,监视器191和/或触摸屏面板可以被物理地耦合至包含计算设备111的外壳,诸如在图形输入板类型的个人计算机中那样。此外,计算机也可以包括其它外围输出设备,诸如扬声器195和打印机196,它们可以通过输出外围接口194或其类似物连接。
计算机111可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连接在网络化环境下操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机111描述的许多或所有元件,尽管在图1中只示出存储器存储设备181。图1中所示逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这样的网络环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。例如,在本发明的设备中,计算机111可以包括从中迁移数据的源机器,而远程计算机180可以包括目标机器。然而,注意,源机器和目标机器不需要由网络或任何其它手段连接,而是相反,数据可以经由能够由源平台写入并由一个或多个目标平台读取的任何介质来迁移。
当在LAN网络环境中使用时,计算机111通过网络接口或适配器170连接至局域网171。当在WAN网络环境中使用时,计算机111通常包括调制解调器172或用于通过诸如因特网等WAN 173建立通信的其它装置。调制解调器172可以是内部或外部的,它可以通过用户输入接口160或其它合适的机制连接至系统总线121。在网络化环境中,相对于计算机111所描述的程序模块或其部分可以存储在远程存储器存储设备中。作为示例,而非限制,图1示出了远程应用程序185驻留在存储器设备181上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。
尽管各种功能和数据在图1中被示为驻留在以特定方式排列的特定计算机系统上,但是本领域的技术人员可以理解,这样的功能和数据可以用各种其它方式按不同的排列分布在计算机系统上。尽管如上所述配置的计算机系统一般被用于支持本发明的工具的运行,但是本领域的普通技术人员可以理解,本发明的工具可以使用各种类型和配置的设备来执行,并且含有各种组件。
本发明的技术可在诸如由一台或多台计算机或其它设备执行的程序模块等计算机可执行指令的通用语境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。一般而言,程序模块的功能可以如在多个实施例中所需来结合或分布。
图2是示出操作系统组件的框图。操作系统200包括运行在用户模式202和内核模式204中的多个组件。
运行在用户模式中的组件包括,例如安全子系统206、登录进程208、WINDOWS子系统210、WINDOWS应用程序212、POSIX子系统214以及POSIX应用程序216。
安全子系统向应用程序和操作系统提供安全服务。作为示例,安全子系统可以提供登录进程208和功能以使得用户能够登录至操作系统。
WINDOWS子系统可以向应用程序提供MICROSOFT WINDOWS功能,诸如WINDOWS应用程序。WINDOWS子系统可以实现涉及MICROSOFT WINDOWS操作系统的应用程序接口。作为示例,WINDOWS子系统可以接收由WINDOWS应用程序对WINDOWS子系统的API做出的请求、执行涉及该请求的某些活动、以及调用操作系统内核来执行剩余的活动。
操作系统也可以含有另外的子系统,诸如POSIX子系统214。POSIX子系统可以实现涉及遵循POSIX规范的操作系统的API。该API可以由POSIX应用程序216使用来与POSIX操作系统通信以执行任务。
当操作系统包括多个子系统时,它能够提供各种操作系统,诸如MICROSOFTWINDOWS和POSIX。这样,为这些种类的操作系统设计的应用程序可以在包括多个子系统的操作系统上运行。
子系统可以利用由运行在内核模式204中的执行服务组件218提供的服务。执行服务组件可以包括另外的组件,诸如驱动程序220和内核224。驱动程序可以提供系统的各种软件和硬件组件之间的直接通信。作为示例,驱动程序可以提供软件组件和网络接口卡之间的通信。内核可以提供核心操作系统函数和与处理器的通信。作为示例,内核可以通过装载程序寄存器并指示处理器开始执行线程来调度线程执行。硬件抽象层222也可以运行在内核模式中以提供涉及硬件设备的操作系统组件和接口。硬件抽象层可以使得操作系统的软件组件能够避免必须提供对特定销售商的硬件设备专用的功能。
尽管应用程序被示为是操作系统的一部分,但是它们可以如图1所示的通过利用由操作系统提供的各种工具来执行。
图3是示出实施例中含有利用多个子系统的服务的应用程序的操作系统的组件的框图。在所示实施例中,应用程序接收来自WINDOWS子系统和POSIX子系统的服务。应用程序312然后被认为是WINDOWS/POSIX子系统。在各实施例中,WINDOWS/POSIX应用程序可以是主要为子系统之一,例如WINDOWS来设计的。
WINDOWS/POSIX应用程序可以能够利用由两个子系统提供的资源。作为示例,WINDOWS/POSIX应用程序可以访问涉及两个子系统的库和DLL。为了启用资源共享,两个子系统之一或两者可以被修改以能够与另一个子系统通信。于是,当执行应用程序且该应用程序访问资源时,WINDOWS子系统可以确定该资源在POSIX子系统处可用,且可以请求POSIX子系统装载资源。
当接收到装载资源的请求之后,POSIX子系统可以首先试图确定与应该能够访问该资源的应用程序的进程的有关的线程的列表。POSIX子系统也可以向由所标识的线程创建的其它线程(例如,新产生的子线程)提供对资源的访问。通过这样做,POSIX子系统可以隐含地信任与请求资源的应用程序有关的WINDOWS子系统的线程。为了确定哪些线程与该应用程序有关,POSIX子系统可以执行如下关于图5所述的方法。
于是,该体系结构启用了“混合模式”进程,诸如利用多个子系统的服务的进程。在该体系结构中,不需要来自两个子系统的服务的应用程序会继续不经修改地运行。这些应用程序会使用为其设计该应用程序的子系统的服务。
图4是示出一个实施例中的应用程序的框图。应用程序可以是WINDOWS/POSIX混合模式应用程序。应用程序402可以利用C运行库404、DLL406和库408(例如静态链接库)。作为示例,C运行库可以提供标准库函数,诸如在堆中分配空间;DLL可以向WINDOWS子系统提供接口,诸如呈现用户界面;而其它库可以提供其它服务,诸如第三方销售商提供实用程序库。
当应用程序需要利用由POSIX子系统的组件提供的服务时,该应用程序可以调用POSIX.exe应用程序410。POSIX.exe组件可以作为使用WINDOWS子系统操作的组件来编写,但是它可以装载与POSIX子系统通信的PSX DLL组件412来提供POSIX相关功能。PSX DLL组件是使得应用程序能够调用由POSIX子系统实现的接口的DLL。在各实施例中,应用程序可以直接装载PSX DLL组件,PSX DLL组件可以启动POSIX.exe组件。
当POSIX.exe组件(由PSX DLL组件或者应用程序)启动时,POSIX.exe组件可以向WINDOWS子系统查询与要求POSIX资源的进程相关的线程的列表。POSIX.exe组件然后可以向POSIX子系统提供该线程的列表。POSIX子系统然后能够信任出现在该列表上的线程以及其祖先被指示为是列表上的线程的其它线程。
这样,诸如PSX DLL和POSIX.exe组件等可能最初与POSIX子系统相关的组件可以被重写为利用WINDOWS子系统的组件。这些组件然后可以继续使用由POSIX子系统提供的服务。
图5是示出一个实施例中由POSIX组件执行的例程的流程图。该例程可以由POSIX.EXE组件执行。
该例程在框502处开始。
在框504处,该例程请求WINDOWS子系统枚举与请求POSIX服务的应用程序相关的线程的列表。WINDOWS子系统能够枚举与进程相关的所有线程。
在框506处,该例程从WINDOWS子系统接收所枚举的线程集合。所接收到的线程的列表可以被指示为可信的。即,可以向诸如DLL等POSIX服务提供对这些线程的访问。
在框508处,当所枚举的线程以及由所枚举的线程创建的其它线程请求对POSIX子系统的资源的访问时,它们是可信的。
在框510处,该例程返回给其调用者。
在某种意义上,子系统向应用程序和线程提供安全性。作为示例,进程可能不能够访问另一个进程的存储器或资源。通过使得POSIX子系统能够请求并接收可信线程的列表,POSIX子系统可以扩展其信任至WINDOWS子系统的进程和线程。这样,POSIX子系统和WINDOWS子系统能够共享资源。
由前述内容,可以理解,此处描述的本发明的特定实施例是用于说明的目的的,可以进行多种修改而不背离本发明的精神和范围。从而,本发明除了所附权利要求书之外不受限制。

Claims (24)

1.一种操作系统的子系统,用于使得为所述子系统设计的应用程序能够使用所述操作系统的第二子系统提供的工具,包括:
从所述应用程序接收对资源的请求的组件;
确定所述资源是由所述操作系统的第二子系统提供的组件;
基于所述确定将所述请求传递给所述操作系统的第二子系统的组件;以及
当从所述第二子系统接收所述请求的结果指示之后,将所述结果指示传递给所述应用程序的组件。
2.如权利要求1所述的子系统,其特征在于,所述请求是通过本地过程调用传递的。
3.如权利要求1所述的子系统,其特征在于,所述子系统遵循可移植操作系统接口规范。
4.如权利要求3所述的子系统,其特征在于,所述第二子系统是MICROSOFTWINDOWS的版本。
5.如权利要求1所述的子系统,其特征在于,所述子系统是MICROSOFTWINDOWS的版本。
6.如权利要求5所述的子系统,其特征在于,所述第二子系统遵循可移植操作系统接口规范。
7.如权利要求1所述的子系统,其特征在于,所述工具是动态链接库。
8.如权利要求7所述的子系统,其特征在于,所述资源是由所述动态链接库执行的方法。
9.一种由子系统执行来使得应用程序能够共享多个子系统的资源的方法,包括:
当所述应用程序访问操作系统的子系统的资源时,
在多个子系统中,标识提供所述资源的子系统;
请求所标识的子系统装载所述资源;以及
指示所标识的子系统访问所述资源。
10.如权利要求9所述的方法,其特征在于,所述装载资源的子系统遵循可移植操作系统接口规范。
11.如权利要求9所述的方法,其特征在于,所述装载资源的子系统是MICROSOFT WINDOWS的版本。
12.如权利要求9所述的方法,其特征在于,所述资源是动态链接库。
13.如权利要求12所述的方法,其特征在于,所述指示包括传递方法名。
14.如权利要求13所述的方法,其特征在于,所述指示包括传递一个或多个参数。
15.如权利要求13所述的方法,其特征在于,所述传递是使用本地过程调用来执行的。
16.如权利要求9所述的方法,其特征在于,所述对资源的访问包括对动态链接库的方法的调用。
17.一种含有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于执行使得第一子系统的应用程序能够共享第二子系统的动态链接库的方法,包括:
从所述第一子系统的应用程序接收访问所述动态链接库的方法的指示;
请求所述第二子系统装载所述动态链接库;以及
指示所述第二子系统访问所述指示的方法。
18.如权利要求17所述的计算机可读介质,其特征在于,所述第二子系统遵循可移植操作系统接口规范。
19.如权利要求17所述的计算机可读介质,其特征在于,所述第二子系统实现所述操作系统的应用程序接口。
20.如权利要求19所述的计算机可读介质,其特征在于,所述操作系统是MICROSOFT WINDOWS的版本。
21.如权利要求19所述的计算机可读介质,其特征在于,所述第二子系统是MICROSOFT WINDOWS的版本。
22.如权利要求17所述的计算机可读介质,其特征在于,包括当从所述第二子系统接收到请求之后,枚举与所述应用程序相关的线程的列表。
23.如权利要求22所述的计算机可读介质,其特征在于,包括向所述第二子系统通知与所述应用程序相关的新线程。
24.如权利要求23所述的计算机可读介质,其特征在于,所述新线程是出现在所枚举的线程列表中的线程的子线程。
CNA2005101188729A 2004-12-03 2005-11-03 启用子系统间的资源共享 Pending CN1783015A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/004,620 US7653684B2 (en) 2004-12-03 2004-12-03 Enabling inter-subsystem resource sharing
US11/004,620 2004-12-03

Publications (1)

Publication Number Publication Date
CN1783015A true CN1783015A (zh) 2006-06-07

Family

ID=36284366

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005101188729A Pending CN1783015A (zh) 2004-12-03 2005-11-03 启用子系统间的资源共享

Country Status (5)

Country Link
US (1) US7653684B2 (zh)
EP (1) EP1669853A3 (zh)
JP (1) JP2006164265A (zh)
KR (1) KR20060063642A (zh)
CN (1) CN1783015A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102016802A (zh) * 2008-04-02 2011-04-13 高通股份有限公司 跨任务共享操作系统子进程
CN103106117A (zh) * 2012-12-25 2013-05-15 青岛海信电器股份有限公司 一种资源分配方法及电子设备

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7523469B2 (en) * 2004-12-03 2009-04-21 Microsoft Corporation Enabling inter-subsystem resource sharing
US8290949B2 (en) * 2006-07-24 2012-10-16 International Business Machines Corporation Resource name reconciliation in a configuration database
KR100871869B1 (ko) * 2007-01-23 2008-12-03 전자부품연구원 디지털기기들의 자원공유를 통한 사용자 서비스 제공방법및 이를 수행하는 디지털기기
CN102867061B (zh) * 2012-09-20 2015-08-19 北京奇虎科技有限公司 系统管理方法和装置
US9083658B2 (en) 2012-09-24 2015-07-14 Steelseries Aps Method and apparatus for delegating resources between devices
US8920234B2 (en) 2012-12-06 2014-12-30 Steelseries Aps Method and apparatus for presenting information associated with a game
KR101997602B1 (ko) * 2013-01-29 2019-07-09 주식회사 케이티 디바이스 양방향 m2m 리소스 관리 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5423042A (en) 1992-10-23 1995-06-06 International Business Machines Corporation Remote procedure execution
US6067577A (en) * 1996-09-30 2000-05-23 Apple Computer, Inc. Dynamic method resolution for native methods in a dynamic object-oriented programming language
US6192418B1 (en) 1997-06-25 2001-02-20 Unisys Corp. System and method for performing external procedure calls from a client program to a server program while both are operating in a heterogenous computer
US6026238A (en) * 1997-08-18 2000-02-15 Microsoft Corporatrion Interface conversion modules based upon generalized templates for multiple platform computer systems
JPH11110194A (ja) * 1997-10-06 1999-04-23 Toshiba Corp 外部ライブラリ関数との結合方法ならびに同方法がプログラムされ記録される記録媒体
US6601110B2 (en) 1998-03-17 2003-07-29 Sun Microsystems, Inc. System and method for translating file-level operations in a non-door-based operating system to door invocations on a door server
US6604123B1 (en) 1999-02-23 2003-08-05 Lucent Technologies Inc. Operating system transfer of control and parameter manipulation using portals
US6745385B1 (en) * 1999-09-01 2004-06-01 Microsoft Corporation Fixing incompatible applications by providing stubs for APIs
JP4402797B2 (ja) * 2000-03-02 2010-01-20 株式会社日立製作所 情報処理装置
CN1326062C (zh) 2000-06-13 2007-07-11 微软公司 计算机系统和方法
JP2002182931A (ja) * 2000-12-18 2002-06-28 Yaskawa Electric Corp 共通osシステムコール方法
US7028305B2 (en) * 2001-05-16 2006-04-11 Softricity, Inc. Operating system abstraction and protection layer
US6964051B1 (en) * 2002-01-18 2005-11-08 Adobe Systems Incorporated Enabling and disabling remote features dynamically in software applications
JP3938343B2 (ja) * 2002-08-09 2007-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション タスク管理システム、プログラム、及び制御方法
US7383551B2 (en) 2002-09-27 2008-06-03 International Business Machines Corporation Method and system for integrating non-compliant providers of dynamic services into a resource management infrastructure
US20050114870A1 (en) * 2003-11-21 2005-05-26 Song Dong H. System and method for executing an application on a secured run-time environment
US7523469B2 (en) 2004-12-03 2009-04-21 Microsoft Corporation Enabling inter-subsystem resource sharing

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102016802A (zh) * 2008-04-02 2011-04-13 高通股份有限公司 跨任务共享操作系统子进程
US9015727B2 (en) 2008-04-02 2015-04-21 Qualcomm Incorporated Sharing operating system sub-processes across tasks
CN103106117A (zh) * 2012-12-25 2013-05-15 青岛海信电器股份有限公司 一种资源分配方法及电子设备

Also Published As

Publication number Publication date
JP2006164265A (ja) 2006-06-22
US7653684B2 (en) 2010-01-26
KR20060063642A (ko) 2006-06-12
EP1669853A3 (en) 2007-11-07
US20060168588A1 (en) 2006-07-27
EP1669853A2 (en) 2006-06-14

Similar Documents

Publication Publication Date Title
CN1783015A (zh) 启用子系统间的资源共享
CN1315042C (zh) 创建和使用具有选定功能的操作系统的方法和系统
RU2421785C2 (ru) Автоматизированное управление драйверами устройств
US7987459B2 (en) Application programming interface for identifying, downloading and installing applicable software updates
US8230095B2 (en) System and method for integrated on-demand delivery of operating system and applications
US8549144B2 (en) Common configuration framework for applications to configure database objects and resources
US20170163553A1 (en) Methods and systems for providing software applications
US8205214B2 (en) Browser elements for communicating with other browser elements and with external applications
US20080209048A1 (en) Loading A Mirror Driver In Remote Terminal Server Session
US7721278B2 (en) Modular server architecture for multi-environment HTTP request processing
CN1696910B (zh) 用于对软件打补丁的方法和系统
US9286083B2 (en) Satisfying missing dependencies on a running system
CN1782993A (zh) 改进的操作系统性能
JP5070286B2 (ja) ネットワーク環境におけるスペースのカスタマイズ
US20060184783A1 (en) System and method for providing an extensible codec architecture for digital images
US20070118658A1 (en) User selectable management alert format
US7409691B2 (en) Extending operating system subsystems
US7523469B2 (en) Enabling inter-subsystem resource sharing
US7587722B2 (en) Extending operating system subsystems
US20070260577A1 (en) Providing COM access to an isolated system
KR20230028024A (ko) 가상 데스크탑 환경에서 서비스 제공 방법 및 장치
CN116339757A (zh) 一种应用运行方法、装置、计算设备及存储介质
JP2008186418A (ja) 情報処理装置、サーバ装置、ドライバ処理方法、記憶媒体、プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20060607