本发明涉及计算机技术领域,具体而言,本发明涉及一种多容器系统中无痕运行应用程序的方法,及一种多容器系统中无痕运行应用程序的装置。
背景技术:
随着当今计算机技术的发展,用户对于终端设备使用场景的多样性的需求与日俱增,终端设备不仅用于日常生活娱乐,还用于工作学习等重要场景。在用户的使用终端设备的过程中,一方面,网络中的各种病毒木马一直在不停寻找机会向各终端设备进行非法入侵,以盗取用户的隐私信息;另一方面,由于各种因素,终端设备存在极大的丢失危险,以上两方面存在的问题使得终端设备上用户的安全与隐私问题也日益凸显,个人私密数据,企业重要信息都将存在被窃取的威胁。因此,众多在移动终端中运行的企业应用,也都忌惮终端设备中的数据被非法获取。
现有技术中,往往通过加密技术对终端设备中的用户敏感数据及隐私数据进行加密,但是通过加密的方式仅能解决部分移动设备丢失后,被非法窃取数据的问题。虽然加密后的数据存储形式为非法用户取得相应数据制造了一定的障碍,但是,数据加密仍然存在各种问题,如:现有技术中往往将明文密钥存储在终端设备中,密文数据虽无法直接使用,但终端设备丢失后,非法用户依然可通过非法遍历整个终端设备的存储区得到明文密钥,从而对密文进行解密,因此,明文密钥保存在移动终端中仍然存在较大的风险;同时,由于现有技术中可直接获取到密文,非法用户也可轻易地通过暴力手段破解密文,因此,现有技术无法有力地保证终端设备中用户的隐私数据。
因此,亟需解决在终端设备中保证用户数据高度安全的问题。
技术实现要素:
为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:
本发明的实施例提出了一种多容器系统中无痕运行应用程序的方法,包括:
当监测到多容器系统的主容器系统中需要以无痕模式运行的任一应用程序启动时,确定与应用程序相匹配的应用容器系统,并创建与应用程序相应的内存文件系统;
在已确定的应用容器系统中启动并运行应用程序;
当监测到应用程序的运行状态为结束运行时,删除内存文件系统中的相应数据,卸载内存文件系统,并退出应用容器系统。
优选地,确定与应用程序相匹配的应用容器系统,包括:
获取预创建的各个应用容器系统的容器信息;
依据预定义的应用程序与应用容器系统的容器信息的对应关系,在各个应用容器系统中确定与应用程序相匹配的应用容器系统。
优选地,确定与应用程序相匹配的应用容器系统,包括:
创建与应用程序相匹配的应用容器系统。
优选地,创建与应用程序相应的内存文件系统,包括:
在应用容器系统中创建应用程序对应的文件系统目录;
获取在应用容器系统中已创建的文件系统目录中的根目录信息;
将已获取的文件系统根目录信息替换应用程序在多容器系统的主容器系统中的文件系统的根目录信息。
优选地,在已确定的应用容器系统中启动并运行应用程序,包括:
在已确定的应用容器系统中,通过多容器系统的系统内核创建应用程序相匹配的进程,并运行进程。
优选地,当监测到应用程序的运行状态为结束运行时,删除内存文件系统中的相应数据,卸载内存文件系统,并退出应用容器系统,包括:
当监测到应用程序的运行状态为结束运行时,删除内存文件系统中的相应数据,卸载内存文件系统,并销毁已创建的应用容器系统。
本发明的另一实施例提出了一种多容器系统中无痕运行应用程序的装置,包括:
监测模块,用于当监测到多容器系统的主容器系统中需要以无痕模式运行的任一应用程序启动时,确定与应用程序相匹配的应用容器系统,并创建与应用程序相应的内存文件系统;
启动及运行模块,用于在已确定的应用容器系统中启动并运行应用程序;
删除及卸载模块,用于当监测到应用程序的运行状态为结束运行时,删除内存文件系统中的相应数据,卸载内存文件系统,并退出应用容器系统。
优选地,监测模块,包括:
第一获取单元,用于获取预创建的各个应用容器系统的容器信息;
确定单元,用于依据预定义的应用程序与应用容器系统的容器信息的对应关系,在各个应用容器系统中确定与应用程序相匹配的应用容器系统。
优选地,监测模块,包括:
第一创建单元,用于创建与应用程序相匹配的应用容器系统。
优选地,监测模块在确定与应用程序相匹配的应用容器系统之后,包括:
第二创建单元,用于在应用容器系统中创建应用程序对应的文件系统目录;
第二获取单元,用于获取在应用容器系统中已创建的文件系统目录中的根目录信息;
替换单元,用于将已获取的文件系统根目录信息替换应用程序在多容器系统的主容器系统中的文件系统的根目录信息。
本发明的实施例中,提出了一种多容器系统中无痕运行应用程序的方案,当监测到多容器系统的主容器系统中需要以无痕模式运行的任一应用程序启动时,确定与应用程序相匹配的应用容器系统,并创建与应用程序相应的内存文件系统,实现了各容器系统间的数据隔离,为后续保证应用程序数据高度安全提供了必要的前提保障,同时,为实现应用程序在运行过程中的数据不会被永久保留提供了必要的前提保障;在已确定的应用容器系统中启动并运行应用程序,实现了应用程序相应的内存文件系统被隔离,仅能够被应用容器系统中的应用程序可见,外部的应用程序不可见的目的,同时使得应用程序运行过程中的数据无法被非法获取;当监测到应用程序的运行状态为结束运行时,删除内存文件系统中的相应数据,卸载内存文件系统,并退出应用容器系统,使得应用程序的相应数据被及时地清除,从根本上避免了应用程序数据被非法窃取的安全隐患,进一步地,提高了用户的使用体验。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明中一个实施例的多容器系统中内部结构的框架示意图;
图2为本发明中一个实施例的多容器系统中无痕运行应用程序的方法的流程图;
图3为本发明中另一实施例的多容器系统中无痕运行应用程序的装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本发明的实施例中的多操作系统在应用程序运行过程中包括至少两个操作系统,其中,操作系统可包括各种操作系统,例如android操作系统等。本发明的实施例中的多操作系统可基于多种虚拟技术来实现,下文以linux系统下的容器技术为例来进行实施例的详述。其中,使用linux容器技术实现的多操作系统,在每个容器中装入独立的操作系统,多个操作系统之间相互独立,且多个操作系统运行在同一台物理终端设备上。
下面结合附图具体介绍本发明实施例的技术方案。
本发明实施例的终端设备的内部结构的框架示意图如图1所示,包括:两个以上的容器系统。其中,两个以上容器系统包括一个主容器系统和多个实时或预先创建的应用容器系统,如应用容器系统os1、应用容器系统os2、…、应用容器系统osn。n为正整数。
其中,本发明实施例中的应用容器系统,可以是设置在以linuxcontainer(容器)虚拟化技术创建的容器中的操作系统。操作系统可以为传统意义上的linux操作系统或unix操作系统,也可以是基于linux操作系统衍生出来的android系统、ubuntu系统或firefox系统等,还可以为以windows平台为基础的windows系统等等。实际上,本发明中的应用容器系统不限于前述例举的操作系统,可以涵盖所有能够在容器中运行的操作系统。
优选地,应用容器系统可以是上述传统的操作系统,也可以是对传统的kernel进行改进和/或在kernel之外(例如框架层和应用层)增加功能模块之后,得到的操作系统。其中,各个应用容器系统和主容器系统共享同一系统内核,当各容器中的操作系统为linux操作系统或基于linux操作系统衍生出来的系统时,各应用容器系统为基于linuxkernelnamespace框架之上的,通过容器实例层,增加了对终端设备中设备资源的管理功能模块后,得到的操作系统。
优选地,各应用容器系统和主容器系统可以通过预定义的通道或容器通道与其他容器系统进行通信,预定义的通道可以是socket(套接字)通道。
图2为本发明中一个实施例的多容器系统中无痕运行应用程序的方法的流程图;
本发明的实施例中,各步骤所执行的内容概述如下:步骤s210:当监测到多容器系统的主容器系统中需要以无痕模式运行的任一应用程序启动时,确定与应用程序相匹配的应用容器系统,并创建与应用程序相应的内存文件系统;步骤s220:在已确定的应用容器系统中启动并运行应用程序;步骤s230:当监测到应用程序的运行状态为结束运行时,删除内存文件系统中的相应数据,卸载内存文件系统,并退出应用容器系统。
本发明的实施例中,提出了一种多容器系统中无痕运行应用程序的方法,当监测到多容器系统的主容器系统中需要以无痕模式运行的任一应用程序启动时,确定与应用程序相匹配的应用容器系统,并创建与应用程序相应的内存文件系统,实现了各容器系统间的数据隔离,为后续保证应用程序数据高度安全提供了必要的前提保障,同时,为实现应用程序在运行过程中的数据不会被永久保留提供了必要的前提保障;在已确定的应用容器系统中启动并运行应用程序,实现了应用程序相应的内存文件系统被隔离,仅能够被应用容器系统中的应用程序可见,外部的应用程序不可见的目的,同时使得应用程序运行过程中的数据无法被非法获取;当监测到应用程序的运行状态为结束运行时,删除内存文件系统中的相应数据,卸载内存文件系统,并退出应用容器系统,使得应用程序的相应数据被及时地清除,从根本上避免了应用程序数据被非法窃取的安全隐患,进一步地,提高了用户的使用体验。以下针对各个步骤的具体实现做进一步的说明:
步骤s210:当监测到多容器系统的主容器系统中需要以无痕模式运行的任一应用程序启动时,确定与应用程序相匹配的应用容器系统,并创建与应用程序相应的内存文件系统。
具体地,当多容器系统的主容器系统的系统框架层监测到多容器系统的主容器系统中需要以无痕模式运行的任一应用程序启动时,该系统框架层确定与应用程序相匹配的应用容器系统,并创建与应用程序相应的内存文件系统。
例如,在多系统的终端设备a中,共享同一系统内核,多系统的终端设备a中包括一个主容器系统,且允许包括至少一个应用容器系统;预定终端设备a的主容器系统中的应用程序app1为需要以无痕模式运行的应用程序,并通过预定的标识规则在应用程序app1配置文件中配置app1以无痕模式运行的相应标识;当终端设备a的主容器系统的系统框架层监测到终端设备a的主容器系统中的应用程序app1启动时,根据应用程序app1配置文件中以无痕模式运行的相应标识信息确定应用程序app1需要以无痕模式运行,则终端设备a的主容器系统的系统框架层确定与应用程序app1相匹配的应用容器系统为应用容器系统os1,并启动应用容器系统os1,并创建与应用程序app1相应的内存文件系统,如在终端设备a的系统内存中分配与应用程序app1相对应的一定容量的内存,在该分配的内存里建立虚拟磁盘,随后在该磁盘上建立相应的文件系统,并为该文件系统设计相应的数据结构来管理目录、虚拟磁盘的空闲空间、已分配空间等操作。
步骤s220:在已确定的应用容器系统中启动并运行应用程序。
例如,接上例,在多系统的终端设备a中,在应用容器系统os1中启动并运行应用程序app1。
步骤s230:当监测到应用程序的运行状态为结束运行时,删除内存文件系统中的相应数据,卸载内存文件系统,并退出应用容器系统。
具体地,当多容器系统的主容器系统的系统框架层监测到应用程序的运行状态为结束运行时,该系统框架层删除内存文件系统中的相应数据,卸载内存文件系统,并退出应用容器系统。
例如,在多系统的终端设备a中,当主容器系统的系统框架层监测到应用程序app1的运行状态为结束运行时,随后,该系统框架层删除已创建的与应用程序app1相应的内存文件系统中的全部数据,以及卸载该已创建的与应用程序app1相应的内存文件系统,并退出应用容器系统os1。
在一优选实施例中,步骤s210中确定与应用程序相匹配的应用容器系统,包括:获取预创建的各个应用容器系统的容器信息;依据预定义的应用程序与应用容器系统的容器信息的对应关系,在各个应用容器系统中确定与应用程序相匹配的应用容器系统。
例如,在多系统的终端设备b中,各容器系统共享同一系统内核,终端设备b中包括一个主容器系统,以及多个应用容器系统;当终端设备b的主容器系统的系统框架层监测到终端设备b的主容器系统中需要以无痕模式运行的应用程序app1启动时,获取在终端设备b中预创建的各个应用容器系统的容器信息,包括容器标识信息,如应用容器系统os1和应用容器系统os2,各应用容器系统与其各自对应的应用程序的信息等;随后,依据预定义的应用程序app1与应用容器系统os1的对应关系,在应用容器系统os1和应用容器系统os2中确定与应用程序app1相匹配的应用容器系统为应用容器系统os1。
在一优选实施例中,步骤s210中确定与应用程序相匹配的应用容器系统,包括:创建与应用程序相匹配的应用容器系统。
例如,在多系统的终端设备a中,各容器系统共享同一系统内核,多系统的终端设备a中包括一个主容器系统,且允许包括至少一个应用容器系统,并基于linux内核的资源隔离机制来预创建用于管理系统内核的设备资源的容器实例层;当终端设备a的主容器系统的系统框架层监测到终端设备a的主容器系统中需要以无痕模式运行的应用程序app1启动时,通过该系统框架层调用已创建的容器实例层的相关预定接口,如interfacea,来创建应用容器系统os1,并创建应用容器系统os1中针对多个设备资源,如video、input和cgroup等系统资源的资源实例,从而使得通过容器实例层创建的应用容器系统os1可以运行一个完整的操作系统。
需要说明的是,本领域技术人员可以了解到,linux内核的资源隔离机制,如linuxkernelnamespace框架,该框架提供了六种namespace(命名空间)隔离的系统调用,其中,每个namespace下的资源对于其他namespace下的资源都是透明,不可见的,而在用户层面上只能看到属于用户自己namespace下的系统资源,因此,使得每个namespace看上去就像一个单独的linux系统;本领域技术人员还可以理解,在软件开发人员研发过程中,创建的实例即创建相应的实体,如通过调用容器实例层的相关接口来可创建多个应用容器系统的实例,即可创建多个操作系统之间相互独立的应用容器系统。
在一优选实施例中,步骤s210中确定与所述应用程序相匹配的应用容器系统的步骤之后,包括:在应用容器系统中创建应用程序对应的文件系统目录;获取在应用容器系统中已创建的文件系统目录中的根目录信息;将已获取的文件系统根目录信息替换应用程序在多容器系统的主容器系统中的文件系统的根目录信息。
例如,在多系统的终端设备a中,各容器系统共享同一系统内核,多系统的终端设备a中包括一个主容器系统,且允许包括至少一个应用容器系统;当监测到终端设备a的主容器系统中需要以无痕模式运行的应用程序app1启动时,确定与应用程序app1相匹配的应用容器系统为应用容器系统os1,随后,在应用容器系统os1中创建应用程序app1对应的文件系统目录,并获取在应用容器系统os1中已创建的文件系统目录中的根目录信息,随后将已获取的文件系统根目录信息替换应用程序app1在多容器系统的主容器系统中的文件系统的根目录信息。
通过本实施例,根据在应用程序对应的应用容器系统的根文件系统上创建的任何新文件系统都是该应用容器系统私有的实例,因此,对其他外界容器系统均不可见,实现了各应用容器系统间的数据隔离,为后续保证应用程序数据高度安全提供了必要的前提保障。
在一优选实施例中,步骤s220中在已确定的应用容器系统中启动并运行应用程序,包括:在已确定的应用容器系统中,通过多容器系统的系统内核创建应用程序相匹配的进程,并运行进程。
例如,在多系统的终端设备a中,终端设备a的主容器系统的系统框架层复制主容器系统应用程序app1的进程,如process1,至应用容器系统os1中,且在复制应用程序app1的进程的过程中,对process1配置相应的复制标记,通过该复制标记信息可识别复制得到的进程process1为复制后的应用程序app1的进程,随后,终端设备a的系统内核根据复制标记信息确定复制后的应用程序app1的进程,并在应用容器系统os1中启动并运行复制后的应用程序app1的进程。
在一优选实施例中,若在步骤s210中创建了与应用程序相匹配的应用容器系统,则步骤s230中当监测到应用程序的运行状态为结束运行时,删除内存文件系统中的相应数据,卸载内存文件系统,并退出应用容器系统,包括:当监测到应用程序的运行状态为结束运行时,删除内存文件系统中的相应数据,卸载内存文件系统,并销毁已创建的应用容器系统。
例如,在多系统的终端设备a中,各容器系统共享同一系统内核,多系统的终端设备a中包括一个主容器系统,且允许包括至少一个应用容器系统;当终端设备a的主容器系统的系统框架层监测到终端设备a的主容器系统中需要以无痕模式运行的应用程序app1启动时,创建与应用程序app1相匹配的应用容器系统os1,当终端设备a的主容器系统的系统框架层监测到应用程序app1的运行状态为结束运行时,终端设备a的主容器系统的系统框架层删除已创建的与应用程序app1对应的内存文件系统中的全部数据,以及卸载该应用程序app1对应的内存文件系统,随后,退出并销毁已创建的应用容器系统os1。
图3为本发明中另一实施例的多容器系统中无痕运行应用程序的装置的结构示意图。
本发明的实施例中,各步骤所执行的内容概述如下:监测模块310当监测到多容器系统的主容器系统中需要以无痕模式运行的任一应用程序启动时,确定与应用程序相匹配的应用容器系统,并创建与应用程序相应的内存文件系统;启动及运行模块320在已确定的应用容器系统中启动并运行应用程序;删除及卸载模块330当监测到应用程序的运行状态为结束运行时,删除内存文件系统中的相应数据,卸载内存文件系统,并退出应用容器系统。
本发明的实施例中,提出了一种多容器系统中无痕运行应用程序的装置,当监测到多容器系统的主容器系统中需要以无痕模式运行的任一应用程序启动时,确定与应用程序相匹配的应用容器系统,并创建与应用程序相应的内存文件系统,实现了各容器系统间的数据隔离,为后续保证应用程序数据高度安全提供了必要的前提保障,同时,为实现应用程序在运行过程中的数据不会被永久保留提供了必要的前提保障;在已确定的应用容器系统中启动并运行应用程序,实现了应用程序相应的内存文件系统被隔离,仅能够被应用容器系统中的应用程序可见,外部的应用程序不可见的目的,同时使得应用程序运行过程中的数据无法被非法获取;当监测到应用程序的运行状态为结束运行时,删除内存文件系统中的相应数据,卸载内存文件系统,并退出应用容器系统,使得应用程序的相应数据被及时地清除,从根本上避免了应用程序数据被非法窃取的安全隐患,进一步地,提高了用户的使用体验。以下针对各个步骤的具体实现做进一步的说明:
监测模块310,用于当监测到多容器系统的主容器系统中需要以无痕模式运行的任一应用程序启动时,确定与应用程序相匹配的应用容器系统,并创建与应用程序相应的内存文件系统。
具体地,当多容器系统的主容器系统的系统框架层监测到多容器系统的主容器系统中需要以无痕模式运行的任一应用程序启动时,该系统框架层确定与应用程序相匹配的应用容器系统,并创建与应用程序相应的内存文件系统。
例如,在多系统的终端设备a中,共享同一系统内核,多系统的终端设备a中包括一个主容器系统,且允许包括至少一个应用容器系统;预定终端设备a的主容器系统中的应用程序app1为需要以无痕模式运行的应用程序,并通过预定的标识规则在应用程序app1配置文件中配置app1以无痕模式运行的相应标识;当终端设备a的主容器系统的系统框架层监测到终端设备a的主容器系统中的应用程序app1启动时,根据应用程序app1配置文件中以无痕模式运行的相应标识信息确定应用程序app1需要以无痕模式运行,则终端设备a的主容器系统的系统框架层确定与应用程序app1相匹配的应用容器系统为应用容器系统os1,并启动应用容器系统os1,并创建与应用程序app1相应的内存文件系统,如在终端设备a的系统内存中分配与应用程序app1相对应的一定容量的内存,在该分配的内存里建立虚拟磁盘,随后在该磁盘上建立相应的文件系统,并为该文件系统设计相应的数据结构来管理目录、虚拟磁盘的空闲空间、已分配空间等操作。
启动及运行模块320,用于在已确定的应用容器系统中启动并运行应用程序。
例如,接上例,在多系统的终端设备a中,在应用容器系统os1中启动并运行应用程序app1。
删除及卸载模块330,用于当监测到应用程序的运行状态为结束运行时,删除内存文件系统中的相应数据,卸载内存文件系统,并退出应用容器系统。
具体地,当多容器系统的主容器系统的系统框架层监测到应用程序的运行状态为结束运行时,该系统框架层删除内存文件系统中的相应数据,卸载内存文件系统,并退出应用容器系统。
例如,在多系统的终端设备a中,当主容器系统的系统框架层监测到应用程序app1的运行状态为结束运行时,随后,该系统框架层删除已创建的与应用程序app1相应的内存文件系统中的全部数据,以及卸载该已创建的与应用程序app1相应的内存文件系统,并退出应用容器系统os1。
在一优选实施例中,监测模块310中确定与应用程序相匹配的应用容器系统,包括第一获取单元和确定单元;第一获取单元用于获取预创建的各个应用容器系统的容器信息;确定单元用于依据预定义的应用程序与应用容器系统的容器信息的对应关系,在各个应用容器系统中确定与应用程序相匹配的应用容器系统。
例如,在多系统的终端设备b中,各容器系统共享同一系统内核,终端设备b中包括一个主容器系统,以及多个应用容器系统;当终端设备b的主容器系统的系统框架层监测到终端设备b的主容器系统中需要以无痕模式运行的应用程序app1启动时,获取在终端设备b中预创建的各个应用容器系统的容器信息,包括容器标识信息,如应用容器系统os1和应用容器系统os2,各应用容器系统与其各自对应的应用程序的信息等;随后,依据预定义的应用程序app1与应用容器系统os1的对应关系,在应用容器系统os1和应用容器系统os2中确定与应用程序app1相匹配的应用容器系统为应用容器系统os1。
在一优选实施例中,监测模块310中确定与应用程序相匹配的应用容器系统,包括第一创建单元;第一创建单元用于创建与应用程序相匹配的应用容器系统。
例如,在多系统的终端设备a中,各容器系统共享同一系统内核,多系统的终端设备a中包括一个主容器系统,且允许包括至少一个应用容器系统,并基于linux内核的资源隔离机制来预创建用于管理系统内核的设备资源的容器实例层;当终端设备a的主容器系统的系统框架层监测到终端设备a的主容器系统中需要以无痕模式运行的应用程序app1启动时,通过该系统框架层调用已创建的容器实例层的相关预定接口,如interfacea,来创建应用容器系统os1,并创建应用容器系统os1中针对多个设备资源,如video、input和cgroup等系统资源的资源实例,从而使得通过容器实例层创建的应用容器系统os1可以运行一个完整的操作系统。
需要说明的是,本领域技术人员可以了解到,linux内核的资源隔离机制,如linuxkernelnamespace框架,该框架提供了六种namespace(命名空间)隔离的系统调用,其中,每个namespace下的资源对于其他namespace下的资源都是透明,不可见的,而在用户层面上只能看到属于用户自己namespace下的系统资源,因此,使得每个namespace看上去就像一个单独的linux系统;本领域技术人员还可以理解,在软件开发人员研发过程中,创建的实例即创建相应的实体,如通过调用容器实例层的相关接口来可创建多个应用容器系统的实例,即可创建多个操作系统之间相互独立的应用容器系统。
在一优选实施例中,监测模块310中确定与所述应用程序相匹配的应用容器系统的步骤之后,包括第二创建单元、第二获取单元和替换单元;第二创建单元用于在应用容器系统中创建应用程序对应的文件系统目录;第二获取单元用于获取在应用容器系统中已创建的文件系统目录中的根目录信息;替换单元用于将已获取的文件系统根目录信息替换应用程序在多容器系统的主容器系统中的文件系统的根目录信息。
例如,在多系统的终端设备a中,各容器系统共享同一系统内核,多系统的终端设备a中包括一个主容器系统,且允许包括至少一个应用容器系统;当监测到终端设备a的主容器系统中需要以无痕模式运行的应用程序app1启动时,确定与应用程序app1相匹配的应用容器系统为应用容器系统os1,随后,在应用容器系统os1中创建应用程序app1对应的文件系统目录,并获取在应用容器系统os1中已创建的文件系统目录中的根目录信息,随后将已获取的文件系统根目录信息替换应用程序app1在多容器系统的主容器系统中的文件系统的根目录信息。
通过本实施例,根据在应用程序对应的应用容器系统的根文件系统上创建的任何新文件系统都是该应用容器系统私有的实例,因此,对其他外界容器系统均不可见,实现了各应用容器系统间的数据隔离,为后续保证应用程序数据高度安全提供了必要的前提保障。
在一优选实施例中,启动及运行模块320中在已确定的应用容器系统中启动并运行应用程序,包括创建及运行单元;创建及运行单元用于在已确定的应用容器系统中,通过多容器系统的系统内核创建应用程序相匹配的进程,并运行进程。
例如,在多系统的终端设备a中,终端设备a的主容器系统的系统框架层复制主容器系统应用程序app1的进程,如process1,至应用容器系统os1中,且在复制应用程序app1的进程的过程中,对process1配置相应的复制标记,通过该复制标记信息可识别复制得到的进程process1为复制后的应用程序app1的进程,随后,终端设备a的系统内核根据复制标记信息确定复制后的应用程序app1的进程,并在应用容器系统os1中启动并运行复制后的应用程序app1的进程。
在一优选实施例中,若在监测模块310中创建了与应用程序相匹配的应用容器系统,则删除及卸载模块330中当监测到应用程序的运行状态为结束运行时,删除内存文件系统中的相应数据,卸载内存文件系统,并退出应用容器系统,包括删除及卸载单元;删除及卸载单元用于当监测到应用程序的运行状态为结束运行时,删除内存文件系统中的相应数据,卸载内存文件系统,并销毁已创建的应用容器系统。
例如,在多系统的终端设备a中,各容器系统共享同一系统内核,多系统的终端设备a中包括一个主容器系统,且允许包括至少一个应用容器系统;当终端设备a的主容器系统的系统框架层监测到终端设备a的主容器系统中需要以无痕模式运行的应用程序app1启动时,创建与应用程序app1相匹配的应用容器系统os1,当终端设备a的主容器系统的系统框架层监测到应用程序app1的运行状态为结束运行时,终端设备a的主容器系统的系统框架层删除已创建的与应用程序app1对应的内存文件系统中的全部数据,以及卸载该应用程序app1对应的内存文件系统,随后,退出并销毁已创建的应用容器系统os1。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、cd-rom、和磁光盘)、rom(read-onlymemory,只读存储器)、ram(randomaccessmemory,随即存储器)、eprom(erasableprogrammableread-onlymemory,可擦写可编程只读存储器)、eeprom(electricallyerasableprogrammableread-onlymemory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。