掌桥专利:专业的专利平台
掌桥专利
首页

沙箱的重启方法和装置

文献发布时间:2024-04-18 20:01:23


沙箱的重启方法和装置

技术领域

本公开涉及计算机技术领域,尤其涉及一种沙箱的重启方法和装置。

背景技术

沙箱是一种提供目标对象隔离运行的机制,为沙箱内的目标对象提供虚拟的存储、网络等资源,可以限制不可信目标对象的执行环境,使不可信目标对象的运行影响仅在沙箱内部,不对整个系统的运行造成伤害。

当沙箱由于沙箱进程崩溃和关闭等原因退出后,在沙箱重启时,新的沙箱无法继承上一次沙箱的沙箱配置,导致上一次的个性化的沙箱配置丢失。

发明内容

为解决上述技术问题,本公开实施例提供了一种沙箱的重启方法和装置。

根据本公开实施例的一个方面,本公开实施例提供了一种沙箱的重启方法,所述方法包括:

响应于第N次启动沙箱,创建第N次启动沙箱对应的沙箱运行环境;

其中,N为大于1的正整数,所述第N次启动沙箱对应的沙箱运行环境包括目标沙箱配置,所述目标沙箱配置中包括配置修改信息,所述配置修改信息包括第N-1次在所述沙箱内运行目标对象时,获取到的针对第N-1次创建的沙箱运行环境中的初始沙箱配置的修改内容;

在所述第N次启动沙箱对应的沙箱运行环境中运行沙箱进程,所述沙箱进程用于执行所述目标对象。

在本实施例中,在第N次启动沙箱时,对应的沙箱运行环境中的目标配置信息包括第N-1次的配置修改信息,即当前次沙箱重启时,重启的沙箱的沙箱配置可以继承前一次启动的沙箱的沙箱配置,以避免前一次启动的沙箱的沙箱配置丢失的弊端,避免了沙箱配置的重复调整,提高了沙箱重启的有效性和可靠性。

在一些实施例中,所述创建第N次启动沙箱对应的沙箱运行环境,包括:

获取本地运行所述目标对象的目标本地配置,其中,所述目标本地配置包括所述配置修改信息;

将所述目标本地配置挂载至所述沙箱,得到所述目标沙箱配置;

基于所述目标沙箱配置创建所述第N次启动沙箱对应的沙箱运行环境。

也就是说,在一些可能实现的技术方案中,可以通过对本地配置的修改,使得重启的沙箱的沙箱配置无需再次个性化的调整。

在一些实施例中,所述目标本地配置是根据所述配置修改信息,对第N-1次在本地运行所述目标对象的初始本地配置进行修改得到的,所述初始沙箱配置是将所述初始本地配置挂载至第N-1次启动的沙箱得到的。

也就是说,在一些可能实现的技术方案中,在前一次沙箱配置被修改时,可以根据该配置修改信息对本地的本地配置进行修改,以使得修改后的本地配置的内容与修改后的沙箱配置的内容相同,以使得在当前次启动沙箱时,将修改后的本地配置挂载至当前次启动的沙箱,得到当前次启动的沙箱的沙箱配置,使得重启的沙箱的沙箱配置无需再次个性化的调整。

在一些实施例中,所述目标本地配置是采样用户控件文件系统,将所述配置修改信息同步至所述初始本地配置得到的。

示例性的,通过用户控制文件系统,可以实现将配置修改信息在本地配置的同步写入。

在一些实施例中,所述创建第N次启动沙箱对应的沙箱运行环境,包括:

获取本地运行所述目标对象的本地配置,并将所述本地配置挂载至所述沙箱,得到初始沙箱配置;

根据所述初始沙箱配置和本地预存数据生成所述目标沙箱配置,其中,所述本地预存数据中至少包括所述配置修改信息;

基于所述目标沙箱配置创建所述第N次启动沙箱对应的沙箱运行环境。

也就是说,在一些可能实现的技术方案中,当前一次启动沙箱,沙箱配置被修改时,可以将相应的配置修改信息在本地存储,以便在当前次启动沙箱时,根据本地存储的配置修改信息确定当前次启动的沙箱的沙箱配置,使得重启的沙箱的沙箱配置无需再次个性化的调整。

在一些实施例中,若所述本地预存数据为所述配置修改信息,则所述根据所述初始沙箱配置和本地预存数据生成所述目标沙箱配置,包括:

根据所述配置修改信息,对所述初始沙箱配置中与所述配置修改信息对应的原数据进行修改,得到所述目标沙箱配置。

在一些实施例中,若所述本地预存数据为基于所述配置修改信息对所述初始沙箱配置进行修改得到的数据,则所述根据所述初始沙箱配置和本地预存数据生成所述目标沙箱配置,包括:

将所述本地预存数据替换所述初始沙箱配置,得到所述目标沙箱配置。

也就是说,在本地存储的可能为配置修改信息,也可以为基于配置修改信息对前一次沙箱启动时的沙箱配置进行修改后的沙箱配置,若本地存储的为配置修改信息,则可以基于配置修改信息对当前次启动沙箱的初始沙箱配置进行修改,若本地存储的为修改后的沙箱配置,则可以基于修改后的沙箱配置对当前次启动沙箱的初始沙箱配置进行替换,以避免对当前次沙箱的沙箱配置重新进行调整。

在一些实施例中,所述本地预存数据为至少包括第N-1次在所述沙箱内运行所述目标对象时,在本地存储的对所述初始沙箱配置的修改的所述配置修改信息的数据;

其中,所述初始沙箱配置是基于所述初始本地配置挂载至所述沙箱得到的。

在一些实施例中,所述本地预存数据为所述配置修改信息;或者,所述本地预存数据为基于获取到所述配置修改信息对所述初始沙箱配置修改后的配置。

在一些实施例中,所述本地预存数据为加密后的数据。

也就是说,可以对配置修改信息,或者基于配置修改信息得到的修改后的沙箱配置先加密,而后进行存储,以避免配置修改信息和修改后的沙箱配置的泄漏。

根据本公开实施例的另一个方面,本公开实施例还提供了一种沙箱的重启装置,所述装置包括:

创建单元,用于响应于第N次启动沙箱,创建第N次启动沙箱对应的沙箱运行环境;

其中,N为大于1的正整数,所述第N次启动沙箱对应的沙箱运行环境包括目标沙箱配置,所述目标沙箱配置中包括配置修改信息,所述配置修改信息包括第N-1次在所述沙箱内运行目标对象时,获取到的针对第N-1次创建的沙箱运行环境中的初始沙箱配置的修改内容;

运行单元,用于在所述第N次启动沙箱对应的沙箱运行环境中运行沙箱进程,所述沙箱进程用于执行所述目标对象。

在一些实施例中,所述创建单元,包括:

第一获取子单元,用于获取本地运行所述目标对象的目标本地配置,其中,所述目标本地配置包括所述配置修改信息;

第一挂载子单元,用于将所述目标本地配置挂载至所述沙箱,得到所述目标沙箱配置;

第一创建子单元,用于基于所述目标沙箱配置创建所述第N次启动沙箱对应的沙箱运行环境。

在一些实施例中,所述目标本地配置是根据所述配置修改信息,对第N-1次在本地运行所述目标对象的初始本地配置进行修改得到的,所述初始沙箱配置是将所述初始本地配置挂载至第N-1次启动的沙箱得到的。

在一些实施例中,所述目标本地配置是采样用户控件文件系统,将所述配置修改信息同步至所述初始本地配置得到的。

在一些实施例中,所述创建单元,包括:

