一种运行应用程序的方法及装置制造方法及图纸

技术编号:18575691 阅读:34 留言:0更新日期:2018-08-01 10:42
本发明专利技术实施例提供一种运行应用程序的方法及装置,涉及计算机领域,能在沙箱层级实现运行多进程的应用程序所需的所有资源由该应用程序维护。该方法包括:获取待运行的应用程序的配置文件;根据该配置文件,创建第一进程虚拟机,在第一进程虚拟机中加载并运行第一程序代码(基于外核操作系统实现的维护应用程序的至少两个功能单元交互的应用程序的数据的进程管理单元),以在操作系统中形成沙箱,运行第一程序代码的第一进程虚拟机运行在沙箱中;根据该配置文件,在沙箱中创建至少两个第二进程虚拟机,在每个第二进程虚拟机中加载并运行一个第二程序代码(基于外核操作系统实现的应用程序的一个功能单元),以在沙箱中运行该应用程序。

A method and device for running an application

An embodiment of the invention provides a method and device for running an application, involving a computer field, and all the resources required to implement a multi process application at a sandbox level are maintained by the application. This method includes: get the configuration file of the application to be run; create the first process virtual machine, load and run the first program code in the first process virtual machine, based on the configuration file, the process of the data of the application of at least two functional units of the maintenance application based on the external core operating system. Management unit), in order to form a sandbox in the operating system, the first process virtual machine running the first program code runs in the sandbox; according to this configuration file, at least two second process virtual machines are created in the sandbox, and a second program code is loaded and run in each second process virtual machine (based on the external core operating system. \ A functional unit of the current application to run the application in the sandbox.

【技术实现步骤摘要】
一种运行应用程序的方法及装置
本专利技术涉及计算机领域,尤其涉及一种运行应用程序的方法及装置。
技术介绍
传统的软件系统中,终端设备运行应用程序所需的所有资源由终端设备的操作系统(OperatingSystem,OS)维护,终端设备运行应用程序时可以通过系统调用访问这些资源。当这些资源由应用程序维护时,支持应用程序运行的可以提供类操作系统功能的与应用程序链接在一起的运行库可以称为外核操作系统或库操作系统(libraryoperationsystem,LibOS)。当前的LibOS项目中,GrapheneLibOS可以支持多进程的应用程序。该多进程的应用程序中,运行在终端设备的一个OS进程中的一个进程可以称为一个微进程,即该多进程的应用程序包括运行在终端设备的多个OS进程中的多个微进程。通常,每个微进程是通过终端设备的OS中的一个后台进程来启动的,且多个微进程启动后会在终端设备的OS进程的一个沙箱(Sandbox)中运行,以及该沙箱中每个微进程的状态信息和资源管理均由终端设备的OS维护。然而,当GrapheneLibOS支持的多进程的应用程序运行在沙箱中时,由于沙箱中每个微进程的状态信息和资源管理均由终端设备的OS维护,即沙箱中每个微进程的状态信息和资源管理无法由应用程序维护,因此GrapheneLibOS无法在沙箱层级实现运行多进程的应用程序所需的所有资源均由该应用程序维护。
技术实现思路
本申请提供一种运行应用程序的方法及装置,能够在沙箱层级实现运行多进程的应用程序所需的所有资源均由该应用程序维护。为达到上述目的,本申请采用如下技术方案:第一方面,提供一种运行应用程序的方法,该方法可以包括:获取待运行的应用程序的配置文件,该配置文件用于指示创建进程虚拟机(包括第一进程虚拟机和第二进程虚拟机)所需的资源,然后根据该配置文件,创建第一进程虚拟机,并在第一进程虚拟机中加载并运行第一程序代码(即基于外核操作系统实现的用于维护该应用程序的至少两个功能单元之间交互的该应用程序的数据的进程管理单元),以在操作系统中形成沙箱,运行有第一程序代码的第一进程虚拟机运行在该沙箱中,以及根据该配置文件,在该沙箱中创建至少两个第二进程虚拟机,并在至少两个第二进程虚拟机中的每个第二进程虚拟机中加载并运行一个第二程序代码(即基于外核操作系统实现的应用程序的一个功能单元),以在该沙箱中运行该应用程序。本申请提供的运行应用程序的方法中,一方面,由于第一程序代码为基于外核操作系统实现的进程管理单元,且第一程序代码运行于第一进程虚拟机中,而外核操作系统可以实现运行应用程序所需的资源均由该应用程序自己维护,因此当本专利技术实施例中的进程管理单元基于外核操作系统实现时,在第一进程虚拟机中运行该进程管理单元所需的资源可以由该进程管理单元维护,即运行该进程管理单元所需的资源无需由操作系统维护。另一方面,由于第二程序代码为基于外核操作系统实现的应用程序的一个功能单元,且一个第二程序代码运行于一个第二进程虚拟机中,而外核操作系统可以实现运行应用程序所需的资源均由该应用程序自己维护,因此当本专利技术实施例中应用程序的各个功能单元基于外核操作系统实现时,在各个第二进程虚拟机中运行该应用程序的一个功能单元所需的资源可以由该应用程序的该功能单元维护,即运行该应用程序的各个功能单元所需的资源无需由操作系统维护。并且,由于进程管理单元和应用程序的至少两个功能单元均运行于沙箱中,且进程管理单元用于维护至少两个功能单元之间交互的应用程序的数据,因此,该沙箱中应用程序的至少两个功能单元之间交互的应用程序的数据也无需由操作系统维护。从而本申请提供的运行应用程序的方法,可以在沙箱层级实现运行多进程的应用程序所需的所有资源均由该应用程序维护。进一步的,由于本申请中提供的运行应用程序的方法,可以在沙箱层级实现运行多进程的应用程序所需的所有资源均由该应用程序维护,因此,在将该应用程序从一个设备(例如当前运行该应用程序的设备)迁移到另外一个设备(例如目标设备)时,可以将当前运行该应用程序的设备的操作系统中运行的沙箱中的数据也全部迁移到目标设备的操作系统中运行的沙箱中,从而可以不中断该应用程序提供的服务(例如该应用程序为使用该应用程序的用户提供的服务)。在第一方面的第一种可能的实现方式中,本申请提供的运行应用程序的方法还可以包括:确定上述应用程序待迁移的目标设备,并将上述应用程序从当前运行上述应用程序的设备迁移到目标设备。本申请提供的运行应用程序的方法中,由于可以确定上述应用程序待迁移的目标设备,并将上述应用程序从当前运行上述应用程序的设备迁移到目标设备,因此在当前运行上述应用程序的设备的内存不足(即当前运行上述应用程序的设备的剩余内存不足以运行该应用程序)时,可以将上述应用程序从当前运行上述应用程序的设备迁移到内存比较充足的目标设备(即目标设备的剩余内存足以运行该应用程序),以保证上述应用程序的正常运行。在第一方面的第二种可能的实现方式中,将上述应用程序从当前运行上述应用程序的设备迁移到目标设备的方法可以包括:将上述应用程序的配置文件、第一程序代码(即基于外核操作系统实现的用于管理该应用程序的至少两个功能单元的进程管理单元)和至少两个第二程序代码(即基于外核操作系统实现的该应用程序的一个功能单元),从当前运行上述应用程序的设备拷贝到目标设备;然后在目标设备上运行上述应用程序,其中,在目标设备上运行上述应用程序的方法与在源设备上运行上述应用程序的方法相同。本申请中,由于在目标设备上运行上述应用程序的方法与在当前运行上述应用程序的设备上运行上述应用程序的方法相同,因此使用本申请提供的运行应用程序的方法在目标设备上运行上述应用程序时,同样可以在沙箱层级实现运行多进程的应用程序所需的所有资源均由该应用程序维护。在第一方面的第二种可能的实现方式中,本申请提供的运行应用程序的方法还可以包括:将当前运行上述应用程序的设备上第一进程虚拟机中的进程管理单元的数据同步到目标设备上的该第一进程虚拟机;对当前运行上述应用程序的设备上至少两个第二进程虚拟机中的每个第二进程虚拟机,执行下述步骤:将当前运行上述应用程序的设备上至少两个第二进程虚拟机中一个第二进程虚拟机中的上述应用程序的数据同步到目标设备上的该一个第二进程虚拟机。由于本申请提供的运行应用程序的方法,可以在沙箱层级实现运行多进程的应用程序所需的所有资源均由该应用程序维护,且由于本申请中可以将当前运行上述应用程序的设备上第一进程虚拟机中的进程管理单元的数据同步到目标设备上的该第一进程虚拟机;并且可以对当前运行上述应用程序的设备上至少两个第二进程虚拟机中的每个第二进程虚拟机,执行下述步骤:将当前运行上述应用程序的设备上至少两个第二进程虚拟机中一个第二进程虚拟机中的上述应用程序的数据同步到目标设备上的该一个第二进程虚拟机,因此,可以将当前运行上述应用程序的设备的操作系统中运行的沙箱中的数据全部迁移到目标设备的操作系统中运行的沙箱中。此时,如果再中断当前运行上述应用程序的设备的操作系统中运行的该应用程序,则能够在当前运行上述应用程序的设备将该应用程序从当前运行上述应用程序的设备迁移到目标设备时,不中断该应用程序为使用该应用程序的用户提供的服务。第二方面,本文档来自技高网...

【技术保护点】
1.一种运行应用程序的方法,其特征在于,所述方法包括:获取待运行的应用程序的配置文件,所述配置文件用于指示创建进程虚拟机所需的资源,所述进程虚拟机包括第一进程虚拟机和至少两个第二进程虚拟机;根据所述配置文件,创建所述第一进程虚拟机,并在所述第一进程虚拟机中加载并运行第一程序代码,以在操作系统中形成沙箱,运行有所述第一程序代码的所述第一进程虚拟机运行在所述沙箱中,所述第一程序代码为基于外核操作系统实现的进程管理单元;根据所述配置文件,在所述沙箱中创建所述至少两个第二进程虚拟机,并在所述至少两个第二进程虚拟机中的每个第二进程虚拟机中加载并运行一个第二程序代码,以在所述沙箱中运行所述应用程序,所述一个第二程序代码为基于所述外核操作系统实现的所述应用程序的一个功能单元;其中,所述进程管理单元用于维护所述应用程序的至少两个功能单元之间交互的所述应用程序的数据。

【技术特征摘要】
1.一种运行应用程序的方法,其特征在于,所述方法包括:获取待运行的应用程序的配置文件,所述配置文件用于指示创建进程虚拟机所需的资源,所述进程虚拟机包括第一进程虚拟机和至少两个第二进程虚拟机;根据所述配置文件,创建所述第一进程虚拟机,并在所述第一进程虚拟机中加载并运行第一程序代码,以在操作系统中形成沙箱,运行有所述第一程序代码的所述第一进程虚拟机运行在所述沙箱中,所述第一程序代码为基于外核操作系统实现的进程管理单元;根据所述配置文件,在所述沙箱中创建所述至少两个第二进程虚拟机,并在所述至少两个第二进程虚拟机中的每个第二进程虚拟机中加载并运行一个第二程序代码,以在所述沙箱中运行所述应用程序,所述一个第二程序代码为基于所述外核操作系统实现的所述应用程序的一个功能单元;其中,所述进程管理单元用于维护所述应用程序的至少两个功能单元之间交互的所述应用程序的数据。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:确定所述应用程序待迁移的目标设备;将所述应用程序从当前运行所述应用程序的设备迁移到所述目标设备。3.根据权利要求2所述的方法,其特征在于,所述将所述应用程序从所述当前运行所述应用程序的设备迁移到所述目标设备,包括:将所述配置文件、所述第一程序代码和所述至少两个第二程序代码,从所述当前运行所述应用程序的设备拷贝到所述目标设备;在所述目标设备上运行所述应用程序,其中,在所述目标设备上运行所述应用程序的方法与在所述当前运行所述应用程序的设备上运行所述应用程序的方法相同。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:将所述当前运行所述应用程序的设备上所述第一进程虚拟机中的所述进程管理单元的数据同步到所述目标设备上的所述第一进程虚拟机;对所述当前运行所述应用程序的设备上所述至少两个第二进程虚拟机中的每个第二进程虚拟机,执行下述步骤:将所述当前运行所述应用程序的设备上所述至少两个第二进程虚拟机中一个第二进程虚拟机中的所述应用程序的数据同步到所述目标设备上的所述一个第二进程虚拟机。5.一种运行应用程序的装置,其特征在于,该装置包括:获取模块和运行模块;所述获取模块,用于获取待运行的应用程序的配置文件,所述配置文件用于指示创建进程虚拟机所需的资源,所述进程虚拟机包括第一进程虚拟机和至少两个第二进程虚拟机;所述运行模块,用于根据所述获取模块获取的所述配置文件,创建所述第一进程虚拟机,并在所述第一进程虚拟机中加载并运行第一程序代码,以在操作系统中形成沙箱,运行有所述第一程序代码的所述第一进程虚拟机运行在所述沙箱中,所述第一程序代码为基于外核操作系统实现的进程管理单元;所述运行模块,还用于根据所述...

【专利技术属性】
技术研发人员:麻先盛代雷
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1