移动终端及其文件共享方法与流程

文档序号:12467723阅读:257来源:国知局
移动终端及其文件共享方法与流程

本发明涉及智能终端技术领域,具体而言,本发明涉及一种移动终端及其文件共享方法。



背景技术:

随着时代的发展,各种新兴的操作系统不断涌现,为用户带来了新颖且更加便捷的终端使用体验。但是,由于传统的移动终端只允许单个操作系统运行,即使有多个操作系统支持也均为静态支持,即需要在设备启动时重新引导新的操作系统,并不能同时运行多个操作系统。

Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。利用Linux内核的命名空间(namespace)特性,可以形成多个容器系统,并通过Linux Container容器,可以有效地将原来由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求,实现移动终端同时运行多个操作系统。比如,在移动终端上运行一个安全系统,再加上一个或多个娱乐系统。

本发明的发明人发现,现有的移动终端中,为了实现容器系统间文件的共享,可以为共享文件统一分区,以便传输文件。然而,实际上为了保障系统的安全性,移动终端往往会对各容器系统的文件系统、命名空间进行充分的隔离。如果采用现有为共享文件统一分区,将会打破容器间的独立性,无法实现安全系统的充分隔离。

因此,有必要提供一种在不打破容器间的独立性的前提下,实现共享文件的共享。



技术实现要素:

针对上述现有技术存在的缺陷,本发明提供了一种移动终端及其文件共享方法,在不打破容器间的独立性的前提下,实现移动终端中不同容器的进程之间的文件共享,保障移动终端容器的充分隔离。

本发明方案提供了一种移动终端中文件共享方法,包括:

接收指向第一进程所打开的目标文件的第一文件描述符,并根据所述第一文件描述符获取所述文件的文件file结构体;

为所述第一文件描述符注册对应的服务通道,在所述服务通道中记录所述第一文件描述符,以及获取的file结构体;

接收第二进程针对所述文件发起的共享请求,查找出所述共享请求对应的服务通道;

将所述第二进程未使用的第二文件描述符与所述服务通道中记录的file结构体进行关联,使所述第二文件描述符与所述第一文件描述符共同指向所述文件;

向所述第二进程返回所述第二文件描述符,使所述第二进程根据所述第二文件描述符访问目标文件。

较佳地,为所述第一文件描述符注册对应的服务通道之后,还包括:

以预设的标示名称作为所述服务通道的索引,并对所述服务通道进行广播,使移动终端中的进程获取所述标示名称,并根据所述标示名称发起针对目标文件的共享请求。

较佳地,为所述第一文件描述符注册对应的服务通道之后,还包括:

在所述服务通道中记录目标文件的安全校验信息;

其中,所述安全校验信息包括如下至少一项:

文件权限、允许访问的用户UID、允许最大访问数量。

较佳地,所述将所述第二进程未使用的第二文件描述符与所述服务通道中记录的file结构体进行关联之前,还包括:

利用所述服务通道中记录的安全校验信息,对所述第二进程进行校验。

较佳地,所述第一进程与所述第二进程分别属于移动终端中不同的容器。

根据本发明的另一方面,还提供了一种移动终端,包括:

第一接收单元,用于接收指向第一进程所打开的目标文件的第一文件描述符,并根据所述第一文件描述符获取所述文件的文件file结构体;

通道注册单元,用于为所述第一文件描述符注册对应的服务通道,在所述服务通道中记录所述第一文件描述符,以及获取的file结构体;

第二接收单元,用于接收第二进程针对所述文件发起的共享请求,查找出所述共享请求对应的服务通道;并获取所述第二进程未使用的第二文件描述符;

关联共享单元,用于将所述第二文件描述符与所述服务通道中记录的file结构体进行关联,使所述第二文件描述符与所述第一文件描述符共同指向目标文件;向所述第二进程返回所述第二文件描述符,使所述第二进程根据所述第二文件描述符访问目标文件。

较佳地,所述通道注册单元还用于为所述第一文件描述符注册对应的服务通道之后,以预设的标示名称作为所述服务通道的索引,并对所述服务通道进行广播,使移动终端中的进程获取所述标示名称,并根据所述标示名称发起针对目标文件的共享请求;以及

所述第二接收单元接收第二进程针对所述文件的共享请求后,根据所述共享请求中携带的标示名称查找出对应的服务通道。

较佳地,所述通道注册单元还用于为所述第一文件描述符注册对应的服务通道之后,在所述服务通道中记录目标文件的安全校验信息;

其中,所述安全校验信息包括如下至少一项:

文件权限、允许访问的用户UID、允许最大访问数量。

较佳地,所述移动终端还包括:

安全校验单元,用于在第二接收单元查找出所述共享请求对应的服务通道后,利用所述服务通道中记录的安全校验信息,对所述第二进程进行校验;以及

所述关联共享单元具体用于在所述第二进程通过所述安全校验单元的校验后,将所述第二进程未使用的第二文件描述符与所述服务通道中记录的file结构体进行关联。

较佳地,所述第一进程与所述第二进程分别属于移动终端中不同的容器。

本发明的技术方案中,将第一进程打开的目标文件的file结构体与第二进程未使用的第二文件描述符进行关联,使得第一进程打开目标文件时所获得的第一文件描述符与第二文件描述符共同指向目标文件。这样,第一进程与第二进程可以利用各自的文件描述符访问目标文件,实现目标文件的共享。

相比现有采用为共享文件统一分区来实现容器间文件共享的方案,本发明的方案无需为共享文件统一分区,避免打破容器间的独立性,在实现移动终端中不同容器的进程之间的文件共享的同时,可保障移动终端容器的充分隔离,提高了容器安全性。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

图1为本发明提供的移动终端中文件共享方法的流程示意图;

图2、3均为本发明提供的移动终端的结构示意图。

具体实施方式

以下将结合附图对本发明的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。

实际应用中,移动终端往往会对各容器的文件系统、命名空间进行充分的隔离,以此保障移动终端和容器的安全性。现有的移动终端采用为共享文件统一分区来实现容器间文件共享的方案,因其打破了容器间的独立性,使得移动终端中的容器无法实现充分隔离,从而无法保障移动终端容器的安全。

因此,本发明的方案中,可以通过移动终端中预设的独立于移动终端各个容器的设备驱动,使移动终端中的容器进程通过指向其他容器中的待共享的文件的fd(file descriptor,文件描述符)来访问该文件。比如,设备驱动可以接收第一容器的进程打开某一待共享的文件时内核所返回的第一文件描述符,为第一文件描述符注册对应的服务通道,并在服务通道中记录第一文件描述符,以及第一文件描述符所指向的待共享的文件的file(文件)结构体;之后,获取第二容器当前进程未使用的第二文件描述符,将第二文件描述符与待共享的文件的file结构体进行关联,使第二文件描述符指向第一容器中的待共享的文件。

这样,第二容器中的进程后续可以通过第二文件描述符访问待共享的文件,实现第一容器中待共享的文件的共享,无需将第一容器中的待共享的文件设置于统一的分区中,避免打破容器间的独立性,保障移动终端容器的充分隔离,提高安全性。

下面结合附图详细说明本发明的技术方案。

实际应用中,利用Linux内核的命名空间(namespace)特性,可以形成多个容器,以此对用户空间和资源进行隔离。移动终端中的容器可以是基于linux系统而演变的系统,比如,Android(安卓)系统等。

为了保障移动终端中的容器的充分隔离,本发明方案中,移动终端的内核可以预先启动一个简化、安全的容器管理系统;并在容器管理系统中设置独立于移动终端中各容器的设备驱动,以通过该设备驱动使移动终端中的容器进程获取指向其他容器中的待共享文件的文件描述符,并根据该文件描述符访问待共享的文件,从而实现容器间的文件共享。其中,启动的容器管理系统用于启动容器内系统,并对容器进行管理。

具体地,本发明实施例提供了一种移动终端中文件共享方法,如图1所示,上述方法可以包括如下步骤:

S101:接收指向第一进程所打开的目标文件的第一文件描述符,并根据第一文件描述符获取目标文件的file结构体。

本发明的方案,可适用于移动终端中容器间的文件共享,第一进程可以是移动终端中的第一容器的进程,第一进程所打开的目标文件可以是第一容器中的待共享的文件。

实际应用中,进程打开或创建文件时,内核会返回一个指向该文件的文件描述符。因此,第一容器中的第一进程打开目标文件时,可以得到内核返回的指向该目标文件的第一文件描述符fd1。

考虑到,实际应用中,在文件创建时内核设置有描述该文件的file结构体;而文件的共享可以通过file结构体的共享来实现。因此,本发明实施例中,第一进程可以通过ioctl接口访问设备驱动,并向设备驱动传递指向目标文件的第一文件描述符fd1。这样,设备驱动接收第一进程传递的第一文件描述符fd1后,可以利用内核提供的fget函数,通过接收的第一文件描述符fd1,获取内核描述fd1指向的目标文件的file结构体。

S102:为第一文件描述符注册对应的服务通道,在服务通道中记录第一文件描述符,以及获取的file结构体。

本步骤中,移动终端中预设的设备驱动可以为接收的第一文件描述符fd1注册一个对应的服务通道;并在注册的服务通道中记录第一文件描述符fd1、以及通过步骤S101获取的fd1所指向的目标文件的file结构体。

实际应用中,第一进程在向设备驱动传递指向第一容器中的目标文件的第一文件描述符fd1时,还可以向设备驱动传递预先设置的标示名称。

相应地,设备驱动在为第一文件描述符fd1注册服务通道后,可以以接收的预设的标示名称作为注册的服务通道的索引。这样,设备驱动后续可通过标示名称找到对应的服务通道,便于读取服务通道中记录的信息。

为了实现文件的共享,本发明方案中,在为第一文件描述符fd1注册对应的服务通道后,可以对第一文件描述符fd1对应的服务通道进行广播,使移动终端中的其他容器可以根据广播获取该服务通道的索引(即标示名称),使得其他容器的进程可以根据获取的标示名称发起针对目标文件的共享请求。

实际应用中,设备驱动将第一文件描述符fd1对应的服务通道进行广播,可以使得移动终端中的其他容器了解到第一文件描述符fd1所指向的目标文件已提供了共享通道。这样,移动终端中存在访问第一容器中目标文件需求的容器,就可以根据广播的内容获取标示名称;并通过标示名称向设备驱动发起共享请求。

S103:接收第二进程针对目标文件发起的共享请求,查找出共享请求对应的服务通道。

本发明方案中,移动终端中存在访问第一容器中目标文件需求的容器,在接收到有关目标文件的服务通道的广播之后,可以从广播中获取服务通道的索引,即标示名称;并向设备驱动发送携带标示名称的共享请求。比如,移动终端中的第二进程根据广播发起针对目标文件的共享请求。其中,第二进程与第一进程可以分别属于移动终端中不同的容器。

移动终端中预设的设备驱动接收到第二进程发送的有关目标文件的共享请求后,可根据共享请求中携带的标示名称,查找到对应的服务通道,并读取服务通道中记录的信息,包括:指向目标文件的第一文件描述符、目标文件的file结构体。

S104:将第二进程未使用的第二文件描述符与服务通道中记录的file结构体进行关联,使第二文件描述符与第一文件描述符共同指向目标文件。

实际应用中,文件描述符是一个非负整数,每一个文件描述符会与一个打开文件相对应;而相同的文件可能被不同的进程打开。针对同一文件,由不同的进程打开所得到的文件描述符可能并不相同。

因此,本发明实施例中,在设备驱动接收到第二进程发起的共享请求之后,可以获取该第二进程未使用的第二文件描述符fd2。关于进程未使用的文件描述符的获取可以采用本领域技术人员常用技术手段,在此不再详述。

获取第二进程未使用的第二文件描述符fd2之后,为了使第二文件描述符fd2指向第一容器中目标文件,可以将获取的第二文件描述符fd2与步骤S103查找出的服务通道中记录的描述目标文件的file结构体进行关联,使第二文件描述符fd2与第一文件描述符fd1共同指向目标文件。

关于文件描述符与file结构体的关联,可以采用本领域技术常用技术手段,在此不再详述。

进一步地,考虑到现有对共享分区文件的访问权限存在的控制缺陷,本发明方案中,可以在将第二文件描述符fd2与第一文件描述符fd1对应的服务通道中记录的file结构体进行关联之前,还可以对发起共享请求的第二进程进行校验,以保障目标文件的安全访问。其中,校验至少包括如下至少一项:身份校验、权限校验。

具体地,设备驱动为第一文件描述符fd1注册对应的服务通道之后,在第一文件描述符fd1对应的服务通道中,除了记录第一文件描述符fd1、fd1所指向的目标文件的file结构体之外,还可以记录目标文件的安全校验信息。其中,安全校验信息包括如下至少一项:文件权限、运行访问的用户UID(User Identification,用户身份证明)、允许最大访问数量等信息。这样,设备驱动在接收到第二进程的共享请求,并查找到对应的服务通道后,可以从查找到的服务通道中读取上述信息,并根据上述信息对该容器进行校验;在第二进程通过校验后,将第二进程未使用的第二文件描述符与所述服务通道中记录的file结构体进行关联。关于容器的校验可以采用本领域技术人员常用技术手段,在此不再详述。

S105:向第二进程返回第二文件描述符,使第二进程根据第二文件描述符访问目标文件。

本步骤中,移动终端中预设的设备驱动可以将已经与目标文件的file结构体关联的第二文件描述符fd2返回给第二进程,这样,第二进程就可以通过第二文件描述符fd2直接访问目标文件,实现文件共享。

实际应用中,本发明提供的移动终端中文件共享方法可适用于移动终端中容器间的文件共享;在容器内进程之间存在文件共享,或者移动终端中容器进程与容器外系统进程之间存在文件共享的需求时,也可以采用本发明提供的共享方法。

基于上述移动终端中文件共享方法,本发明还提供了一种移动终端,如图2所示,该移动终端可以包括:第一接收单元201、通道注册单元202、第二接收单元203、以及关联共享单元204。

其中,第一接收单元201用于接收指向第一进程所打开的目标文件的第一文件描述符,并根据第一文件描述符获取目标文件的文件file结构体。

通道注册单元202用于为第一接收单元201接收的第一文件描述符注册对应的服务通道,在注册的服务通道中记录第一文件描述符,以及第一接收单元201获取的file结构体。

第二接收单元203用于接收第二进程针对目标文件发起的共享请求,查找出共享请求对应的服务通道;并获取第二进程未使用的第二文件描述符。其中,第一进程与第二进程可以分别属于移动终端中不同的容器。

关联共享单元204用于将第二接收单元203获取的第二文件描述符与第二接收单元203查找出的服务通道中记录的file结构体进行关联,使第二文件描述符与服务通道中记录的第一文件描述符共同指向目标文件;向第二进程返回第二文件描述符,使第二进程根据第二文件描述符访问目标文件。

进一步地,通道注册单元202还用于为第一文件描述符注册对应的服务通道之后,以预设的标示名称作为服务通道的索引,并对服务通道进行广播,使移动终端中的进程能够根据广播获取标示名称,并根据获取的标示名称发起针对目标文件的共享请求。

相应地,第二接收单元接收第二进程针对目标文件的共享请求后,可根据共享请求中携带的标示名称查找出对应的服务通道。

优选地,如图3所示,移动终端中除了包括上述第一接收单元201、通道注册单元202、第二接收单元203、关联共享单元204,还可以包括:安全校验单元205。

本发明实施例中,通道注册单元202为第一文件描述符注册对应的服务通道之后,在服务通道中还可以记录目标文件的安全校验信息。其中,安全校验信息可以包括如下至少一项:文件权限、允许访问的用户UID、允许最大访问数量。

这样,安全校验单元205在第二接收单元203查找出共享请求对应的服务通道后,可利用服务通道中记录的安全校验信息,对第二进程进行校验。

相应地,关联共享单元204可以在第二进程通过安全校验单元的校验后,将第二进程未使用的第二文件描述符与服务通道中记录的file结构体进行关联。

本发明实施例中,移动终端中的各个单元的具体功能实现可以参考上述移动终端中文件共享方法中的各步骤的具体实现,在此不再赘述。

本发明的技术方案中,将第一进程打开的目标文件的file结构体与第二进程未使用的第二文件描述符进行关联,使得第一进程打开目标文件时所获得的第一文件描述符与第二文件描述符共同指向目标文件。这样,第一进程与第二进程可以利用各自的文件描述符访问目标文件,实现目标文件的共享。

相比现有采用为共享文件统一分区来实现容器间文件共享的方案,本发明的方案无需为共享文件统一分区,避免打破容器间的独立性,在实现移动终端中不同容器的进程之间的文件共享的同时,可保障移动终端容器的充分隔离,提高了容器安全性。

本申请使用的“模块”、“系统”等术语旨在包括与计算机相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。例如,模块可以是,但并不仅限于:处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。举例来说,计算设备上运行的应用程序和此计算设备都可以是模块。一个或多个模块可以位于执行中的一个进程和/或线程内,一个模块也可以位于一台计算机上和/或分布于两台或更多台计算机之间。

本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。

本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。

本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1