CN100458710C - 在操作系统分区间进行进程间通信的方法和装置 - Google Patents
在操作系统分区间进行进程间通信的方法和装置 Download PDFInfo
- Publication number
- CN100458710C CN100458710C CNB2004100595403A CN200410059540A CN100458710C CN 100458710 C CN100458710 C CN 100458710C CN B2004100595403 A CNB2004100595403 A CN B2004100595403A CN 200410059540 A CN200410059540 A CN 200410059540A CN 100458710 C CN100458710 C CN 100458710C
- Authority
- CN
- China
- Prior art keywords
- global area
- communication target
- global
- request
- communication
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
在一些实施例中,在划分为全局区域和一个或多个非全局区域的单一内核实例操作系统中,提供用于控制进程间通信的技术。在一个些实施例中,提供一种方法,该方法包括在由单一内核实例控制的全局操作系统环境中,建立非全局区域,以将进程与其他非全局区域中的进程隔离。该方法可以包括响应第一请求,产生通信目标,该通信目标具有对应于产生第一请求的进程的非全局区域的唯一标识符。该方法可以包括,响应第二请求,如果确定产生第二请求的进程与非全局区域相关,利用通信目标为产生第二请求的进程启动通信,该非全局区域具有与通信目标的唯一区域标识符相匹配的唯一标识符。
Description
要求的优先权
本申请要求Andrew G.Tucker,et al.,在2003年5月9日提交的,名称为“OPERATING SYSTEM VIRTUALIZATION”的临时申请NO.60/469558的优先权,其收编在此的供参考的全部内容相当于在此完全提出。
背景技术
目前,很多计算系统包括没有被充分利用的计算资源。通过提高这些计算资源的利用,此种利用不足给这些系统的拥有者获得更大的容量或降低成本提供了潜在的机会。
很多方法能用来处理提高利用率的问题,包括在单个硬件平台上的多个应用程序的合并。合并方法典型地试图支持在单个硬件单元上的多个应用程序的共存,以便在较少硬件平台上获得更大的功能。各种计算资源管理技术都可用于此目的。
然而,此计算资源管理扩展必须处理由多个应用程序在单个平台上并行执行引起的安全和管理问题。例如,如果网络服务器应用程序属于两个或多个“不可靠”用户,即,例如市场竞争者们的网络服务器应用程序共存在单个硬件平台上,没有用户会满足其他用户访问此用户的私人信息。例如所包含的一些计算机系统功能,易于分配和使用硬件资源,即,网络连接、DASD、输出设备等等,如果不能控制访问,一个不可靠用户将使用文件系统资源和通信资源来访问其他用户的信息或应用程序。因此,在用户不能互相信任来执行系统资源相关任务的情况下,系统管理员可能因为需要为每个行为负责而不堪重负,此行为涉及到在有效时间和费用下关键系统资源。
一种在合并技术中产生的使用和安全问题的方法,是将机器资源划分为多个逻辑分区(LPAR)或虚拟分区(VPAR),有效地产生在单个平台上的多个机器图像。基于不同的机器图像,此逻辑划分方法在应用程序中潜在的提供完全隔离。然而,逻辑划分方法会产生多个问题。该方法可以要求实现硬件支持(诸如其他特权级的引入)以隔离诸如操作系统内核的特权程序。而且,逻辑划分要求系统管理员管理用于逻辑分区的配置和在逻辑分区中资源的分布。
在另一个可能方法中,在单个硬件平台上并行执行的操作系统图像的一个或多个示例提供多个“虚拟机器”。在该方法中,每个虚拟机器可以是单独的操作系统示例,其提供在虚拟机器中运行的程序与在另一个虚拟机器中运行的其他程序的隔离。尽管该虚拟机器方法提供在应用程序之间的隔离,该方法也会产生其他问题。例如,它可以不必,或甚至不期待具有用于一些应用程序的整个操作系统的多个示例。操纵和管理不同操作系统图像的复杂性使人们需要更简单的方法。
另一个方法可以实现执行划分成多个操作系统功能的划分。例如,一些使用分级文件系统的操作系统包含一种功能,此功能通过限制文件系统访问特殊程序来提供划分等级。然而,该机构也具有缺点。例如,文件系统名称空间的进程清晰度被限制为在多个设备中的文件系统的单个子树。因此,划分通常不会扩展到该进程或连网空间,这就可能被其他进程观察和干扰。
另一个方法可以对系统资源,即,文件系统、网络设备等的划分分配限制进程和其结果(即,父和子)。在该方法中,处于称之为“监狱”的划分段中的进程可以访问分配的系统资源,但不能看见也不能访问在监狱之外的进程或网络服务。该监狱法也产生很多问题。典型的,监狱不能脱离产生监狱的进程而独立存在。换句话说,一旦产生监狱(和它的结果,若有的话)的进程终止,该监狱终止。而且,第二进程不能“加入”监狱。
发明内容
在一些实施例中,本发明提供用于管理在划分为全局区域和一个或多个非全局区域的操作系统环境中的进程间通信的技术。在单一操作系统内核实例控制下,该非全局区域将进程与关联其他非全局区域的进程隔离。在一个实施例中,基于密钥的名称空间可用于隔离非全局区域的进程间通信目标。在另一个其他实施例中,充当用于查找交换信息的进程的会合点(rendezvous point)的一个或多个文件系统位置可用来隔离非全局区域的进程间通信。在其他实施例中,可以使用基于密钥的名称空间技术和文件系统位置技术的组合。仍然在另外的实施例中,可用其他类型的机构提供隔离。
在一个使用基于密钥的名称空间技术的实施例中,每个通信目标的状态被保存在用于每个非全局区域的分离的数据结构中。在一个实施例中,每个通信目标的状态可以被保存在指定用于每个非全局区域的内核驻留数据结构中。进程和通信目标可以具有与其相关的密钥,其表示进程和通信目标驻留在其中的非全局区域。在一个实施例中,进程的密钥是该进程驻留于其中的非全局区域的唯一标识符。在一个实施例中,通信目标的密钥是产生该通信目标的进程的密钥。进程查找建立与其他进程的进程间通信会话,可提供(present)密钥给服务该请求的内核驻留进程,以便建立进程间通信路径。该内核驻留进程使用内核驻留数据结构来检验请求进程的密钥是否与通信目标的密钥匹配,该通信目标用于被请求的进程间通信路径。
在使用基于文件系统的技术的一个实施例中,每个通信目标的状态保存在用于每个非全局区域的分离的文件系统位置中。在一个实施例中,进程查找使用作为“会合”点的特定文件系统位置建立进程间通信路径。特许使用进程间通信的进程可以允许访问存储在非全局区域的特定文件系统位置中的通信目标,该进程驻留在非全局区域中。因为在非全局区域中的进程只允许访问分配(allocate)给非全局区域的文件系统的部分,用特定文件系统位置作为用于进程间通信的会合点,使得一些实施例能隔离在非全局区域边界内的进程间通信。
在一些实施例中,可以提供区域间进程间通信。在一个实施例中,提供一个接口使得内核驻留进程可以取回进程(“请求进程”)查找的证书以启动与不同非全局区域中的其他进程(“接收进程”)之间的进程间通信。该内核驻留进程使用该证书检验请求进程是否被授权越过非全局区域边界与其他进程通信。如果该请求进程被授权,可以建立在请求进程和接收进程之间的通信路径。在一个实施例中,使用驻留在全局操作系统环境中的进程建立通信路径。
通信目标包括与传输介质有关的用于提供进程间通信的目标。在一些实施例中,通信目标包括一个或多个回环(loopback)传送提供者、信号量、共享存储器段、消息队列、事件信道、管道、流、插口、POSIX进程间通信接口和门接口。在一个实施例中,通信目标具有相关的通信目标标识符,其包括一个或多个地址、插口标识符、端口、灵活地址、信号量标识符、消息队列标识符、共享存储器段标识符、管道标识符和流标识符。本发明的实施例不限于这些类型的通信传输介质。相反,其他类型的通信传输介质,现存的和未来出现的传输介质,都可用于本发明的其他实施例中,这对本领域技术人员来说是显而易见的。
使用这些和其他技术,一些实施例可以提供在非全局区域内的进程间通信的隔离。一些实施例可以提供使得在一个或多个非全局区域中的通信目标具有相同的标识符而不受干扰的能力。选择的实施例可以提供区域间进程间通信。
附图说明
图1是可以在其中实施本发明的一个实施例典型操作系统环境的功能框图。
图2A是本发明一个实施例中,在图1的操作系统环境中的通信目标管理的典型示例的功能性框图。
图2B是本发明的一个实施例中,在图2A的操作系统环境中使用基于密钥的名称空间的典型的进程间通信机构的功能性框图。
图2C是本发明的一个实施例中,在图2A的操作系统环境中使用文件系统的典型进程间通信机构的功能性框图。
图3A-3I是示意本发明一个实施例的操作的操作流程图。
图4是典型计算机系统的硬件框图,该计算机系统可用于体现本发明一个实施例的一个或多个部件。
具体实施方式
系统综述
在一些实施例中,本发明提供用于控制在划分为全局区域和一个或多个非全局区域的单一内核实例操作系统中的进程间通信的技术。在一个实施例中,提供一种方法。该方法可以包括在被单一内核实例控制的全局操作系统环境建立非全局区域,用于将进程与其他非全局区域中的进程隔离。该方法可以包括,响应第一请求,产生具有唯一标识符的通信目标,该标识符对应产生第一请求的进程的非全局区域。该方法可以包括,如果确定产生第二请求的进程与具有唯一标识符的非全局区域相关,响应第二请求,为产生第二请求的进程利用通信目标启动通信,该唯一标识符与通信目标的唯一标识符匹配。
在另一方面,本发明提供一个实施例,一种在被单一操作系统内核实例控制的全局操作系统环境中的可操作方法。该方法可以包括,建立非全局区域以用于将进程与其他非全局区域中的进程隔离。每个非全局区域具有唯一区域标识符。从执行在与非全局局域有关的第一进程中接收第一请求,以便产生包含在一些实施例的方法中的通信目标。该方法可以包括,响应接收的第一请求,产生通信目标。该通信目标具有与其有关的第一进程的唯一区域标识符。从第二进程中接收第二请求以利用通信目标启动通信也是该方法的一部分。该方法还可以包括,响应接收的第二请求,确定第二进程是否与具有通信目标的唯一标识符的非全局区域相关,并且如果第二请求与具有通信目标的唯一标识符的非全局区域无关,拒绝该第二请求。
在另一个方面,本发明提供一个实施例,一种方法。该方法可以包括在被单一操作系统内核实例控制的全局操作系统环境中建立非全局区域,以将进程与其他非全局区域中的进程隔离。该方法可以包括,在一个非全局区域中的进程访问的点上,为全局操作系统环境的全局文件系统安装(mount)文件系统。该方法可以包括在非全局区域的文件系统中建立文件系统位置。在文件系统位置中建立通信目标也是该方法的一部分。该方法还包括为文件系统位置建立访问权限。从第一进程中接收请求,利用通信目标启动通信可以是本方法的一部分。而且,该方法可以包括,响应接收的请求,确定是否特许第一进程访问通信目标的文件系统位置,并且如果没有特许第一进程访问通信目标的文件系统位置则拒绝该请求。
在另一方面,本发明提供一个实施例,区域间进程间通信方法。该方法可以包括接收来自第一非全局区域中的请求者进程以与第二非全局区域中的接收进程通信。在该方法中可以包括取回用于请求者进程的证书。在一个实施例中,该证书包括表示约束请求者进程的非全局区域的区域标识符。该方法可以包括基于证书检验请求者进程被特许越过区域边界与接收进程通信。进一步,该方法可以包括如果请求者进程被特许,那么经由全局操作系统环境在请求者进程和接收进程之间建立一个通信路径。
在其他方面,本发明包含在一些实施例中,设置的用来实施上述方法的计算机装置、计算系统和计算机可读介质以便用来实施上述方法。
一些实施例里可以隔离在操作系统环境中在非全局区域边界内的进程间通信功能,该操作系统环境已经被划分进由单一内核实例控制的一个或多个非全局区域的操作系统环境中。在这些进程上实施区域边界的同时,一些实施例能使在非全局区域中的进程互相通信。一些实施例可以提供API或其他接口,以使在不同非全局区域中的进程能相互之间建立进程间通信。
概述
图1根据本发明的一个实施例描述了操作系统(OS)环境100的功能框图。通过在通用计算机系统,诸如图4所示的计算机系统400中执行OS,可以获得OS环境100。为了示意,假设该OS是加利福尼亚,Santa Clara的Sun Microsystems Inc制造的Solaris。然而,应当注意在此讲授教导的原理可以应用到任何OS,包括但不限于Unix、Linux、WindowsTM、MacOSTM等。
如图1所示,OS环境100可以包括一个或多个区域(在此也称为分区),包括全局区域130和零或非全局区域140。该全局区域130是当OS被启动和执行时产生的通用OS环境,并且充当默认区域,在该区域中如果没有产生非全局区域140,进程可以被执行。在全局区域130中,管理员和/或进程具有适当权力和特权通常能执行任何任务并访问任何设备/资源,该设备/资源在OS运行的计算机系统上是可用的。因此,在全局区域130中,管理员能管理整个计算机系统。在一个实施例中,在全局区域130中管理员执行进程以配置并管理非全局区域140。
非全局区域140表示OS环境100的分开的和独特的分区。非全局区域140的一个目的是提供隔离。在一个实施例中,非全局区域140可以用于隔离多个实体,包括但不限于进程170、一个或多个文件系统180、和一个或多个逻辑网络接口182。因为此隔离,在一个非全局区域140中执行的进程170不能访问或影响任何其他区域中的进程。同样的,在非全局区域140中的进程170不能访问或影响其他区域的文件系统180,它们也不能访问或影响其他区域的网络接口182。因此,在非全局区域140中的进程170被限制访问和影响在该区域中的进程和实体。以这种方式隔离,每个非全局区域140都象虚拟独立计算机那样工作。尽管在不同非全局区域140中的进程170不能互相访问或影响,但应当注意,它们通过各自的逻辑网络接口182经由网络连接互相通信。这与在分开的独立计算机上的进程相互通信类似。
在许多应用中,可以期待非全局区域140被互相隔离。例如,如果运行单个OS实例的单一计算机系统被用于为不同的竞争者(例如,竞争网站)托管(host)应用程序,希望它能将一个竞争者的数据和进程与另一个竞争者的数据和进程隔离。那样,就能确保在这些竞争者之间不泄漏信息。实现此隔离的一个可行方式是将OS环境100化分为非全局区域140,并托管在独立的非全局区域140中的竞争者的应用程序。
在一个实施例中,可以分开管理每个非全局区域140。尤其是,有可能为特定的非全局区域140指定区域管理员,并授予区域管理员权利和特权来管理该非全局区域140的各个方面。利用该权利和特权,该区域管理员能执行影响非全局区域140中的进程和其他实体的许多管理任务。然而,该区域管理员不能改变或影响在其他非全局区域140或全局区域130中的任何事。因此,在上述示例中,每个竞争者能管理他/她的区域,以及他/她自己的一组应用,但不能改变或影响竞争者的应用程序。在一个实施例中,为了防止非全局区域140影响其他区域,非全局区域140中的实体通常不允许访问或控制计算机系统的任何物理设备。
与非全局区域管理员相反,全局区域管理员有完全的权利和特权可以管理OS环境100的所有方面以及整个计算机系统。因此,例如全局区域管理员可以访问和控制物理设备,分配和控制系统资源,建立操作参数等。全局区域管理员也可以访问和控制在非全局区域140中的进程和实体。
在一个实施例中,通过内核150来实现区域边界的实施(enforcement)。尤其是,内核150确保在一个非全局区域140中的进程170不能访问或影响其他区域(非全局或全局)的进程170、文件系统180、和网络接口182。除了实施区域边界外,内核150也提供很多其他服务。这些服务包括但不特定限于将非全局区域140的网络接口182映射到计算机系统的物理网络设备120,并且将非全局区域140的文件系统180映射到计算机系统的整个文件系统和物理存储器110。在后面的部分中将更详细讨论内核150的操作。
非全局区域状态
在一个实施例中,非全局区域140可以呈现四种状态:(1)配置(configured);(2)安装(installed);(3)就绪(ready);和(4)运行中的一种。当非全局区域140处于配置状态时,这意味着在全局区域130中的管理员已经调用操作系统效用实用程序(在一个实施例中,区域配置zonecfg(1m))来指定非全局区域140的所有配置参数,并已经将该配置存储在持久物理存储器110中。在配置非全局区域140中,管理员可以指定很多不同参数。这些参数可以包括,但不限于,区域名、到区域文件系统180的根目录的区域路径、当区域产生时建立的一个或多个文件系统的规范、当区域产生时配置的零或多个网络接口的规范、当区域产生时被配置的设备的规范,以及零或多个资源库组合(resource pool association)。
一旦区域处于配置状态,全局管理员可以调用其他操作系统实用程序(utility)(在一个实施例中,zoneadm(1m))以将区域置于安装状态。当调用时,操作系统实用程序与内核150结合将所有必要的文件和目录安装到区域的根目录中,或其子目录中。
为了使安装的区域处于就绪状态,全局管理员调用操作系统实用程序((在一个实施例中,还是zoneadm(1m)),导致zoneadmd进程162被启动(存在与每个非全局区域有关的区域管理进程)。在一个实施例中,zoneadmd162在全局区域130中运行,并且负责管理与其相关的非全局区域140。在zoneadmd162被启动之后,它与内核150相互作用建立非全局区域140。在产生非全局区域140中,执行多个操作,包括但不限于指定区域ID、启动zsched进程164(zsched是内核进程;然而,它运行在非全局区域140中,并且用于跟踪与非全局区域140有关的内核资源)、设置文件系统180、探测(plumb)网络接口182、配置设备、和设置资源控制。这些和其他操作使非全局区域140处于就绪状态以准备用于正常操作。
使非全局区域140处于就绪状态将产生在上面执行一个或多个进程的虚拟平台。此虚拟平台提供必需的基础结构,该结构能在非全局区域140中执行一个或多个进程,这些进程与其他非全局区域140中的进程隔离。该虚拟平台也能够隔离其他实体,诸如在非全局区域140中的文件系统180和网络接口182,以便该区域像虚拟独立计算机那样工作。注意到当非全局区域140处于就绪状态时,没有用户或非内核进程在该区域中执行(再调用zsched是内核进程,不是用户进程)。因此,由非全局区域140提供的虚拟平台独立于在该区域中执行的任何进程。换种方式,即使没有用户或非内核进程正在区域中执行,区域及因此产生的虚拟平台也存在。这意味着非全局区域140能保持一直存在从其产生的时间开始直到区域或者OS终止。非全局区域140的寿命不需要受在区域中任何用户或非内核进程执行的持续时间的限制。
在非全局区域140处于就绪状态后,通过在区域中执行一个或多个用户进程能将状态转变为运行状态。在一个实施例里中,通过使zoneadmd162启动相关区域中的初始进程172来执行。一旦启动,该初始进程172访问非全局区域140的文件系统180以确定在运行什么应用程序。之后该初始进程(init process)172执行这些应用程序以产生一个或多个其他进程174。以这种方式,在非全局区域140的虚拟平台上启动一个应用环境。在该应用环境中,所有进程170被限制在非全局区域140中;因此,它们不能访问和影响在其他区域中的进程、文件系统、或网络接口。只要在非全局区域140中执行一个或多个用户进程,该应用环境就存在。
在非全局区域140处于运行状态后,与其相关的zoneadmd 162可用来管理它。zoneadmd 162能用于启动和控制许多区域管理任务。例如,这些任务可以包括,暂停和重新启动非全局区域140。当非全局区域140被暂停时,它从运行状态转到安装状态。结果,应用环境和虚拟平台都终止。当非全局区域140被重新启动,它从运行状态转到安装状态,并且从安装状态经过就绪状态转到运行状态。结果,应用环境和虚拟平台被终止并重启。通过zoneadmd162可以启动和控制这些和其他任务,以在常规操作期间进行的基础上管理非全局区域140。
进程间通信
在一些实施例中,本地进程间通信(IPC)功能可以在使用区域的操作系统环境中实施。在一个实施例中,驻留在相同的非全局区域中的进程能互相通信。然而,在不同非全局区域中的进程通常能通过网络API通信,正如在分开的机器上运行的进程通信那样。在一个实施例中,可允许全局区域中的进程构造一个用于非全局区域中的进程的机构进行通信。然而,在一个实施例中,没有全局区域中进程的参与,通过非全局区域中的进程的通信被隔离在它们各自的非全局区域中。
图2A是本发明实施例中,在图1的操作系统环境中的通信目标管理的典型示例的功能性框图。如图2A所示,在运行期间,操作系统环境100提供多个持久(persistent)虚拟环境,包括非全局区域A 140(a)和非全局区域B 140(b),在此总的称作非全局区域140。非全局区域140是持久环境,因为它们的寿命比任何与它们相关的进程的寿命要长。而且,非全局区域140提供虚拟化环境,因为它们能支持进程的隔离执行,诸如在非全局区域A 140(a)中执行的进程A1 174-1(a)和进程A2 174-2(a),以及在非全局区域B 140(b)中执行的进程B1174-1(b)和进程B2 174-2(b)。两个非全局区域140(a)和140(b)能存在于单一内核150中。并且,进程C 232能在操作系统环境100的全局区域130中执行。在非全局区域140中进程对目标的可视性和访问不同于在全局区域130中的进程。
继续参考图2A,在一个实施例中将通过非全局区域A 140(a)来描述通信管理技术的操作,其中进程A1 174-1(a)启动与第二进程A2174-2(a)的进程间通信。为了开始通信,进程A1 174-1(a)试图连接(bind)通过短划线113(a)表示的在非全局区域A 140(a)中驻留的通信目标X 244(a)。目标X 244(a)能使进程“会合”,以建立通信路径。在图2A所描述的典型实施例中,进程A2 174-2(a)已经连接目标X 244(a)。
在一些实施例中,使用基于密钥的名称空间、文件系统或其组合可以实现在非全局区域边界内的进程间通信的隔离。在一个实施例中,对每个非全局区域用于管理名称空间的数据结构可以在内核150中分配。在使用文件系统隔离技术的一些实施例中,通信目标可以是任何传送终端、管道、流、插口、便携操作系统接口(POSIX)、进程间通信接口和门接口。一些使用基于名称空间的密钥技术的实施例可以使用任何回环传送提供者、信号量、共享存储器段、消息队列和事件信道。一些实施例使用一种或两种类型的隔离技术,以及,许多其他类型的包括现存的和未来的传送介质。
因为将进程A1 174-1(a)分配给非全局区域A 140(a),进程A1的可视性以及对有助于进程间通信的通信目标的访问可以与分配给非全局区域A 140(a)的那些目标隔离。因此,在非全局区域A 140(a)中,进程A1 174-1(a)能观察并访问通信目标X 244(a),然而,进程A1 174-1(a)可能被禁止观察和访问在非全局区域B 140(b)中的通信目标X 244(b)。同样的,例如,分配给非全局区域B 140(b)的进程B1 174-1(b)可能被隔离,以使用分配给非全局区域B 140(b)的通信目标,诸如通信目标X 244(b)来建立与其他分配给非全局区域B 140(b)的进程,诸如进程B2 174-2(b)的进程间通信。在一些实施例中,本发明提供产生通信目标的能力,该通信目标在每个非全局区域140中具有相同名称。因此,在一个实施例中,第一进程可以没有干扰地产生第一通信目标,命名为目标X,诸如在非全局区域140(a)中的目标X 244(a),并且第二进程可以没有干扰地产生第二通信目标,命名为目标X,诸如在非全局区域140(b)中的目标X 244(b)。由一些实施例提供的在不同非全局区域中使通信目标具有相同名称的能力使能支持进程间通信机构,该机构使用在多于一个的非全局区域中具有标准化名称的通信目标。
在一个实施例中,进程A1和进程B1被隔离以利用在每个进程非的全局区域中的通信目标建立相互之间的进程间通信,而不调用在全局区域130中的区域间通信进程C 232的援助。在一个实施例中,由于进程C 232分配给全局区域130,进程C 232能观察在非全局区域中的通信目标,诸如由交替短划线119(a)和119(b)表示的通信目标X 244(a)和通信目标X 244(b)。在一个实施例中,允许进程C 232访问通信目标X 244(a)或通信目标X 244(b),以建立区域间通信,只要进程C 232有适当的特权能这样做。
在一些实施例中可获得各种机构用于提供进程间通信能力。为了讨论的目的,而不是作为限制,进程间通信技术将基于使用的隔离技术类型、基于名称空间的隔离技术和基于文件系统的隔离技术,被广泛地分为两类。
基于密钥的名称空间隔离
图2B是本发明一个实施例中,在图2A的操作系统环境中使用基于密钥的名称空间的典型进程间通信机构的功能性框图。
如图2B所示,内核进程将关于目标的信息分别保持在结构254(a)和结构254(b)的非全局区域A和非全局区域B的名称空间内。在一个实施例中,结构254(a)和结构254(b)可以是公用结构的一部分。然而,在图2B描述的特定实施例中,结构254(a)和结构254(b)是不同的结构。该内核进程使用通信目标标识符,其在图2B地典型示例中是“X”,和区域标识符或“密钥”,如示例中描述的“A”将包括通信目标X 244(a)的非全局区域A 140(a)中的目标信息保持在结构254(a)中。用于识别各种非全局区域中目标的唯一实例的其他机构可用于本发明的其他实施例,这对本领域技术人员是显而易见的。
通过初始化进程(在图2B中未示出)来产生通信目标X 224(a),并且它的证书被发送123(a)给内核进程,在一个实施例中该证书包括通信目标标识符和区域标识符。该内核进程将证书存储在结构254(a)中供以后使用。当进程,诸如进程A1 174-1(a),启动进程间通信,该启动进程使用特殊传输介质(transport medium)产生内核进程请求125(a)以建立与其他进程的进程间通信。该内核进程确定同心目标是否对应该传输介质,诸如通信目标X 244(a)是否在非全局区域A 140(a)中存在,并确定进程A1 A74-1(a)的密钥是否匹配通信目标X 244(a)的密钥。该内核进程可以参照结构254(a)来确定是否请求的目标存在于请求进程的区域中。如果内核进程将用于请求目标的信息设置在结构254(a)中,则该内核进程能产生应答127(a),其中该内核进程能返回与通信目标X 244(a)相关的地址或其他的权标(token)给请求进程A1 174-1(a)。
虚线123(a)表示初始化进程请求(在图2B中未示出)添加通信目标X 244(a)给结构254(a),以使得在非全局区域140(a)中的进程能访问目标A 244(a)。虚线125(a)表示进程A1 174-1(a)使用通信目标X 244(a)的传输介质建立进程间通信。进程A1 174-1(a)进行查找以以使用目标X244(a)可访问的传送结构来启动与其他进程(在图2B中未示出)之间的进程间通信路径。虚线127(a)表示由内核进程伴随的具有合适的标记响应进程A1 174-1(a)产生的响应。
在一些实施例中,基于密钥的名称空间能用于各种传送机构为非全局区域内的进程提供进程间通信。在一些实施例中使用选择传送机构的示例来隔离在非全局区域边界内的进程间通信,该非全局区域边界使用基于密钥的名称空间包括,回环传送提供者、系统V进程间通信提供者和事件信道,其中的每一个将参照典型实施例进行详细的描述。
回环传送提供者
回环传送提供者ticlts,ticots,和ticotsord,提供用于进程间通信的基于密钥的名称空间传送结构。通过使用标准的传送独立TLI/XTI接口可访问该传送机构。该回环传送被用于相同机器上的进程之间的通信。在一个实施例中,回环传送提供者可作为伪设备实现而不涉及驻留在网络堆栈中的内核进程。在一个实施例中,传送结构支持所谓的“灵活地址”,该地址包括长度大于0的任意八字节序列。
在使用区域的一个实施例中,灵活地址空间可被划分来隔离在区域内的进程之间的通信。在一个实施例中,每个区域可具有不同的灵活地址名称空间。在一个实施例中,基于执行绑定(3SOCKET)呼叫的进程的区域ID,将区域标识ID与传送端点相关联来实现。调用连接进程(3SOCKET)的进程将端点与匹配地址关联,该匹配地址与呼叫者区域相关。一些实施例能使多个进程绑定相同的地址,只要这些进程在不同的非全局区域中。因此,如果应用程序运行在不同非全局区域中,这些应用程序可使用相同地址而不冲突。使用这些技术的一些实施例可避免在地址选择中需要交叉区域协调(cross-zone coordination)。
系统V进程间通信
系统V进程间通信接口能使应用产生不变目标,诸如共享存储器段、信号量和消息队列,用于驻留在相同系统中的进程之间的通信和同步。在一个实施例中,这些通信目标包括与用户定义的密钥有关的动态分配的数字标识符,该用户定义密钥允许在无关进程中使用单个目标。在一个实施例中,目标可以与所有者相关。在一个实施例中,目标与所有者的关联可基于产生进程的有效用户ID,除非明显地改变。在一个实施例中,可设置许可标志来限制访问这些目标。
在一个实施例中,为了防止在不同的非全局区域中进程之间的共享(有意的或无意的),区域ID与每个基于非全局区域的通信目标相关,其中产生通信目标的进程在建立时间即运行。可以允许在非全局区域中运行的进程访问或控制与相同区域有关的通信目标。可允许在全局区域中运行的进程访问和控制与全局区域和非全局区域(经受基于任何用户ID的限制)相关的通信目标,使得全局管理员能管理遍及全局区域系统的进程间通信目标。在一个实施例中,不同的密钥名称空间可用于每个非全局区域以避免在非全局区域之间产生冲突的可能性。
在一个实施例中,与进程间通信机构一起使用的管理命令,诸如具有区域指定选项的ipcs(1)和ipcrm(1),其在全局区域中运行时可使用。以默认的方式,ipcs将报告来自当前区域的目标。然而,当在全局区域中运行时,-z区域选项可用于产生命令报告来自指定区域的目标。该-Z选项可用于产生命令报告来自所有区域的目标,该所有区域与每个识别的区域有关。在一些实施例中,当新的区域指定选项与这些管理命令一起使用时,可用于消除目标之间的歧义,这些目标在不同区域中具有相同的通信目标标识符。在一些实施例中,在区域中使用进程间通信目标可提供更好的可观察性。
该ipcrm命令在当前区域的目标上执行相类似的操作,除非在全局区域中运行,并产生-z区域选项。该选项允许目标在其他区域中消除。
在一个实施例中,区域专用资源控制防止,或在一些实施例中使得管理员能避免,内核存储器被一个区域耗尽。区域专用资源控制可以允许一些实施例使用系统V进程间通信机构,基本摆脱在产生的目标的任何用户ID数目上的静态全系统限制。
事件信道
事件信道提供另外的进程间通信机构,在一个实施例中,该机构可用在已经划分为全局区域和一个或多个非全局区域的操作系统环境中。事件信道提供进程间通信机构,在该机构中通过使用由划分进程提供的通信目标标识符(表示信道名称的字符串)来建立进程间会合。在一个实施例中,每个非全局区域提供一个单独的基于名称空间的密钥可以将使用非全局区域边界内的事件信道与进程间通信隔离。
在一个实施例中,可以提供用于控制在每个非全局区域中产生的事件信道数目的机构。在一个实施例中,某些事件信道能穿过非全局区域边界。在一个实施例中,利用事件信道可将某些类型的事件从内核或全局区域传送到向非全局区域中通知。在一个实施例中,利用事件信道在非全局区域之间通信的能力将被限制在用于通信故障或错误事件的专用信道中。在一个实施例中,会使用专用(private)API对在非全局区域之间通信的能力进行控制。在一个实施例中,使用和访问事件信道将被限制在全局区域的进程中。
基于文件系统的隔离
在一些实施例中,某些进程间通信机构利用作为会合点的文件系统建立两个或多个进程之间的通信。这些机构可以包括,例如管道、流和插口。
图2C是本发明实施例中,用于图2A操作系统环境的典型文件系统位置的功能性框图。如图2C所示,图1中的文件系统180包括多个在层次树式的结构中布置的目录。例如,在非全局区域A 140(a)中,文件系统180(a)被设置在区域根目录290(a)中。在操作系统术语中,根目录用斜杠(“/”)表示。因为根目录290(a)是区域根目录,它将表明在非全局区域A 140(a)中的进程是根目录。目录290(a)是/AUXO目录290的子目录,它是可被全局区域130中的进程访问的文件系统的一部分。从全局区域130中的进程的观点来看,目录290(a)是目录/AUXO/区域A 290(a)。
在一个实施例里中,对于区域中的进程,区域的根目录明显区别于由chroot设置的目录,该chroot是用于建立根目录的系统命令。在一个实施例中,当进程正通过路径名部分时两个限制都被检查。这能使chroot在区域中使用,但如果进程逃脱它的chroot限制,该进程仍然不能逃脱区域的限制。
区域根目录290(a)包括一个或多个子目录,在一个实施例中这些子目录可包括充当用于进程间通信的会合点的文件系统位置,诸如流文件系统位置fifos292(a)、管道和门文件系统位置namefs293(a)、插口文件系统位置sockfs294(a)。这里没有详尽的穷举列出,并且在一些实施例中,其他文件系统位置也可包含在根目录290(a)的其他子目录中。许多进程运行在非全局区域140(a),诸如进程A1 174-1(a)和进程A2 174-2(a)已经建立了进程间通信路径103(a)。在一个实施例中,该通信路径103(a)可用作管道传输介质,它使用fifos292(a)作为会合点。进程A2 174-2(a)和进程A3 174-3(a)已经建立了使用sockfs293(a)作为会合点的进程间通信路径106(a)。通信路径106(a)可用作插口类型传输介质。图2C还描述了进程A1 174-1(a)和进程A3174-3(a)已经利用namefs293(a)建立了通信路径104(a),其可利用流或门传输介质。
现在参考图2C的非全局区域B 140(b),文件系统180(b)的单独实例被装载在根目录290(b)上。根目录290(b)也包括一个或多个存储进程数据和/或进程文件的子目录,该进程例如进程B1 174-1(b),进程B2 174-2(b)和进程B3 174-3(b)。如上所述,图2C描述了多个文件系统位置,包括具有作为文件系统位置的相同通信目标标识符的fifofs292(b)、namefs293(b)和sockfs294(b),这些文件系统位置用作非全局区域140(a)中的会合点。因为进程B1 174-1(b),进程B2 174-2(b)和进程B3 174-3(b)包含在非全局区域B 140(b)中,这些进程被允许绑定到作为非全局区域140(b)的fifofs292(b)、namefs293(b)和sockfs294(b)的文件系统位置上,而不干扰在非全局区域140(a)中具有相同标识符的通信目标。在图2C的典型实施例中,所述目录和相关的非全局区域B 140(b)的文件系统180(b)的结构非常类似于非全局区域A 140(a)的文件系统180(a)的部分,然而,没有必要一直这样,并且存在实施特定替代。例如,在一些实施例中,文件系统180(a)和文件系统180(b)可映射到单个物理存储器中,在一个实施例中这称之为回环文件系统。
全局区域130包括操作系统环境100的文件系统根目录290。全局区域130的文件系统还包括一个或多个子目录,诸如/PROC292、/USR293和/ETC294。在一个实施例中,根目录/290包括子目录/AUXO291,其具有作为它的子目录的目录/AUXO/区域A 290(a)和目录/AUXO/区域B 290(b),以实现区域根目录/290(a)和/290(b)。
在一些实施例中,该文件系统位置机构可用在各种传输机构中,以提供用于非全局区域的进程间通信。选择使用在一些实施例中的传输机构的示例以便使用作为会合点的文件系统位置来提供进程间通信,这些示例包括管道、流、和插口,以及门进程间通信,其中的每一个将参考示例性实施例进行更详细的描述。
管道、流和插口
管道、流和UNIX区域插口提供进程间通信机构的示例,通过使用作为会合点的文件系统位置可管理该机构。在一个实施例中,进程通过fifos与管道会合点通信,进程通过namefs与流会合点通信,并且进程通过socks使用UNIX区域插口。由于在一个非全局区域中的进程将不访问与其他非全局区域有关的系统位置,使用这些进程间通信机构的驻留在非全局区域中的进程可被限制在它们驻留的非全局区域的边界内。在一个实施例中,该文件系统层级可用于隔离在非全局区域边界内的进程间通信,因为文件系统层级被划分,有效地阻挡这些进程建立进程间通信,而不包括全局区域(其已经访问了整个文件系统层级)。例如,在一个实施例中,如果允许在不同全局区域中的进程相互通信,可为每个进程提供一个接口,来确定在其他连接端上的进程的证书(包括区域ID)。
门
门是使用文件系统作为会合点(通过namefs)的进程间通信机构。利用门作为通信传输介质的客户进程通常能呼叫在相同区域内的服务器。在一个实施例中,可以提供利用门作为通信传输介质的交叉区域通信,由于门服务器能利用称作door_ucred(3DOOR)的证书取回进程来取回呼叫者的证书。在一个实施例中,被door_ucred返回的专用数据结构被扩展以包括区域ID并添加ucred-get区域ID(3C)接口用于从该结构中取回区域ID信息。在一些实施例中,允许产生全局门服务器,其中来自全局区域的服务门可设置在每个非全局区域中,并且该服务器能检查是否特许呼叫者基于它的区域ID和其他证书信息来执行指定的操作。在一些实施例中,能提供一种利用门作为通信传输介质而用于交叉区域通信的机构。
示例操作
根据本发明一个实施例的示例操作系统100将被描述。在下面的讨论中,将参照图2A-2C的系统框图和图3A-3I的流程框图来进行。
图3A是描述本发明一个实施例的操作的流程图。在参照图3A讨论的实施例中,在框312中,建立具有唯一标识符的非全局区域以隔离所述进程,这将在图3C中详细描述。在框314中,响应第一请求,产生通信目标。该通信目标包括对应于非全局区域140的区域标识符,该非全局区域140和进行请求以产生通信目标的进程相关,如将参考图3D进行的详细描述。在框316中,响应一个请求,利使用通信目标的通信被启动用于请求进程,已经确定请求进程与相同的非全局区域相关,该非全局区域和通信目标有关,如将参考图3E和3I进行的详细描述。
图3B是描述本发明一个实施例的操作的操作流程图。在参照图3B的详细讨论中,在框322中,建立非全局区域140以隔离进程。每个非全局区域140包含具有文件系统位置的文件系统以管理通信目标,这将参照图3F进行详细描述。在框324中,在与非全局区域140相关的文件系统的文件系统位置中产生通信目标244。该文件系统位置对应通信传输介质,这将参照图3G进行详细描述。在框326中,响应一个请求,利使用通信目标的通信为一个请求进程而被启动,已经确定与该请求进程相关的与相同的非全局区域相关,该非全局区域和通信目标有关,将参考图3H和3I对此进行详细描述。
参照图3C,该图是描述本发明一个实施例的图3A中框312的操作的操作流程图,在框332中,产生非全局区域140。在框334中,唯一的区域标识符与每个非全局区域140相关。在框335中,在内核150中产生结构254以管理关于非全局区域140中通信目标的信息。
参照图3D,该图是描述本发明一个实施例的图3A中框314的操作的操作流程图,在框336中,产生通信目标的请求被接收。在框337中,产生该通信目标。在框338中,请求进程的通信目标标识符和唯一的区域标识符被存储在结构254中,用于管理关于非全局区域140中通信目标的信息。在一个实施例中,通信目标标识符和唯一的区域标识符包括与通信目标有关的证书。
参照图3E,该图是描述本发明一个实施例的图3A中框316的操作的操作流程图,在框342中,从进程174-1中接收启动进程间通信的请求。在框344中,基于请求进程174-1的区域标识符、该请求、和数据结构254来确定是否特许请求进程174-1使用请求的通信。在框346中,执行一个测试以查看请求进程174-1的区域标识符是否匹配对应该请求的通信目标244的区域标识符(或密钥)。如果区域ID不匹配,在框348中,与非全局区域140相关的进程174-1访问目标244的请求被拒绝。否则,如果区域ID匹配,在框352中,来自与非全局区域140相关的进程174-1的请求被允许,并准许访问通信目标244。
参照图3F,该图是描述本发明一个实施例的图3B中框322的操作的操作流程图,在框356中,建立非全局区域140。在框357中,为每个非全局区域140安装文件系统为操作系统环境100的文件系统。在框358中,建立在非全局区域140的文件系统中的文件系统位置以产生会合点,用于非全局区域140查寻中的进程以建立进程间通信。
参照图3G,该图是描述本发明一个实施例的图3B中框324的操作的操作流程图,在框362中,在文件系统位置中建立通信目标以充当会合点用于进程查找以建立进程间通信。在框364中,建立对文件系统位置的访问许可。在一个实施例中,进程174-1查寻访问遵守这些许可的在非全局区域140中的进程间通信。
参照图3H,该图是描述本发明一个实施例的图3B中框326的操作的操作流程图,在框372中,进程174-1利用通信目标244启动进程间通信的请求被接收。在框374中,确定是否准许进程174-1访问通信目标244。在框376中,执行一个测试以查看请求进程174-1的区域标识符是否匹配通信目标244的区域标识符。如果区域标识符不匹配,在框378中,来自进程174-1的请求被拒绝。否则,如果区域标识符匹配,在框380中,执行一个测试以查看请求进程174-1对于包含在通信目标244中的文件系统位置是否具有合适的访问许可。如果请求进程174-1具有合适的访问许可,在框382中,进程174-1访问目标244的请求被允许。否则如果请求进程174-1不具有合适的访问许可,在框384中,来自进程174-1的请求被拒绝。
参照图3I,该图是描述本发明一个实施例的图3A中框316和图3B中框326的操作的操作流程图,在框386中,有关非全局区域140(a)的进程174-1(a)启动与进程174-1(b)的进程间通信的请求被接收,该进程174-1(b)与非全局区域B140(b)有关。在框388中,基于区域标识符和进程174-1(a)的证书来确定是否特许请求与非全局区域B 140(b)中的进程174-1(b)通信。在框390中,执行一个测试以查看是否特许请求进程174-1(a)开始与在另一个非全局区域中的进程之间的进程间通信。如果请求进程174-1(a)得到允许,在框394中,来自与非全局区域140(a)相关的进程174-1(a)的请求被特许,并且建立区域间进程间通信路径。否则如果请求进程174-1(a)得不到特许,在框392中,来自进程174-1(a)的请求被拒绝。
硬件概述
图4是实现本发明的实施例的计算机系统400的示意性框图。计算机系统400包括有助于信息交换的总线402,和与总线402相连的用于处理信息的一个或多个处理器404。计算机系统400还包括主存储器406,诸如随机存储器(RAM)或其他动态存储装置,该存储装置耦合到总线402以便用于存储信息和由处理器404执行的指令。在处理器404执行指令期间,主存储器406还可用于存储临时变量或其他中间信息。计算机系统400还可包括耦合到总线402的用于存储静态信息和处理器404指令的只读存储器(ROM)408或其他静态存储装置。存储装置410,诸如磁盘或光盘被提供并耦合到总线402以存储信息和指令。
计算机系统400可通过总线402连接诸如阴极射线管(CRT)的显示器412,该显示器将信息显示给计算机用户。包括字母数字和其他按键的输入装置414耦合到总线402用于通知信息和对处理器404进行命令选择。其他类型的用户输入装置是光标控制器(cursorcontroller)416,诸如鼠标、轨迹球、或光标方向键,用于通知信息和对处理器404进行命令选择,并控制光标在显示器412上的运动。该输入装置典型地两个轴中具有两个自由度,这两个轴为第一轴(例如X)和第二轴(例如Y),这使该装置能在平面中指定位置。
在计算机系统400中,总线402可以是任意机构和/或介质,其能使信息信号、数据等在各种部件中进行交换。例如,总线402可以是一组携带电子信号的导线。总线402也可以是在一个或多个部件之间携带无限信号的无线介质(例如空气)。总线402也可以是能使信号在一个或多个部件之间进行电容交换的介质(例如空气)。总线402还可以是连接一个或多个部件地网络连接。总之,能使信息、信号、数据等在各种部件之间进行交换的任何机构和/或介质可用作总线402。
总线402也可以是上述这些机构/介质的组合。例如,处理器404可以与存储装置410进行无线通信。在这种情况下,从处理器404和存储装置410的角度来看,总线402可以是无线介质,诸如空气。而且,处理器404可以电容性地与ROM408进行电容性通信。在此情况下,总线402403可以是能使电容性通信发生的介质(诸如空气)。进一步,处理器404可通过网络连接与主存储器406通信。在这种情况下,该总线402可以是网络连接。而且,处理器404可通过一组导线与显示器412通信。在这种情况下,总线402可以是一组导线。因此,基于各种部件互相通信的方式,总线402可以采取不同形式。如图4所示,总线402可以功能性地代表所有能使信息、信号、数据等在各种部件之间进行交换的机构和/或介质。
本发明关于用计算机系统400执行所述的技术。根据本发明的一个实施例,计算机系统400通过响应由处理器404执行的一个或多个指令的一个或多个序列来执行那些技术,这些指令包含在主存储器406中。可从另一个机器可读的介质,诸如存储装置410,将所述指令读入主存储器406。执行包含在主存储器406中的指令序列使处理器404执行这里所述的处理步骤。在可选实施例中,可使用硬布线电路代替或结合软件指令来执行本发明。因此,本发明的实施例不限于任何硬件电路和软件的任何特定的组合。
在此使用的术语“机器可读介质”指参与提供数据的任何介质,所述数据使机器以特定方式操作。在利用计算机系统400执行的一个实施例中,包括各种机器可读介质,例如,向处理器404提供了用于执行的指令。这些介质可采取任何形式,包括但不限于,非易失性介质、易失性介质、和传输介质。非易失性介质包括,例如,光或磁盘,诸如存储装置410。易失性介质包括动态存储器,诸如主存储器406。传输介质包括同轴电缆、铜线和光纤,包括含有总线402的导线。传输介质也能采取声波或光波的形式,诸如在无线电波或红外线数据通信中产生的声波或光波。
机器可读介质的普通形式包括,例如软盘(floppy disc)、软磁盘(flexible disc)、硬盘、磁带、或其他磁介质,CD-ROM,任何光介质、穿孔卡、纸带,任何具有孔结构的物理媒体、RAM、PROM、和EPROM、FLASH-EPROM,任何存储芯片或盒式磁带,下文中描述的载波,或计算机可以读取的任何其他介质。
各种形式的机器可读介质可涉及携带处理器404执行的一个或多个指令的一个或多个序列。例如,最初该指令可携带在远程计算机的磁盘上。该远程计算机可以将该指令加载到其动态存储器中,并使用调制解调器通过电话线发送所述指令。位于计算机系统400上的调制解调器能接收电话线上的数据,并使用红外线发送器将数据转换为红外信号。红外线探测器能接收红外信号中携带的数据,并且合适的电路能将数据置于总线402上。总线402将数据传输给主存储器406,处理器404从主存储器406中接收并执行所述指令。在处理器404执行指令之前或之后,由主存储器406接收的指令可选择地存储在存储装置410中。
计算机系统400还包括耦合到总线402的通信接口418。通信接口418提供耦合到网络链路420的双向数据通信,该网络链路420连接本地网络422。例如,通信接口418可以是综合业务数字网(ISDN)卡或调制解调器以提供连接到相应类型的电话线上的数据通信。作为另一示例,通信接口418可以是局域网(LAN)卡以提供连接到兼容LAN的数据通信。无线链路也可以实现。在任何实施中,通信接口418发送并接收电子、电磁或光信号,这些信号携带表示各种类型信息的数字数据流。
网络链路420通常典型地通过一个或多个网络提供数据通信给其他数据装置。例如,网络链路420可提供通过本地网络422到主机424或由因特网服务提供者(ISP)426操作的数据设备的连接。ISP426通过目前通称为“因特网”428的全球分组数据通信网络轮流提供数据通信服务。本地网络422和因特网428可使用携带数字数据流的电子、电磁或光信号。通过各种网络的信号和在网络链路420上并通过通信接口418的信号是传输信息的载波的典型形式,所述信号携带数字数据到达和来自计算机系统400。
计算机系统400能通过网络、网络链路420和通信接口418发送消息和接收数据,包括程序代码。在因特网示例中,服务器430通过因特网428、ISP426、本地网络422和通信接口418发送请求码。
接收代码可由处理器404以其接收时状态执行,和/或存储在存储装置410中,或在其他非易失性存储器中用于随后的处理。以这种方式,计算机系统400可以以载波形式获得应用码。
在上述说明中,应当理解尽管本发明已经参照一个实施例进行了描述,但不应当视为对本发明的限制。在不脱离本发明精神的前提下,本领域普通技术人员根据公开的内容可进行各种修改。因此,本发明不应当被示意的实施例限制,而是应限制在提出的权利要求的范围内。因此,说明书和附图被也是作为说明,而不是限制。
Claims (15)
1.一种方法包括:
在由单一操作系统内核实例控制的全局操作系统环境中,建立一个非全局区域用于将进程与其他非全局区域中的进程隔离,其中所述非全局区域具有唯一区域标识符;
从在相关的非全局区域中执行的第一进程中,接收第一请求以产生通信目标;
响应接收所述第一请求,产生通信目标,其中所述通信目标具有与其相关的非全局区域的所述唯一区域标识符;
利用所述通信目标,从第二进程,接收第二请求,以启动通信;
响应接收所述第二请求,确定所述第二进程是否与具有所述通信目标的所述唯一区域标识符的所述非全局区域相关;和
如果所述第二进程与具有所述通信目标的所述唯一区域标识符的所述非全局区域无关,则拒绝所述第二请求。
2.如权利要求1所述的方法,还包括:
如果所述第二进程与具有所述通信目标的相同唯一区域标识符的所述非全局区域有关,则允许所述第二请求。
3.如权利要求1所述的方法,其中所述通信目标具有目标标识符,并且其中产生通信目标还包括:
产生具有通信目标标识符的通信目标;
将所述请求进程的区域标识符与所述通信目标关联;
将所述通信目标标识符和所述区域标识符存储在结构中,所述结构用于管理包含所述第一进程的所述非全局区域中的通信目标;
由此,使在第一非全局区域中的第一通信目标和第二非全局区域中的第二通信目标使用相同的通信目标标识符。
4.如权利要求3所述的方法,其中所述通信目标标识符包括地址、插口标识符、端口、灵活地址、信号量标识符、消息队列标识符、共享存储器段标识符、管道和流标识符中的至少一个。
5.如权利要求1所述的方法,其中建立一个用于将进程与其他非全局区域的进程隔离的非全局区域还包括:
产生一个非全局区域;
将唯一的标识符与所述非全局区域关联;和
产生用于管理有关通信目标的信息的数据结构,所述通信目标与所述非全局区域相关。
6.如权利要求1所述的方法,其中利用所述通信目标,接收来自第二进程的请求,以启动通信,包括:接收来自第一非全局区域的请求者进程中的请求,以与第二非全局区域中的接收进程进行通信,所述方法还包括:
取回用于所述请求者进程的证书,所述证书包括表示约束所述请求者进程的非全局区域的区域标识符;
基于所述证书,检验所述请求者进程是否被特许越过非全局区域边界与所述接收进程进行通信;和
如果所述请求者进程被特许,通过所述全局操作系统环境,在所述请求者进程和所述接收进程之间建立通信路径。
7.如权利要求1所述的方法,其中所述通信目标包括回环传输提供者、信号量、共享存储器段、消息队列和事件信道中的至少一个。
8.一种方法包括:
在由单一操作系统内核实例控制的全局操作系统环境中,建立一个非全局区域,以将进程与其他非全局区域中的进程隔离;
在一个非全局区域中的进程可访问的点上,为所述全局操作系统环境的全局文件系统,安装一个文件系统;
在所述非全局区域的所述文件系统中,建立文件系统位置;
在所述文件系统位置中,建立通信目标;
为所述文件系统位置,建立访问许可;
利用所述通信目标,从第一进程,接收请求以启动通信;
响应接收所述请求,确定是否特许所述第一进程访问所述通信目标的所述文件系统位置;
如果不允许所述第一进程访问所述通信目标的所述文件系统位置,拒绝所述请求。
9.如权利要求8所述的方法,其中所述通信目标使用管道、流、插口、便携操作系统接口进程间通信和门接口中的至少一个。
10.如权利要求8所述的方法,其中利用所述通信目标,从第一进程中接收请求,以启动通信,包括:从第一非全局区域的第一进程中接收请求,以与第二非全局区域的第二进程通信,所述方法还包括:
取回用于所述第一进程的证书,所述证书包括表示约束所述第一进程的非全局区域的区域标识符;
基于所述证书,检验所述第一进程是否被特许越过非全局区域边界与所述第二进程进行通信;和
如果所述第一进程被允许,在所述第一进程和所述第二程之间建立通信路径。
11.如权利要求10所述的方法,其中,第一非全局区域中的所述第一进程利用事件信道和门接口中的至少一个,与所述第二非全局区域中的所述第二进程通信。
12.一种方法包括:
在全局操作系统环境中建立非全局区域,以将进程与其他非全局区域中的进程隔离;
响应第一请求,产生通信目标,所述通信目标具有对应产生所述第一请求的进程的所述非全局区域的唯一标识符;和
如果确定产生所述第二请求的所述进程与所述非全局区域有关,则响应第二请求,为产生所述第二请求的进程,利用所述通信目标启动通信,其中所述非全局区域具有与所述通信目标的所述唯一标识符匹配的唯一标识符。
13.一种装置,包括:
在由单一操作系统内核实例控制的全局操作系统环境中,建立非全局区域,以将进程与其他非全局区域中的进程隔离的装置,其中所述非全局区域具有唯一区域标识符;
用于从第一进程中,接收产生通信目标的第一请求的装置,所述第一进程在相关的所述非全局区域中执行;
用于响应接收所述第一请求,以产生通信目标的装置,其中所述通信目标具有与其相关的所述非全局区域的所述唯一区域标识符;
用于从第二进程中,利用所述通信目标,接收第二请求,以启动通信的装置;
用于响应接收所述第二请求,确定所述第二进程是否与具有所述通信目标的所述唯一区域标识符的所述非全局区域相关的装置;和
用于在所述第二进程与具有所述通信目标的所述唯一区域标识符的所述非全局区域不相关的情况下,拒绝所述第二请求的装置。
14.一种装置,包括:
用于在由单一操作系统内核实例控制的全局操作系统环境中,建立非全局区域,以将进程与其他非全局区域中的进程隔离的装置;
用于安装文件系统到所述全局操作系统环境中全局文件系统的装置,所述文件系统安装在一个非全局区域中的进程可以访问的点上;
用于在所述非全局区域的所述文件系统中,建立文件系统位置的装置;
用于在所述文件系统位置中,建立通信目标的装置;
用于为所述文件系统位置,建立访问许可的装置;
用于从第一进程中,利用所述通信目标,接收请求,以启动通信的装置;
用于响应接收所述请求,确定是否特许所述第一进程访问所述通信目标的所述文件系统位置的装置;和
用于在不允许所述第一进程访问所述通信目标的所述文件系统位置的情况下,拒绝所述请求的装置。
15.一种装置,包括:
用于在全局操作系统环境中,建立一个非全局区域,以将进程与其他非全局区域中的进程隔离的装置;
用于响应第一请求,产生通信目标的装置,所述通信目标具有对应于产生所述第一请求的进程的所述非全局区域的唯一标识符;
用于响应第二请求,如果产生所述第二请求的进程被确定与具有唯一标识符的所述非全局区域相关,则利用所述通信目标,为产生所述第二请求的进程启动通信的装置,所述非全局区域具有与所述通信目标的所述唯一标识符匹配的唯一标识符。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US46955803P | 2003-05-09 | 2003-05-09 | |
US60/469,558 | 2003-05-09 | ||
US10/766,094 US7389512B2 (en) | 2003-05-09 | 2004-01-27 | Interprocess communication within operating system partitions |
US10/766,094 | 2004-01-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1595363A CN1595363A (zh) | 2005-03-16 |
CN100458710C true CN100458710C (zh) | 2009-02-04 |
Family
ID=32995092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100595403A Active CN100458710C (zh) | 2003-05-09 | 2004-05-09 | 在操作系统分区间进行进程间通信的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7389512B2 (zh) |
EP (1) | EP1475707A3 (zh) |
JP (1) | JP2004334893A (zh) |
CN (1) | CN100458710C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022222809A1 (zh) * | 2021-04-21 | 2022-10-27 | 阿里巴巴(中国)有限公司 | 功能组件处理方法、介质、设备和操作系统 |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8933949B2 (en) | 2010-10-01 | 2015-01-13 | Z124 | User interaction across cross-environment applications through an extended graphics context |
US8726294B2 (en) | 2010-10-01 | 2014-05-13 | Z124 | Cross-environment communication using application space API |
US8966379B2 (en) | 2010-10-01 | 2015-02-24 | Z124 | Dynamic cross-environment application configuration/orientation in an active user environment |
US9098437B2 (en) * | 2010-10-01 | 2015-08-04 | Z124 | Cross-environment communication framework |
US9047102B2 (en) | 2010-10-01 | 2015-06-02 | Z124 | Instant remote rendering |
US8819705B2 (en) | 2010-10-01 | 2014-08-26 | Z124 | User interaction support across cross-environment applications |
US8892878B2 (en) * | 2003-05-09 | 2014-11-18 | Oracle America, Inc. | Fine-grained privileges in operating system partitions |
US8307453B1 (en) * | 2004-11-29 | 2012-11-06 | Symantec Corporation | Zone breakout detection |
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 |
CN100351799C (zh) * | 2005-09-12 | 2007-11-28 | 浙江大学 | 嵌入式实时操作系统中基于消息对象的任务间通信方法 |
US8074231B2 (en) * | 2005-10-26 | 2011-12-06 | Microsoft Corporation | Configuration of isolated extensions and device drivers |
JP4795787B2 (ja) * | 2005-12-09 | 2011-10-19 | 株式会社日立製作所 | ストレージシステム、nasサーバ、及びスナップショット方法 |
US20070136356A1 (en) * | 2005-12-12 | 2007-06-14 | Microsoft Corporation | Mechanism for drivers to create alternate namespaces |
US7996841B2 (en) * | 2005-12-12 | 2011-08-09 | Microsoft Corporation | Building alternative views of name spaces |
US8539481B2 (en) * | 2005-12-12 | 2013-09-17 | Microsoft Corporation | Using virtual hierarchies to build alternative namespaces |
US8312459B2 (en) * | 2005-12-12 | 2012-11-13 | Microsoft Corporation | Use of rules engine to build namespaces |
JP5061908B2 (ja) * | 2005-12-27 | 2012-10-31 | 日本電気株式会社 | プログラム実行制御方法および装置ならびに実行制御プログラム |
US8938473B2 (en) * | 2006-02-23 | 2015-01-20 | Oracle America, Inc. | Secure windowing for labeled containers |
US7720777B2 (en) * | 2006-04-11 | 2010-05-18 | Palo Alto Research Center Incorporated | Method, device, and program product to monitor the social health of a persistent virtual environment |
US7716149B2 (en) * | 2006-04-11 | 2010-05-11 | Palo Alto Research Center Incorporated | Method, device, and program product for a social dashboard associated with a persistent virtual environment |
US20070266127A1 (en) * | 2006-05-10 | 2007-11-15 | Richter Andrew H | Internal virtual local area network (lan) |
US8245035B2 (en) * | 2006-06-30 | 2012-08-14 | Microsoft Corporation | Merging registry keys |
US8280908B2 (en) * | 2006-06-30 | 2012-10-02 | Microsoft Corporation | Merging file system directories |
US8032898B2 (en) * | 2006-06-30 | 2011-10-04 | Microsoft Corporation | Kernel interface with categorized kernel objects |
US7774599B2 (en) * | 2006-09-15 | 2010-08-10 | Panasonic Corporation | Methodologies to secure inter-process communication based on trust |
US7756821B2 (en) * | 2006-11-02 | 2010-07-13 | Microsoft Corporation | Virtual deletion in merged file system directories |
US20080109466A1 (en) * | 2006-11-02 | 2008-05-08 | Microsoft Corporation | Virtual Deletion In Merged Registry keys |
US8789063B2 (en) | 2007-03-30 | 2014-07-22 | Microsoft Corporation | Master and subordinate operating system kernels for heterogeneous multiprocessor systems |
US8521966B2 (en) * | 2007-11-16 | 2013-08-27 | Vmware, Inc. | VM inter-process communications |
JP4725635B2 (ja) * | 2008-11-13 | 2011-07-13 | 富士ゼロックス株式会社 | 情報処理装置およびプログラム |
US20100265938A1 (en) * | 2009-04-16 | 2010-10-21 | Mitel Networks Corporation | Enhanced system operation by virtualization |
US8656412B2 (en) * | 2009-12-25 | 2014-02-18 | International Business Machines Corporation | Pipeline across isolated computing environments |
US9923995B1 (en) | 2010-02-27 | 2018-03-20 | Sitting Man, Llc | Methods, systems, and computer program products for sharing information for detecting an idle TCP connection |
US8607039B2 (en) | 2010-08-17 | 2013-12-10 | International Business Machines Corporation | Isolation of device namespace to allow duplicate/common names in root volume group workload partitions |
US9052800B2 (en) | 2010-10-01 | 2015-06-09 | Z124 | User interface with stacked application management |
CN107122168A (zh) | 2010-10-01 | 2017-09-01 | Z124 | 多操作系统 |
US8761831B2 (en) | 2010-10-15 | 2014-06-24 | Z124 | Mirrored remote peripheral interface |
CN101977195B (zh) * | 2010-10-29 | 2013-07-31 | 西安交通大学 | 一种基于共享内存机制虚拟机域间通信协议的实现方法 |
CN103003798B (zh) * | 2011-05-16 | 2017-02-22 | 松下电器(美国)知识产权公司 | 虚拟计算机系统、虚拟计算机系统的控制方法 |
US9182935B2 (en) | 2011-09-27 | 2015-11-10 | Z124 | Secondary single screen mode activation through menu option |
US9553951B1 (en) * | 2013-04-24 | 2017-01-24 | Amazon Technologies, Inc. | Semaphores in distributed computing environments |
JP6053628B2 (ja) * | 2013-07-19 | 2016-12-27 | 株式会社神戸製鋼所 | 鋳片の冷却方法 |
US9910979B2 (en) * | 2014-06-24 | 2018-03-06 | International Business Machines Corporation | Intercepting inter-process communications |
US9465734B1 (en) * | 2015-04-08 | 2016-10-11 | Apple Inc. | Coalition based memory management |
CN105335239B (zh) * | 2015-09-25 | 2019-03-08 | 宇龙计算机通信科技(深圳)有限公司 | 一种多域通信方法及终端 |
US9785790B2 (en) * | 2015-12-15 | 2017-10-10 | International Business Machines Corporation | Protecting computer security applications |
US10599494B2 (en) * | 2016-05-27 | 2020-03-24 | Huawei Technologies Co., Ltd. | Method and system of performing inter-process communication between OS-level containers in user space |
CN109086144B (zh) | 2017-06-14 | 2022-04-05 | 阿里巴巴集团控股有限公司 | 一种进程之间的通信方法和装置 |
CN108563513A (zh) * | 2017-12-29 | 2018-09-21 | 北京元心科技有限公司 | 进程间通信的方法及装置 |
KR102447434B1 (ko) * | 2018-01-10 | 2022-09-27 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
EP3621266B1 (de) * | 2018-09-05 | 2021-07-28 | Siemens Aktiengesellschaft | Verfahren zum betrieb eines webservers |
US10761914B2 (en) * | 2018-10-16 | 2020-09-01 | International Business Machines Corporation | Replacing generated procedure calls with generated inter-process communication |
CN111400055A (zh) * | 2019-01-03 | 2020-07-10 | 中国移动通信集团终端有限公司 | 多进程间通信的方法、装置、设备及存储介质 |
CN109828851A (zh) * | 2019-01-16 | 2019-05-31 | 烽火通信科技股份有限公司 | 一种基于非管理员权限的进程间通信方法及系统 |
CN110740102B (zh) | 2019-09-29 | 2021-10-15 | 苏州浪潮智能科技有限公司 | 一种通信方法、系统、设备及计算机可读存储介质 |
CN114090273A (zh) * | 2020-07-30 | 2022-02-25 | 华为技术有限公司 | 一种进程间通信的方法、装置及计算机存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2241881A1 (en) * | 1998-06-29 | 1999-12-29 | Ibm Canada Limited - Ibm Canada Limitee | Remote procedure calls in distributed systems |
WO2002061554A1 (en) * | 2001-01-31 | 2002-08-08 | Hewlett-Packard Company | Trusted operating system |
US20020124072A1 (en) * | 2001-02-16 | 2002-09-05 | Alexander Tormasov | Virtual computing environment |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5062037A (en) * | 1988-10-24 | 1991-10-29 | Ibm Corp. | Method to provide concurrent execution of distributed application programs by a host computer and an intelligent work station on an sna network |
EP0389151A3 (en) | 1989-03-22 | 1992-06-03 | International Business Machines Corporation | System and method for partitioned cache memory management |
US5155809A (en) * | 1989-05-17 | 1992-10-13 | International Business Machines Corp. | Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware |
US5325517A (en) * | 1989-05-17 | 1994-06-28 | International Business Machines Corporation | Fault tolerant data processing system |
US5283868A (en) * | 1989-05-17 | 1994-02-01 | International Business Machines Corp. | Providing additional system characteristics to a data processing system through operations of an application program, transparently to the operating system |
US5325526A (en) * | 1992-05-12 | 1994-06-28 | Intel Corporation | Task scheduling in a multicomputer system |
JP3566975B2 (ja) * | 1993-10-18 | 2004-09-15 | 株式会社日立製作所 | 計算機操作端末装置の自動操作装置 |
US5437032A (en) * | 1993-11-04 | 1995-07-25 | International Business Machines Corporation | Task scheduler for a miltiprocessor system |
US5784706A (en) * | 1993-12-13 | 1998-07-21 | Cray Research, Inc. | Virtual to logical to physical address translation for distributed memory massively parallel processing systems |
US5963911A (en) * | 1994-03-25 | 1999-10-05 | British Telecommunications Public Limited Company | Resource allocation |
JP3658420B2 (ja) * | 1994-04-14 | 2005-06-08 | 株式会社日立製作所 | 分散処理システム |
GB2301912A (en) | 1995-06-09 | 1996-12-18 | Ibm | Security for computer system resources |
US6064811A (en) * | 1996-06-17 | 2000-05-16 | Network Associates, Inc. | Computer memory conservation system |
US5841869A (en) * | 1996-08-23 | 1998-11-24 | Cheyenne Property Trust | Method and apparatus for trusted processing |
US6075938A (en) * | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US6074427A (en) * | 1997-08-30 | 2000-06-13 | Sun Microsystems, Inc. | Apparatus and method for simulating multiple nodes on a single machine |
US6681238B1 (en) * | 1998-03-24 | 2004-01-20 | International Business Machines Corporation | Method and system for providing a hardware machine function in a protected virtual machine |
US6496847B1 (en) * | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
US6289462B1 (en) * | 1998-09-28 | 2001-09-11 | Argus Systems Group, Inc. | Trusted compartmentalized computer operating system |
US6907608B1 (en) | 1999-01-22 | 2005-06-14 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier in a small footprint device using global data structures |
FR2792087B1 (fr) * | 1999-04-07 | 2001-06-15 | Bull Sa | Procede d'amelioration des performances d'un systeme multiprocesseur comprenant une file d'attente de travaux et architecture de systeme pour la mise en oeuvre du procede |
US6279046B1 (en) * | 1999-05-19 | 2001-08-21 | International Business Machines Corporation | Event-driven communications interface for logically-partitioned computer |
US6438594B1 (en) * | 1999-08-31 | 2002-08-20 | Accenture Llp | Delivering service to a client via a locally addressable interface |
US6701460B1 (en) * | 1999-10-21 | 2004-03-02 | Sun Microsystems, Inc. | Method and apparatus for testing a computer system through software fault injection |
US6557168B1 (en) * | 2000-02-25 | 2003-04-29 | Sun Microsystems, Inc. | System and method for minimizing inter-application interference among static synchronized methods |
US6633963B1 (en) * | 2000-03-31 | 2003-10-14 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6725457B1 (en) * | 2000-05-17 | 2004-04-20 | Nvidia Corporation | Semaphore enhancement to improve system performance |
US7401131B2 (en) * | 2000-05-22 | 2008-07-15 | Verizon Business Global Llc | Method and system for implementing improved containers in a global ecosystem of interrelated services |
US6681258B1 (en) * | 2000-05-31 | 2004-01-20 | International Business Machines Corporation | Facility for retrieving data from a network adapter having a shared address resolution table |
DE60113539T2 (de) * | 2000-07-05 | 2006-06-22 | Ernst & Young Llp | Verfahren und vorrichtung zum bereitstellen von rechnerdiensten |
US6859926B1 (en) * | 2000-09-14 | 2005-02-22 | International Business Machines Corporation | Apparatus and method for workload management using class shares and tiers |
US7096469B1 (en) * | 2000-10-02 | 2006-08-22 | International Business Machines Corporation | Method and apparatus for enforcing capacity limitations in a logically partitioned system |
US6748553B2 (en) * | 2000-12-27 | 2004-06-08 | Intel Corporation | Method and apparatus for default factory image restoration of a system |
US6813766B2 (en) * | 2001-02-05 | 2004-11-02 | Interland, Inc. | Method and apparatus for scheduling processes based upon virtual server identifiers |
US20020120660A1 (en) * | 2001-02-28 | 2002-08-29 | Hay Russell C. | Method and apparatus for associating virtual server identifiers with processes |
US6957435B2 (en) * | 2001-04-19 | 2005-10-18 | International Business Machines Corporation | Method and apparatus for allocating processor resources in a logically partitioned computer system |
US7036123B2 (en) | 2001-04-25 | 2006-04-25 | Sun Microsystems, Inc. | System using fair-share scheduling technique to schedule processes within each processor set based on the number of shares assigned to each process group |
US7028305B2 (en) * | 2001-05-16 | 2006-04-11 | Softricity, Inc. | Operating system abstraction and protection layer |
US6961941B1 (en) * | 2001-06-08 | 2005-11-01 | Vmware, Inc. | Computer configuration for resource management in systems including a virtual machine |
US6792514B2 (en) * | 2001-06-14 | 2004-09-14 | International Business Machines Corporation | Method, system and computer program product to stress and test logical partition isolation features |
US20030014466A1 (en) * | 2001-06-29 | 2003-01-16 | Joubert Berger | System and method for management of compartments in a trusted operating system |
US6738832B2 (en) * | 2001-06-29 | 2004-05-18 | International Business Machines Corporation | Methods and apparatus in a logging system for the adaptive logger replacement in order to receive pre-boot information |
US20030061262A1 (en) | 2001-09-25 | 2003-03-27 | Hahn Stephen C. | Method and apparatus for partitioning resources within a computer system |
US6920485B2 (en) * | 2001-10-04 | 2005-07-19 | Hewlett-Packard Development Company, L.P. | Packet processing in shared memory multi-computer systems |
US7051340B2 (en) * | 2001-11-29 | 2006-05-23 | Hewlett-Packard Development Company, L.P. | System and method for isolating applications from each other |
DE60322366D1 (de) * | 2002-04-18 | 2008-09-04 | Advanced Micro Devices Inc | Rechnersystem mit einem für einen sicheren ausführungsmodus geeigneten cpu und einem sicherheitsdienst-prozessor die über einen gesicherten kommunikationsweg miteinander verbunden sind |
US7478139B2 (en) * | 2002-04-29 | 2009-01-13 | International Business Machines Corporation | Shared resource support for internet protocol |
US7095738B1 (en) * | 2002-05-07 | 2006-08-22 | Cisco Technology, Inc. | System and method for deriving IPv6 scope identifiers and for mapping the identifiers into IPv6 addresses |
US7890633B2 (en) * | 2003-02-13 | 2011-02-15 | Oracle America, Inc. | System and method of extending virtual address resolution for mapping networks |
US7493409B2 (en) * | 2003-04-10 | 2009-02-17 | International Business Machines Corporation | Apparatus, system and method for implementing a generalized queue pair in a system area network |
US7076634B2 (en) * | 2003-04-24 | 2006-07-11 | International Business Machines Corporation | Address translation manager and method for a logically partitioned computer system |
US7188120B1 (en) * | 2003-05-09 | 2007-03-06 | Sun Microsystems, Inc. | System statistics virtualization for operating systems partitions |
-
2004
- 2004-01-27 US US10/766,094 patent/US7389512B2/en active Active
- 2004-05-07 EP EP04252661A patent/EP1475707A3/en not_active Withdrawn
- 2004-05-09 CN CNB2004100595403A patent/CN100458710C/zh active Active
- 2004-05-10 JP JP2004140417A patent/JP2004334893A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2241881A1 (en) * | 1998-06-29 | 1999-12-29 | Ibm Canada Limited - Ibm Canada Limitee | Remote procedure calls in distributed systems |
WO2002061554A1 (en) * | 2001-01-31 | 2002-08-08 | Hewlett-Packard Company | Trusted operating system |
US20020124072A1 (en) * | 2001-02-16 | 2002-09-05 | Alexander Tormasov | Virtual computing environment |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022222809A1 (zh) * | 2021-04-21 | 2022-10-27 | 阿里巴巴(中国)有限公司 | 功能组件处理方法、介质、设备和操作系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2004334893A (ja) | 2004-11-25 |
EP1475707A2 (en) | 2004-11-10 |
US7389512B2 (en) | 2008-06-17 |
CN1595363A (zh) | 2005-03-16 |
US20040226023A1 (en) | 2004-11-11 |
EP1475707A3 (en) | 2007-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100458710C (zh) | 在操作系统分区间进行进程间通信的方法和装置 | |
CN110710168B (zh) | 跨隔离的网络堆栈的智能线程管理 | |
CN100437545C (zh) | 服务器间的透明会话迁移的方法 | |
CN100375033C (zh) | 一种用于在操作系统分区环境中使用细粒度特权模型管理进程活动的方法和设备 | |
US10025615B2 (en) | Dynamic guest virtual machine identifier allocation | |
US6523065B1 (en) | Method and system for maintenance of global network information in a distributed network-based resource allocation system | |
EP1475703A2 (en) | Method and apparatus for controlling global visibility in a computer system | |
CN109542611A (zh) | 数据库即服务系统、数据库调度方法、设备及存储介质 | |
JPH09223116A (ja) | 複数ミドルウェアに渡る分散オブジェクトの位置透過性 | |
CN101754466A (zh) | 移动虚拟化的基础设施以及基础平台 | |
US11805178B2 (en) | Computer system providing user specific session prelaunch features and related methods | |
CN107886006B (zh) | 数据操作方法、装置及电子设备 | |
US20220276878A1 (en) | Method and apparatus for generating image file and computer-readable storage medium | |
US8938554B2 (en) | Mechanism for enabling a network address to be shared by multiple labeled containers | |
US7188120B1 (en) | System statistics virtualization for operating systems partitions | |
CN113821268A (zh) | 一种与OpenStack Neutron融合的Kubernetes网络插件方法 | |
CN111352737A (zh) | 一种基于资源池的容器云计算服务平台 | |
CN112350978A (zh) | 一种业务处理方法、系统、设备及存储介质 | |
CN111985906A (zh) | 一种远程办公系统、方法、装置及存储介质 | |
US11770704B2 (en) | Distance based session roaming | |
EP1480124B1 (en) | Method and system for associating resource pools with operating system partitions | |
CN115185637A (zh) | PaaS组件管理端和虚拟机代理的通信方法及装置 | |
CN109445960A (zh) | 应用的路由方法、装置及存储介质 | |
JPH11508098A (ja) | 分散ネットワーク環境における実行時にクライアントをサーバにリンクさせる装置及び方法 | |
CN111930449A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |