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.一种运行应用程序的装置,其特征在于,该装置包括:获取模块和运行模块;所述获取模块,用于获取待运行的应用程序的配置文件,所述配置文件用于指示创建进程虚拟机所需的资源,所述进程虚拟机包括第一进程虚拟机和至少两个第二进程虚拟机;所述运行模块,用于根据所述获取模块获取的所述配置文件,创建所述第一进程虚拟机,并在所述第一进程虚拟机中加载并运行第一程序代码,以在操作系统中形成沙箱,运行有所述第一程序代码的所述第一进程虚拟机运行在所述沙箱中,所述第一程序代码为基于外核操作系统实现的进程管理单元;所述运行模块,还用于根据所述...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。