第二获取子单元,用于获取本地运行所述目标对象的本地配置;

第二挂载子单元,用于将所述本地配置挂载至所述沙箱,得到初始沙箱配置;

生成子单元,用于根据所述初始沙箱配置和本地预存数据生成所述目标沙箱配置,其中,所述本地预存数据中至少包括所述配置修改信息;

第二创建子单元,用于基于所述目标沙箱配置创建所述第N次启动沙箱对应的沙箱运行环境。

在一些实施例中,若所述本地预存数据为所述配置修改信息,则所述生成子单元用于,根据所述配置修改信息,对所述初始沙箱配置中与所述配置修改信息对应的原数据进行修改,得到所述目标沙箱配置。

在一些实施例中,若所述本地预存数据为基于所述配置修改信息对所述初始沙箱配置进行修改得到的数据,则所述生成子单元用于,将所述本地预存数据替换所述初始沙箱配置,得到所述目标沙箱配置。

在一些实施例中,所述本地预存数据为至少包括第N-1次在所述沙箱内运行所述目标对象时,在本地存储的对所述初始沙箱配置的修改的所述配置修改信息的数据;

其中,所述初始沙箱配置是基于所述初始本地配置挂载至所述沙箱得到的。

在一些实施例中,所述本地预存数据为所述配置修改信息;或者,所述本地预存数据为基于获取到所述配置修改信息对所述初始沙箱配置修改后的配置。

在一些实施例中,所述本地预存数据为加密后的数据。

根据本公开实施例的另一个方面,本公开实施例还提供了一种计算机存储介质,所述计算机存储介质上存储有计算机指令,当所述计算机指令在被处理器运行时,使得上述任一实施例所述的方法被执行。

根据本公开实施例的另一个方面,本公开实施例还提供了一种计算机程序产品,当所述计算机程序产品在处理器上运行时,使得上述任一实施例所述的方法被执行。

根据本公开实施例的另一个方面,本公开实施例还提供了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的计算机指令,所述计算机指令被所述至少一个处理器执行,使得上述任一实施例所述的方法被执行。

本公开实施例提供了一种沙箱的重启方法和装置,包括:响应于第N次启动沙箱,创建第N次启动沙箱对应的沙箱运行环境,其中,N为大于1的正整数,第N次启动沙箱对应的沙箱运行环境包括目标沙箱配置,目标沙箱配置中包括配置修改信息,配置修改信息包括第N-1次在沙箱内运行目标对象时,获取到的针对第N-1次创建的沙箱运行环境中的初始沙箱配置的修改内容,在第N次启动沙箱对应的沙箱运行环境中运行沙箱进程,沙箱进程用于执行目标对象,在本实施例中,通过创建包括配置修改信息的目标沙箱配置的沙箱运行环境,以在该沙箱运行环境中运行执行目标对象的沙箱进程,可以实现重启后的目标沙箱配置继承重启前的对初始沙箱配置的修改内容,可以避免重复配置,提高重启沙箱的有效性和可靠性,提高用户的体验。

附图说明

附图用于更好地理解本公开实施例,不构成对本公开的限定。其中,

图1为本公开实施例的沙箱的重启方法应用的沙箱设备的示意图;

图2为本公开实施例的沙箱的重启方法的原理示意图;

图3为本公开一个实施例的沙箱的重启方法的流程示意图;

图4为本公开另一实施例的沙箱的重启方法的流程示意图;

图5为本公开另一实施例的沙箱的重启方法的原理示意图;

图6为本公开另一实施例的沙箱的重启方法的流程示意图;

图7为本公开另一实施例的沙箱的重启方法的原理示意图;

图8为本公开另一实施例的沙箱的重启方法的流程示意图;

图9为本公开另一实施例的沙箱的重启方法的原理示意图;

图10为本公开一个实施例的沙箱的重启装置的示意图;

图11为本公开另一实施例的沙箱的重启装置的示意图;

图12为本公开实施例的电子设备的示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

沙箱,又叫沙盘,是一种提供目标对象(如程序)隔离运行的机制,是一个虚拟系统程序,它可以为运行中的目标对象提供隔离环境,以使得目标对象的创建、修改、删除、读取等文件操作都在这个隔离环境内进行,不会影响到非沙箱环境(如本地环境)中的目标对象。

也就是说,沙箱的本质是通过一个虚拟运行环境来运行目标对象。沙箱可以通过电子设备的真实操作系统来实现,也可以通过虚拟机来实现。

示例性的,请参阅图1,图1是本公开实施例的沙箱的重启方法应用的沙箱设备的示意图。如图1所示,沙箱设备100可以包括处理器110、存储器120、通信总线130、通信接口140。在一些实施例中,沙箱设备100还包括如图1所示的输入设备150和显示器160。

应理解,图1仅仅是一种示例,沙箱设备100可以包括比图1中更少或更多的部件,本公开实施例对此并不限定。

通信总线130用于实现上述部件之间的连接。本公开实施例不限定上述部件之间的具体连接介质,另外,各部件之间的连接方式,仅是示意性说明,并不引以为限。

通信接口140,可以是有线或者无线的,用于实现与其他网元之间的通信。

处理器110用于执行存储器120中的程序。该程序可以是操作系统或各种应用的程序。

存储器120中包括操作系统121,还可以包括应用程序。

沙箱系统122由操作系统121和虚拟机123组成。沙箱系统122可以通过虚拟机123运行程序。

应该理解的是,图1中所示的操作系统121可以变换为虚拟机控制器。换句话说,沙箱系统可以由虚拟机控制器和虚拟机实现。另外,该虚拟机控制器可以为操作系统中的程序,也可以是能够在操作系统中运行的其他应用程序,本公开实施例对此并不限定。

应理解,在公开实施例中,虚拟机为采用虚拟化技术生成的具有完整软硬件系统功能的计算机系统,本公开实施例对采用的虚拟化技术不做限定。

进程表示正在运行的计算机程序的实例,它包括程序代码和程序代码的运行活动。相应的,在本公开实施例中,程序可在虚拟机中充分运行而无法感知沙箱,沙箱进程表示在沙箱内运行的计算机程序的实例,它包括程序代码和程序代码的运行活动。

然而,当运行目标对象的沙箱由于沙箱进程崩溃、关闭等一些原因退出以后,在重新启动运行目标对象的沙箱时,重新启动的新的沙箱无法继承上一次沙箱对应的沙箱运行环境中的沙箱配置。

示例性的,目标对象可以在非沙箱状态运行,如目标对象在本地运行时,本地被创建有运行目标对象的非沙箱运行环境,如本地运行环境,本地运行环境中包括运行目标对象的本地配置。

目标对象也可以在沙箱状态运行,沙箱中被创建有运行目标对象的沙箱运行环境,沙箱运行环境中包括运行目标对象的沙箱配置。

例如,在第一次启动运行目标对象的沙箱时,创建有相应的沙箱运行环境(为便于区分,将该沙箱运行环境称为第一次沙箱运行环境),该第一沙箱运行环境中包括沙箱配置(为便于区分,将该沙箱配置称为第一次沙箱配置),若该第一次启动的沙箱关闭,需要重新启动运行目标对象的沙箱,即第二次启动运行目标对象的沙箱,则也创建相应的沙箱运行环境(为便于区分,将该沙箱运行环境称为第二次沙箱运行环境),该第二次沙箱运行环境中包括沙箱配置(为便于区分,将该沙箱配置称为第二次沙箱配置),然而,第二次沙箱配置无法继承第一次沙箱配置的内容。

其中,本公开实施例对目标对象不做限定。例如,目标对象可以为应用程序,如办公应用程序,也可以为通信应用程序,也可以为视频应用程序,等等,此处不再一一列举。

办公应用程序可以为查阅加密文档的程序。通信应用程序可以为即时通信应用程序。

本地配置可以理解为,支持目标对象在本地运行的配置数据。例如,若目标对象为查阅加密文档的程序,本地配置可以为支持在本地查阅加密文档的程序的配置数据。又如,若目标对象为通信应用程序,则本地配置可以为支持在本地运行通信应用程序的配置数据。

沙箱配置可以理解为,支持目标对象在沙箱中运行的配置数据。例如,若目标对象为查阅加密文档的程序,沙箱配置可以为支持在沙箱中运行查阅加密文档的程序的配置数据。又如,若目标对象为通信应用程序,则沙箱配置可以为支持在沙箱中运行通信应用程序的配置数据。

为便于读者对沙箱的重启方法的理解,现以目标对象为查阅加密文档的程序为例,结合图2对沙箱的重启方法进行示范性的说明:

若目标对象为查阅加密文档的程序,则当以本地运行环境运行查阅加密文档的程序,本地运行环境中包括本地配置,且本地配置可以包括运行查阅加密文档的程序的目录(为便于区分,将该目录称为本地目录)。例如,如图2所示,本地目录包括文件(file)1、文件2、文件3、以及文件4。

当查阅加密文档的程序需要以沙箱启动时,即需要在沙箱内查阅加密文档时,负责管理沙箱启动的沙箱管理程序可以配置沙箱运行环境。其中,沙箱管理程序可以为如图1所示的操作系统。

相应的,沙箱运行环境中包括在沙箱内运行查阅加密文档的程序的配置(为便于区分,将该配置称为沙箱配置),沙箱配置可以包括沙箱目录和权限配置等。

在一些实施例中,沙箱目录可以为将本地的本地目录挂载至沙箱而得到的。例如,可以基于堆叠文件系统(OverlayFs)将本地目录从本地镜像(Mirroring)至沙箱,如镜像至如图1所示的虚拟机中,得到虚拟机中的沙箱目录。

其中,镜像是一种文件存储形式,是冗余的一种类型,是指将一个存储对象(如磁盘)上的数据在另一个存储对象(如磁盘)上存在一个完全相同的副本。

也就是说,沙箱目录中的内容与本地目录中的内容相同。如图2所示,在创建沙箱运行环境时,可以将本地目录包括文件1至文件4镜像得到沙箱运行环境中的沙箱目录,如图2所示的沙箱目录中的文件1、文件2、文件3、以及文件4。

在创建了沙箱运行环境后,可以在沙箱运行环境中运行沙箱进程,以基于沙箱进程进行执行查阅加密文档的程序,即在沙箱运行环境中运行查阅加密文档的程序。

值得说明的是,沙箱进程可以读和/或写沙箱运行环境中的沙箱配置。例如,用户可以基于沙箱进程读和/或写沙箱配置中的沙箱目录。

然而,尽管沙箱进程可以修改沙箱配置中的至少部分数据,如基于用户的修改指令修改沙箱配置中的部分数据,该修改可以在沙箱运行环境中生效,即修改对于沙箱运行环境中的沙箱配置生效,如沙箱运行环境中的沙箱配置为修改后的沙箱配置,但是,在非沙箱运行环境中并不生效,如在本地中并不生效。

示例性的,如图2所示,沙箱进程基于用户的修改指令修改了沙箱配置中的文件1和文件2,得到如图2所示的文件1’和文件2’,且沙箱程序基于用户的新增指令生成了如图2所示的文件5。但是,本地配置中的本地目录不受影响,依然为文件1、文件2、文件3、以及文件4。

若因沙箱崩溃或其他原因需要重新开启沙箱时,基于上述实施例可知,由于沙箱运行环境的修改对本地不生效,本地配置不会发生改变,因此,如图2所示,重新开启沙箱的沙箱运行环境中的沙箱配置依然为的文件1、文件2、文件3、以及文件4。

也就是说,在重新开启沙箱的沙箱运行环境中,沙箱配置无法继承前一次开启沙箱的沙箱运行环境中的沙箱配置,如上述示例中,重新开启沙箱的沙箱运行环境中的沙箱配置依然为文件1、文件2、文件3、以及文件4,而无法继承前一次开启沙箱的沙箱运行环境中的沙箱配置中的文件1’、文件2’、以及文件5。

为了避免因当前次开启沙箱的沙箱运行环境中的沙箱配置,无法继承前一次沙箱的沙箱运行环境中的沙箱配置的问题,本公开的发明人经过创造性的劳动,得到了本公开的发明构思:获取前一次沙箱进程在沙箱运行环境中运行时,对沙箱运行环境中的沙箱配置的配置修改信息,以基于该配置修改信息确定当前次沙箱进程的沙箱运行环境。

下面以具体地实施例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。

一个方面,本公开实施例提供了一种沙箱的重启方法。

请参阅3,图3为本公开一个实施例的沙箱的重启方法的流程示意图,如图3所示,该方法包括:

S301:响应于第N次启动运行目标对象的沙箱,创建第N次启动沙箱对应的沙箱运行环境。

其中,N为大于1的正整数,第N次启动沙箱对应的沙箱运行环境包括目标沙箱配置,目标沙箱配置中包括配置修改信息,配置修改信息包括第N-1次在沙箱内运行目标对象时,获取到的针对第N-1次创建的沙箱运行环境中的初始沙箱配置的修改内容。

本实施例的沙箱的重启方法的执行主体为沙箱的重启装置,沙箱的重启装置可以为计算机,也可以为服务器(如本地服务器,或者云端服务器),也可以为终端设备,也可以为处理器,也可以为芯片等,本实施例不做限定。

例如,终端设备可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据;终端设备还可以是个人通信业务(PersonalCommunication Service,PCS)电话、无绳电话、会话发起协议(Session InitiationProtocol,SIP)话机、无线本地环路(Wireless Local Loop,WLL)站、个人数字助理(Personal Digital Assistant,PDA),平板型电脑、无线调制解调器(modem)、手持设备(handset)、膝上型电脑(laptop computer)、机器类型通信(Machine TypeCommunication,MTC)终端等设备;终端设备也可以称为系统、订户单元(SubscriberUnit)、订户站(Subscriber Station),移动站(Mobile Station)、移动台(Mobile)、远程站(Remote Station)、远程终端(Remote Terminal)、接入终端(Access Terminal)、用户终端(User Terminal)、用户代理(User Agent)、用户设备(User Device or User Equipment),等等,在此不作限定。

可以理解的是,每一次开启运行目标对象的沙箱,都需要创建该次开启沙箱对应的沙箱运行环境,以便在沙箱运行环境中运行相应的目标对象。

例如,在第一次开启运行目标对象的沙箱时,创建第一次开启沙箱对应的沙箱运行环境,以便在该沙箱运行环境中运行相应的目标对象;在第二次开启运行目标对象的沙箱时,创建第二次开启沙箱对应的沙箱运行环境,以便在该沙箱运行环境中运行目标对象;以此类推,此处不再一一列举。

相应的,该实施例可以理解为:若需要第二次及以后次(如第三次、第四次等等)开启运行目标对象的沙箱,则创建第二次及以后次开启沙箱对应的沙箱运行环境。其中,第一次开启沙箱可以理解为首次开启沙箱,第二次及以后次开启沙箱可以理解为沙箱的重新启动。

结合上述分析可知,在一些实施例中,在沙箱的重新启动时,创建的沙箱运行环境与沙箱首次开启时的沙箱运行环境相同,若沙箱在重新启动之前的沙箱运行过程中,对应的沙箱运行环境中的沙箱配置有修改,则重新启动沙箱时创建的沙箱运行环境中的沙箱配置无法继承修改的内容,而是与首次启动沙箱时的沙箱配置环境中的沙箱配置相同。

然而,在本实施例中,可以避免上述问题,实现在第N次启动沙箱时,第N次启动沙箱对应的沙箱运行环境中的沙箱配置,可以继承第N-1次启动沙箱时,第N-1次启动沙箱对应的沙箱运行环境中的沙箱配置。即若第N-1次启动沙箱(可以为首次启动,也可以为非首次启动),第N-1次启动沙箱对应的沙箱运行环境中的沙箱配置有修改,则第N启动沙箱创建的沙箱运行环境中的沙箱配置,可以继承第N-1次启动沙箱对应的沙箱运行环境中的沙箱配置的修改的内容。

例如,以N为2(即第二次启动沙箱)为例进行示范性地说明如下:

第一次启动沙箱时,创建第一次启动沙箱对应的沙箱运行环境,为便于区分,可以将该沙箱运行环境称为第一次沙箱运行环境,第一次沙箱运行环境中包括沙箱配置,同理,为了便于区分,将该沙箱配置称为初始沙箱配置。

若目标对象在第一次沙箱运行环境中运行时,初始沙箱配置被修改,如初始沙箱配置中的内容被修改、被新增、以及被删除等,可以将初始沙箱配置的修改内容称为配置修改信息。

若第一次启动的沙箱因客观原因(如第一次启动的沙箱崩溃,或者运行沙箱的计算机故障等)和/或主观原因(如用户的操作等)关闭,需要重新启动沙箱,即第二次启动沙箱,则在第二次启动沙箱时,需要创建第二次启动沙箱对应的沙箱运行环境,同理,为了便于区分,将该沙箱运行环境称为第二次沙箱运行环境,第二次沙箱运行环境中包括沙箱配置,同理,为了便于区分,将该沙箱配置称为目标沙箱配置。

值得说明的是,在本实施例中,目标沙箱配置中包括配置修改信息,由于目标沙箱配置中包括配置修改信息,因此,第二次沙箱运行环境可以继承第一次沙箱运行环境,以提高沙箱运行环境创建的有效性和可靠性,避免用户对沙箱运行环境的再次修改,提高了用户的体验。

例如,结合上述分析可知,目标对象可以为查阅加密文档的程序,若初始沙箱配置中包括字体的字号设置(即字体的大小设置),且字号为“小四”。

为便于查阅,用户在沙箱中查阅加密文档时,对加密文档的字体的字号设置进行了修改,将“小四”修该为了“小五”。

相应的,若采样如图2所示的实施例,当沙箱重启后,重启后的沙箱配置中的字号设置依然为“小四”。

而若采用本实施例的方案,目标沙箱配置中也包括字体的字号设置,且字号为“小五”而非原来的“小四”。

相对而言,在本实施例中,目标沙箱配置继承了初始沙箱配置的配置修改信息,即字号为“小五”,用户无需再次对字号设置进行修改,提高了用户的查阅体验。

又如,结合上述分析可知,目标对象可以为通信应用程序,如聊天软件,若初始沙箱配置中包括聊天对象的排序设置,且排序设置为以聊天对象的名称的首字母进行排序。

为了便于交流,用户在沙箱中修改了排序设置,将某一聊天对象进行了置顶设置。

相应的,若采样如图2所示的实施例,当沙箱重启后,重启后的沙箱配置中的聊天对象的排序设置依然为以聊天对象的名称的首字母进行排序。

而若采用本实施例的方案,目标沙箱配置中也包括聊天对象的排序设置,且聊天对象的排序设置为置顶之后的排序设置,而非原来的以聊天对象的名称的首字母进行排序。

相对而言,在本实施例中,目标沙箱配置继承了初始沙箱配置的配置修改信息,即聊天对象的排序设置为置顶之后的排序设置,用户无需再次对以聊天对象的名称的首字母进行排序,提高了用户的查阅体验。

S302:在第N次启动沙箱对应的沙箱运行环境中运行沙箱进程,沙箱进程用于执行目标对象。

相应的,在创建了第N次启动沙箱对应的沙箱运行环境之后,可以在第N次启动沙箱对应的沙箱运行环境中创建沙箱进程,沙箱进程运行于第N次启动沙箱对应的沙箱运行环境中,以实现在第N次启动的沙箱中运行目标对象。

例如,结合上述分析,在创建了第二次沙箱运行环境之后,在第二次沙箱运行环境中拉起沙箱进程,以实现在第二次启动的沙箱中运行查阅加密文档的程序。

结合上述分析可知,本公开提供了一种沙箱的重启方法,该方法包括:响应于第N次启动沙箱,创建第N次启动沙箱对应的沙箱运行环境,其中,N为大于1的正整数,第N次启动沙箱对应的沙箱运行环境包括目标沙箱配置,目标沙箱配置中包括配置修改信息,配置修改信息包括第N-1次在沙箱内运行目标对象时,获取到的针对第N-1次创建的沙箱运行环境中的初始沙箱配置的修改内容,在第N次启动沙箱对应的沙箱运行环境中运行沙箱进程,沙箱进程用于执行目标对象,在本实施例中,通过创建包括配置修改信息的目标沙箱配置的沙箱运行环境,以在该沙箱运行环境中运行执行目标对象的沙箱进程,可以实现重启后的目标沙箱配置继承重启前的对初始沙箱配置的修改内容,可以避免重复配置,提高重启沙箱的有效性和可靠性,提高用户的体验。

为使读者更加深刻的理解本公开实施例的实现原理,现结合图4对本公开实施例进行更为详细的阐述。其中,图4为本公开另一实施例的沙箱的重启方法的流程示意图,如图4所示,该方法包括:

S401:响应于第一次启动运行目标对象的沙箱,创建第一次启动沙箱对应的第一次沙箱运行环境。

其中,第一次沙箱运行环境中包括初始沙箱配置,初始沙箱配置为将初始本地配置挂载至沙箱得到的,初始本地配置用于支持在本地运行目标对象。

也就是说,本地存储有用于在本地运行目标对象的初始本地配置,为了在沙箱中运行目标对象,可以将初始本地配置由本地挂载至沙箱,以得到沙箱中的初始沙箱配置,并可以基于初始沙箱配置创建第一次沙箱运行环境,以在第一次沙箱运行环境中运行目标对象。

应该理解的是,为了避免繁琐的陈述,关于本实施例与上述实施例相同的技术特征,本实施例不做限定。

例如,本实施例对目标对象不做限定;第一次沙箱运行环境为第一次在沙箱中运行目标对象的沙箱运行环境,等等,此处不再一一列举。

在一些实施例中,创建第一次启动沙箱对应的第一次沙箱运行环境,可以包括如下步骤:

第一步骤:获取本地运行目标对象的初始本地配置。

其中,初始本地配置可以理解为:若当前在本地运行目标对象,则为了确保目标对象在本地的运行而存储于本地的配置。

第二步骤:将初始本地配置挂载至沙箱,得到第一次启动的沙箱中的初始沙箱配置。

例如,如图5所示,初始本地配置包括文件1、文件2、文件3、以及文件4,沙箱的重启装置可以将文件1、文件2、文件3、以及文件4挂载至第一次启动的沙箱,得到第一次启动的沙箱中的初始沙箱配置,即得到如图5中的初始沙箱配置中的文件1、文件2、文件3、以及文件4。

第三步骤:基于第一次启动的沙箱中的初始沙箱配置,创建第一次启动沙箱对应的第一次沙箱运行环境。

如图5所示,第一次沙箱运行环境可以包括第一次启动的沙箱中的初始沙箱配置,第一次启动的沙箱中的初始沙箱配置包括文件1、文件2、文件3、以及文件4。但是,应该理解的是,第一沙箱运行环境中还可以包括其他内容,如权限配置等。

S402:响应于针对第一次启动的沙箱中的初始沙箱配置的修改,获取第一次启动的沙箱中的初始沙箱配置的配置修改信息。

例如,如图5所示,若用户对第一次启动的沙箱中的初始沙箱配置进行了修改,删除了文件1中的部分数据,得到文件1’,在文件2中新增了数据,得到了文件2’,且新增加了文件5,则沙箱的重启装置获取到的配置修改信息包括:文件1中删除的部分数据、文件2中新增的数据、以及文件5。

S403:在本地对配置修改信息进行加密存储。

本实施例对配置修改信息的加密方式不做限定,如可以采用对称密钥加密算法对配置修改信息进行加密,也可以采用非对称密钥加密算法对配置修改信息进行加密。

结合上述示例和图5,在本地对配置修改信息进行加密存储,得到加密后的沙箱配置,加密后的沙箱配置包括加密后的文件1中删除的数据、加密后的文件2中新增的数据、以及加密后的文件5。

值得说明的是,由于沙箱重启会丢失前一次沙箱的数据,因此,在本实施例中,将配置修改信息存储于本地,以避免配置修改信息的丢失,且通过加密的方式将配置修改信息存储于本地,可以避免配置修改信息的泄露,提高配置修改信息的安全性和可靠性。

S404:若第一次启动的沙箱关闭,响应于第二次启动运行目标对象的沙箱,获取本地运行目标对象的初始本地配置。

S405:将初始本地配置挂载至沙箱,得到第二次启动的沙箱中的初始沙箱配置。

由于第一次启动的沙箱中的初始沙箱配置、第二次启动的沙箱中的初始沙箱配置,均是将初始本地配置挂载得到的,因此,第一次启动的沙箱中的初始沙箱配置与第二次启动的沙箱中的初始沙箱配置相同。

例如,如图5所示,第二次启动的沙箱中的初始沙箱配置包括文件1、文件2、文件3、以及文件4。

S406:获取存储于本地的加密后的配置修改信息,并对加密后的配置信息进行解密处理,得到配置修改信息。

应该理解的是,解密方式基于加密方式确定,以使得从加密后的配置修改信息中解密还原得到配置修改信息。

S407:根据配置修改信息、第二次启动的沙箱中的初始沙箱配置,确定第二次启动的沙箱中的目标沙箱配置。

示例性的,如图5所示,配置修改信息中包括第一次启动的沙箱中的初始沙箱配置文件1中被删除的数据,则将第二次启动的沙箱中的初始沙箱配置中文件1中的相同数据删除,即删除第二次启动的沙箱中的初始沙箱配置中文件1中在配置修改信息被删除的数据,得到如图5中所示的第二次启动的沙箱中的目标沙箱配置文件1’。

同理,配置修改信息中包括第一次启动的沙箱中的初始沙箱配置文件2中被新增的数据,则在第二次启动的沙箱中的初始沙箱配置中文件2中新增相同的数据,即在第二次启动的沙箱中的初始沙箱配置中文件2中在配置修改信息被新增的数据,得到如图5中所示的第二次启动的沙箱中的目标沙箱配置文件2’。

同理,配置修改信息中包括在第一次启动的沙箱中的初始沙箱配置中被新增的文件5,则在第二次启动的沙箱中的初始沙箱配置中新增相同的数据,即在第二次启动的沙箱中的初始沙箱配置中新增文件5,得到如图5中所示的第二次启动的沙箱中的目标沙箱配置中的文件5。

如图5所示,通过“初始沙箱配置+配置修改信息”确定第二次启动的沙箱中的目标沙箱配置,以使得第二次启动的沙箱中的目标沙箱配置与第一次启动的沙箱中的初始沙箱配置修改后的内容相同,即第二次启动的沙箱中的目标沙箱配置可以继承第一次启动的沙箱中的修改内容,避免用户的再次修改,从而提高了沙箱的重新启动的可靠性和有效性,提高了用户的体验。

S408:根据目标沙箱配置创建第二次启动沙箱对应的第二次沙箱运行环境,并在第二次启动沙箱对应的第二次沙箱运行环境中运行沙箱进程。其中,沙箱进程用于执行目标对象。

示例性的,如图5所示,第二沙箱运行环境中包括目标沙箱配置,目标沙箱配置为对初始沙箱配置进行了修改后的沙箱配置,在第二沙箱运行环境中运行目标对象,保留了修改后的沙箱配置,无需用户再次调整,提高了用户的体验。

基于上述分析可知,在一些实施例中,可以采用对配置修改信息存储的方式实现沙箱的重启,在另一些实施例中,也可以采用对修改后的沙箱配置存储的方式实现沙箱的重启,现结合图6进行详细的阐述。其中,图6为本公开另一实施例的沙箱的重启方法的流程示意图,如图6所示,该方法包括:

S601:响应于第一次启动运行目标对象的沙箱,创建第一次启动沙箱对应的第一次沙箱运行环境。

其中,第一次沙箱运行环境中包括初始沙箱配置,初始沙箱配置为将初始本地配置挂载至沙箱得到的,初始本地配置用于在本地运行目标对象。

同理,为了避免繁琐的陈述,关于本实施例与上述实施例相同的技术特征,本实施例不做限定。

例如,本实施例对目标对象不做限定;第一次沙箱运行环境为第一次在沙箱中运行目标对象的沙箱运行环境,等等,此处不做一一列举。

在一些实施例中,创建第一次启动沙箱对应的第一次沙箱运行环境,可以包括如下步骤:

第一步骤:获取本地运行目标对象的初始本地配置。

其中,初始本地配置可以理解为:若当前在本地运行目标对象,则为了确保目标对象在本地的运行而存储于本地的配置。

第二步骤:将初始本地配置挂载至沙箱,得到第一次启动的沙箱中的初始沙箱配置。

例如,如图7所示,初始本地配置包括文件1、文件2、文件3、以及文件4,沙箱的重启装置可以将文件1、文件2、文件3、以及文件4挂载至第一次启动的沙箱,得到第一次启动的沙箱中的初始沙箱配置,即得到如图7中的初始沙箱配置中的文件1、文件2、文件3、以及文件4。

第三步骤:基于第一次启动的沙箱中的初始沙箱配置,创建第一次启动沙箱对应的第一次沙箱运行环境。

如图7所示,第一次沙箱运行环境可以包括第一次启动的沙箱中的初始沙箱配置,第一次启动的沙箱中的初始沙箱配置包括文件1、文件2、文件3、以及文件4。但是,应该理解的是,第一沙箱运行环境中还可以包括其他内容,如权限配置等。

S602:响应于针对第一次启动的沙箱中的初始沙箱配置的修改,获取第一次启动的沙箱中的初始沙箱配置的配置修改信息。

例如,如图7所示,若用户对第一次启动的沙箱中的初始沙箱配置进行了修改,删除了文件1中的部分数据,得到文件1’,在文件2中新增了数据,得到了文件2’,且新增加了文件5,则沙箱的重启装置获取到的配置修改信息包括:文件1中删除的部分数据、文件2中新增的数据、以及文件5。

S603:根据配置修改信息、第一次启动的沙箱中的初始沙箱配置,生成修改后的沙箱配置,并在本地对修改后的沙箱配置进行加密存储。

同理,本实施例对加密配置修改信息的方式不做限定,如可以采用对称密钥加密算法对配置修改信息进行加密,也可以采用非对称密钥加密算法对配置修改信息进行加密。

结合上述示例,修改后的沙箱配置包括:文件1’、文件2’、文件3、文件4、以及文件5,对该修改后的沙箱配置进行加密处理,并将加密后的沙箱配置。相应的,如图7所示,加密后的沙箱配置包括加密后的文件1’、加密后的文件2’、加密后的文件3、加密后的文件4、以及加密后的文件5。

值得说明的是,由于沙箱重启会丢失前一次沙箱的数据,因此,在本实施例中,将修改后的沙箱配置存储于本地,以避免修改后的沙箱配置的丢失,且通过加密的方式将修改后的沙箱配置存储于本地,可以避免修改后的沙箱配置的泄露,提高修改后的沙箱配置的安全性和可靠性。

S604:若第一次启动的沙箱关闭,响应于第二次启动运行目标对象的沙箱,获取本地运行目标对象的初始本地配置。

S605:将初始本地配置挂载至沙箱,得到第二次启动的沙箱中的初始沙箱配置。

由于第一次启动的沙箱中的初始沙箱配置、第二次启动的沙箱中的初始沙箱配置,均是将初始本地配置挂载得到的,因此,第一次启动的沙箱中的初始沙箱配置与第二次启动的沙箱中的初始沙箱配置相同。

例如,如图7所示,第二次启动的沙箱中的初始沙箱配置包括文件1、文件2、文件3、以及文件4。

S606:获取加密存储于本地的修改后的沙箱配置,并对加密存储于本地的修改后的沙箱配置进行解密处理,得到修改后的沙箱配置。

应该理解的是,解密方式基于加密方式确定,以使得从加密后的修改后的沙箱配置中解密还原得到修改后的沙箱配置。

S607:根据修改后的沙箱配置、以及第二次启动的沙箱中的初始沙箱配置,确定第二次启动的沙箱中的目标沙箱配置。

在一些实施例中,可以通过覆盖的方式得到目标沙箱配置。如可以将修改后的沙箱配置覆盖第二次启动的沙箱中的初始沙箱配置,得到目标沙箱配置。

示例性的,如图7所示,将修改后的沙箱配置:文件1’、文件2’、文件3、文件4、以及文件5,覆盖第二次启动的沙箱中的初始沙箱配置:文件1、文件2、文件3、以及文件4,得到目标沙箱配置:文件1’、文件2’、文件3、文件4、以及文件5。

在另一些实施例中,可以通过替换的方式得到目标沙箱配置。如可以将修改后的沙箱配置替换第二次启动的沙箱中的初始沙箱配置,得到目标沙箱配置。

在还一些实施例中,可以通过修改的方式得到目标沙箱配置。如可以根据修改后的沙箱配置,对第二次启动的沙箱中的初始沙箱配置进行修改,得到目标沙箱配置。

示例性的,可以先判断修改后的沙箱配置、以及第二次启动的沙箱中的初始沙箱配置是否包括相同的配置,若是,则保留该配置,若否,则根据修改后的沙箱配置对第二次启动的沙箱中的初始沙箱配置进行修改。

例如,结合上述示例,将修改后的沙箱配置包括:文件1’、文件2’、文件3、文件4、以及文件5,第二次启动的沙箱中的初始沙箱配置包括:文件1、文件2、文件3、以及文件4,则可以确定修改后的沙箱配置、以及第二次启动的沙箱中的初始沙箱配置均包括文件3和文件4,则可以保留文件3和文件4,以将文件3和文件4确定为目标沙箱配置中的数据。

修改后的沙箱配置中的文件1’、以及第二次启动的沙箱中的初始沙箱配置文件1不同,文件1’中为对文件1中的部分数据进行删除后的文件,则可以根据文件1’对文件1进行修改,即将文件1相较于文件1’中多出是数据进行剔除,以将文件1修改为文件1’。

修改后的沙箱配置中的文件2’、以及第二次启动的沙箱中的初始沙箱配置文件2不同,文件2’中为对文件2新增了数据的文件,则可以根据文件2’对文件2进行修改,即在将文件2中新增文件2’中多出数据,以将文件2修改为文件2’。

修改后的沙箱配置中包括新增的文件5’,则可以在第二次启动的沙箱中的目标沙箱配置中新增文件5’。

同理,如图7所示,第二次启动的沙箱中的目标沙箱配置与第一次启动的沙箱中的初始沙箱配置修改后的内容相同,即第二次启动的沙箱中的目标沙箱配置可以继承第一次启动的沙箱中的修改内容,避免用户的再次修改,从而提高了沙箱的重新启动的可靠性和有效性,提高了用户的体验。

S608:根据目标沙箱配置创建第二次启动沙箱对应的第二次沙箱运行环境,并在第二次启动沙箱对应的第二次沙箱运行环境中运行沙箱进程。其中,沙箱进程用于执行目标对象。

示例性的,如图7所示,通过“初始沙箱配置+修改后的沙箱配置”确定第二次启动的沙箱中的目标沙箱配置,第二沙箱运行环境中包括目标沙箱配置,目标沙箱配置为对初始沙箱配置进行了修改后的沙箱配置,在第二沙箱运行环境中运行目标对象,保留了修改后的沙箱配置,无需用户再次调整,提高了用户的体验。

基于上述分析可知,图4和图5所示的实施例可以理解为基于“差异备份”的方式确定目标沙箱配置,即仅对配置修改信息进行加密存储,以便基于加密存储的配置修改信息确定目标沙箱配置。

图6和图7所示的实施例可以理解为基于“全量备份”的方式确定目标沙箱配置,即对修改后的沙箱配置进行加密存储,以便基于加密存储的修改后的沙箱配置确定目标沙箱配置。

也就是说,沙箱的重启装置在第N次启动沙箱时,可以获取本地运行目标对象的本地配置,并将本地配置挂载至沙箱,得到初始沙箱配置,根据初始沙箱配置和本地预存数据生成目标沙箱配置,其中,本地预存数据中至少包括配置修改信息,并基于目标沙箱配置创建第N次启动沙箱对应的沙箱运行环境。

其中,本地配置可以为如上实施例中的配置修改信息,也可以为修改后的沙箱配置。

也就是说,本地预存数据为至少包括第N-1次在沙箱内运行目标对象时,在本地存储的对初始沙箱配置的修改的配置修改信息的数据。其中,初始沙箱配置是基于初始本地配置挂载至沙箱得到的。

若本地预存数据为配置修改信息,则沙箱的重启装置可以根据配置修改信息,对初始沙箱配置中与配置修改信息对应的原数据进行修改,得到目标沙箱配置。

若本地预存数据为基于配置修改信息对初始沙箱配置进行修改得到的数据,即修改后的沙箱配置,则沙箱的重启装置可以将本地预存数据替换初始沙箱配置,得到目标沙箱配置。

值得说明的是,通过采样不同的备份方式(差异备份和全量备份)确定目标沙箱配置,可以实现确定目标沙箱配置的多样性和灵活性。

基于上述分析可知,在一些实施例中,可以采样备份的方式确定目标沙箱配置,以创建包括目标沙箱配置的沙箱运行环境,以实现沙箱的重启,在另一些实施例中,也可以通过对初始本地配置修改的方式实现沙箱的重启,现结合图8进行详细的阐述。其中,图8为本公开另一实施例的沙箱的重启方法的流程示意图,如图8所示,该方法包括:

S801:响应于第一次启动运行目标对象的沙箱,创建第一次启动沙箱对应的第一次沙箱运行环境。

其中,第一次沙箱运行环境中包括初始沙箱配置,初始沙箱配置为将初始本地配置挂载至沙箱得到的,初始本地配置用于在本地运行目标对象。

同理,为了避免繁琐的陈述,关于本实施例与上述实施例相同的技术特征,本实施例不做限定。

例如,本实施例对目标对象不做限定;第一次沙箱运行环境为第一次在沙箱中运行目标对象的沙箱运行环境,等等,此处不做一一列举。

在一些实施例中,创建第一次启动沙箱对应的第一次沙箱运行环境,可以包括如下步骤:

第一步骤:获取本地运行目标对象的初始本地配置。

其中,初始本地配置可以理解为:若当前在本地运行目标对象,则为了确保目标对象在本地的运行而存储于本地的配置。

第二步骤:将初始本地配置挂载至沙箱,得到第一次启动的沙箱中的初始沙箱配置。

例如,如图9所示,初始本地配置包括文件1、文件2、文件3、以及文件4,沙箱的重启装置可以将文件1、文件2、文件3、以及文件4挂载至第一次启动的沙箱,得到第一次启动的沙箱中的初始沙箱配置,即得到如图9中的初始沙箱配置中的文件1、文件2、文件3、以及文件4。

第三步骤:基于第一次启动的沙箱中的初始沙箱配置,创建第一次启动沙箱对应的第一次沙箱运行环境。

如图9所示,第一次沙箱运行环境可以包括第一次启动的沙箱中的初始沙箱配置,第一次启动的沙箱中的初始沙箱配置包括文件1、文件2、文件3、以及文件4。但是,应该理解的是,第一沙箱运行环境中还可以包括其他内容,如权限配置等。

S802:响应于针对第一次启动的沙箱中的初始沙箱配置的修改,至少获取第一次启动的沙箱中的初始沙箱配置的配置修改信息。

在一些实施例中,响应于针对第一次启动的沙箱中的初始沙箱配置的修改,获取的为配置修改信息。

例如,若用户对第一次启动的沙箱中的初始沙箱配置进行了修改,删除了文件1中的部分数据,得到文件1’,在文件2中新增了数据,得到了文件2’,且新增加了文件5,则获取到的为配置修改信息,包括:文件1中删除的部分数据、文件2中新增的数据、以及文件5。

在另一些实施例中,响应于针对第一次启动的沙箱中的初始沙箱配置的修改,可以获取包括配置修改信息的数据。

示例性的,获取到的包括配置修改信息的数据为修改后的沙箱配置,即针对第一次启动的沙箱中的初始沙箱配置的修改而得到的沙箱配置。

例如,若用户对第一次启动的沙箱中的初始沙箱配置进行了修改,删除了文件1中的部分数据,得到文件1’,在文件2中新增了数据,得到了文件2’,且新增加了文件5,则获取到的为修改后的沙箱配置,包括:文件1’、文件2’、文件3、文件4、以及文件5。

S803:根据S802获取到的数据确定目标本地配置。

结合上述分析可知,在一种可能实现的方案中,S802获取到的数据可以为配置修改信息,则该步骤可以理解为:根据配置修改信息确定目标本地配置。

示例性的,可以根据配置修改信息和初始本地配置,确定目标本地配置。

例如,配置修改信息包括:文件1中删除的部分数据、文件2中新增的数据、以及文件5,初始本地配置包括:文件1、文件2、文件3、以及文件4,则可以根据配置修改信息中的“文件1中删除的部分数据”对初始本地配置中的文件1进行修改,即从初始本地配置的文件1中删除配置修改信息中的“文件1中删除的部分数据”,从而得到目标本地配置文件1’;可以根据配置修改信息中的“文件2中新增的数据”对初始本地配置中的文件2进行修改,即在初始本地配置的文件2中增加配置修改信息中的“文件2中新增的数据”,从而得到目标本地配置文件2’;可以根据配置修改信息中的“文件5”对初始本地配置进行修改,即在初始本地配置中增加配置修改信息中的“文件5”,从而得到目标本地配置中的文件5。

在另一种可能实现的方案中,S802获取到的数据可以为修改后的沙箱配置,则该步骤可以理解为:将修改后的沙箱配置同步写入至本地,得到目标本地配置。

也就是说,目标本地配置的内容与修改后的沙箱配置的内容相同,且目标本地配置可以通过对修改后的沙箱配置的同步写入得到的,也可以为根据配置修改信息对初始本地配置进行修改得到的,本实施例不做限定。

其中,若目标本地配置可以通过对修改后的沙箱配置的同步写入得到的,则可以采用关联读写的方式实现。例如,可以采用用户控件文件系统(fuse),将修改后的沙箱配置同步写入至本地,得到目标本地配置。

S804:若第一次启动的沙箱关闭,响应于第二次启动运行目标对象的沙箱,获取本地运行目标对象的目标本地配置。

S805:将目标本地配置挂载至沙箱,得到第二次启动的沙箱中的目标沙箱配置。

示例性的,如图9所示,目标本地配置为修改后的沙箱配置,包括:文件1’、文件2’、文件3、文件4、以及文件5,则在目标本地配置挂载至第二次启动的沙箱,得到的目标沙箱配置的与目标本地配置的内容相同,即目标沙箱配置也包括:文件1’、文件2’、文件3、文件4、以及文件5。

S806:根据目标沙箱配置创建第二次启动沙箱对应的第二次沙箱运行环境,并在第二次启动沙箱对应的第二次沙箱运行环境中运行沙箱进程。其中,沙箱进程用于执行目标对象。

也就是说,在一些实施例中,可以在第N次启动沙箱时,获取本地运行目标对象的目标本地配置,且目标本地配置包括配置修改信息(如目标本地配置可以为如上述示例中根据初始本地配置和配置修改信息确定的,也可以为修改后的沙箱配置),将目标本地配置挂载至沙箱,得到目标沙箱配置,以基于目标沙箱配置创建第N次启动沙箱对应的沙箱运行环境。

其中,若目标本地配置可以为如上述示例中根据初始本地配置和配置修改信息确定的,则目标配置信息是根据配置修改信息,对第N-1次在本地运行目标对象的初始本地配置进行修改得到的,初始沙箱配置是将初始本地配置挂载至第N-1次启动的沙箱得到的。

若目标本地配置为修改后的沙箱配置,则目标本地配置是采样用户控件文件系统,将配置修改信息同步至初始本地配置得到的。

示例性的,如图9所示,第二沙箱运行环境中包括目标沙箱配置,目标沙箱配置为对初始沙箱配置进行了修改后的沙箱配置,在第二沙箱运行环境中运行目标对象,保留了修改后的沙箱配置,无需用户再次调整,提高了用户的体验。

应该理解的是,上述只是以重启沙箱为第二次开启沙箱为例,对沙箱的重启方法进行示范性的说明,而不能理解为重启沙箱必须为第二次开启沙箱,也可以为第三次及第更多次开启沙箱,也不能理解为重启沙箱之前开启的沙箱为第一次开启沙箱,也可以为第二次及第更多次开启沙箱。

且上述示例中,只是以配置中包括文件为例,对配置的挂载、配置的修改等进行示范性的说明,而不能理解为对配置的限定,在另一些实施例中,也配置可以为如上述示例中的字体配置,或者,也可以为权限配置等,其实现原理与上述示例相同,因此,本实施例不再一一赘述。

根据本公开实施例的另一个方面,本公开实施例还提供了一种沙箱的重启装置。

请参阅图10,图10为本公开一个实施例的沙箱的重启装置的示意图。

如图10所示,沙箱的重启装置1000包括:

创建单元1001,用于响应于第N次启动沙箱,创建第N次启动沙箱对应的沙箱运行环境。

其中,N为大于1的正整数,所述第N次启动沙箱对应的沙箱运行环境包括目标沙箱配置,所述目标沙箱配置中包括配置修改信息,所述配置修改信息包括第N-1次在所述沙箱内运行目标对象时,获取到的针对第N-1次创建的沙箱运行环境中的初始沙箱配置的修改内容。

运行单元1002,用于在所述第N次启动沙箱对应的沙箱运行环境中运行沙箱进程,所述沙箱进程用于执行所述目标对象。

请参阅图11,图11为本公开另一实施例的沙箱的重启装置的示意图。

如图11所示,沙箱的重启装置1100包括:

创建单元1101,用于响应于第N次启动沙箱,创建第N次启动沙箱对应的沙箱运行环境。

其中,N为大于1的正整数,所述第N次启动沙箱对应的沙箱运行环境包括目标沙箱配置,所述目标沙箱配置中包括配置修改信息,所述配置修改信息包括第N-1次在所述沙箱内运行目标对象时,获取到的针对第N-1次创建的沙箱运行环境中的初始沙箱配置的修改内容。

在一些实施例中,结合图11可知,创建单元1101,包括:

第一获取子单元11011,用于获取本地运行所述目标对象的目标本地配置,其中,所述目标本地配置包括所述配置修改信息。

第一挂载子单元11012,用于将所述目标本地配置挂载至所述沙箱,得到所述目标沙箱配置。

第一创建子单元11013,用于基于所述目标沙箱配置创建所述第N次启动沙箱对应的沙箱运行环境。

在一些实施例中,所述目标本地配置是根据所述配置修改信息,对第N-1次在本地运行所述目标对象的初始本地配置进行修改得到的,所述初始沙箱配置是将所述初始本地配置挂载至第N-1次启动的沙箱得到的。

在一些实施例中,所述目标本地配置是采样用户控件文件系统,将所述配置修改信息同步至所述初始本地配置得到的。

在一些实施例中,结合图11可知,创建单元1101,包括:

第二获取子单元11014,用于获取本地运行所述目标对象的本地配置。

第二挂载子单元11015,用于将所述本地配置挂载至所述沙箱,得到初始沙箱配置。

生成子单元11016,用于根据所述初始沙箱配置和本地预存数据生成所述目标沙箱配置,其中,所述本地预存数据中至少包括所述配置修改信息。

在一些实施例中,若所述本地预存数据为所述配置修改信息,则所述生成子单元11016用于,根据所述配置修改信息,对所述初始沙箱配置中与所述配置修改信息对应的原数据进行修改,得到所述目标沙箱配置。

在一些实施例中,若所述本地预存数据为基于所述配置修改信息对所述初始沙箱配置进行修改得到的数据,则所述生成子单元11016用于,将所述本地预存数据替换所述初始沙箱配置,得到所述目标沙箱配置。

第二创建子单元11017,用于基于所述目标沙箱配置创建所述第N次启动沙箱对应的沙箱运行环境。

在一些实施例中,所述本地预存数据为至少包括第N-1次在所述沙箱内运行所述目标对象时,在本地存储的对所述初始沙箱配置的修改的所述配置修改信息的数据;

其中,所述初始沙箱配置是基于所述初始本地配置挂载至所述沙箱得到的。

在一些实施例中,所述本地预存数据为所述配置修改信息;或者,所述本地预存数据为基于获取到所述配置修改信息对所述初始沙箱配置修改后的配置。

在一些实施例中,所述本地预存数据为加密后的数据。

运行单元1102,用于在所述第N次启动沙箱对应的沙箱运行环境中运行沙箱进程,所述沙箱进程用于执行所述目标对象。

根据本公开实施例的另一个方面,本公开实施例还提供了一种计算机存储介质,所述计算机存储介质上存储有计算机指令,当所述计算机指令在被处理器运行时,使得上述任一实施例所述的沙箱的重启方法被执行。

根据本公开实施例的另一个方面,本公开实施例还提供了一种计算机程序产品,当所述计算机程序产品在处理器上运行时,使得上述任一实施例所述的沙箱的重启方法被执行。

根据本公开实施例的另一个方面,本公开实施例还提供了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的计算机指令,所述计算机指令被所述至少一个处理器执行,使得上述任一实施例所述的沙箱的重启方法被执行。

示例性的,电子设备可以终端设备,且关于终端设备的描述可以参见上述实施例中的描述,如终端设备可以为移动电话,平板设备、个人数字助理、以及计算机等。

请参阅图12,图12为本公开实施例的电子设备的示意图,如图12所示,电子设备1200可以包括以下一个或多个组件:处理组件1201,存储器1202,电源组件1203,多媒体组件1204,音频组件1205,输入/输出(I/O)接口1206,传感器组件1207,以及通信组件1208。

处理组件1201通常控制电子设备1200的整体操作,诸如与视频播放、显示、电话呼叫、数据通信、相机操作、以及记录操作相关联的操作。处理组件1201可以包括一个或多个处理器12011来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1201可以包括一个或多个模块,便于处理组件1201和其他组件之间的交互。例如,处理组件1201可以包括多媒体模块,以方便多媒体组件1204和处理组件1204之间的交互。

存储器1202被配置为存储各种类型的数据以支持在电子设备1200的操作。这些数据的示例包括用于在电子设备1200上操作的任何应用程序或方法的指令,如视频、联系人数据、电话簿数据、消息、以及图片等。存储器1202可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

电源组件1203为电子设备1200的各种组件提供电力。电源组件1203可以包括电源管理系统,一个或多个电源,及其他与为电子设备1200生成、管理和分配电力相关联的组件。

多媒体组件1204包括在所述电子设备1200和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。

例如,结合上述实施例,若目标对象办公应用程序,且具体为查阅加密文档的程序,则可以通过屏幕输出加密文档,即可以通过屏幕显示查阅加密文档中的内容,以供用户查阅。

触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1204包括一个前置摄像头和/或后置摄像头。当电子设备1200处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件1205被配置为输出和/或输入音频数据。例如,音频组件1205包括一个麦克风(MIC),当电子设备1200处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频数据。所接收的音频数据可以被进一步存储在存储器1202或经由通信组件1208发送。在一些实施例中,音频组件1205还包括一个扬声器,用于输出音频数据,如输出经上述实施例所述的方法确定出的音频增益和原音频数据。

I/O接口1206为处理组件1201和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件1207包括一个或多个传感器,用于为电子设备1200提供各个方面的状态评估。例如,传感器组件1207可以检测到电子设备1200的打开/关闭状态,组件的相对定位,例如所述组件为电子设备1200的显示器和小键盘,传感器组件1207还可以检测电子设备1200或电子设备1200一个组件的位置改变,用户与电子设备1200接触的存在或不存在,电子设备1200方位或加速/减速和电子设备1200的温度变化。传感器组件1207可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1207还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1207还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件1208被配置为便于电子设备1200和其他设备之间有线或无线方式的通信。电子设备1200可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1208经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1208还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,电子设备1200可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1202,上述指令可由电子设备1200的处理器12011执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

技术分类

06120116551395