CN106776063B - 移动终端、容器电话通讯功能实现方法及跨容器通信方法 - Google Patents
移动终端、容器电话通讯功能实现方法及跨容器通信方法 Download PDFInfo
- Publication number
- CN106776063B CN106776063B CN201611069924.2A CN201611069924A CN106776063B CN 106776063 B CN106776063 B CN 106776063B CN 201611069924 A CN201611069924 A CN 201611069924A CN 106776063 B CN106776063 B CN 106776063B
- Authority
- CN
- China
- Prior art keywords
- container
- file descriptor
- socket
- file
- mobile terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
Abstract
本发明提供了移动终端、容器电话通信功能实现方法及跨容器通信方法,其中,容器电话通信功能实现方法包括:创建一对相互连接的套接字接口,获取分别指向两个套接字接口的两个文件描述符;以其中一个文件描述符所指向的套接字接口作为移动终端中独立于各容器的rild进程的套接字socket访问接口;根据另一个文件描述符将其所指向的套接字接口共享给移动终端中的各容器,使容器的进程通过该套接字接口连接访问接口与rild进程进行socket通信,并通过rild进程操作串口实现电话通讯功能。应用本发明,保障移动终端中各容器的正常电话通讯功能的同时,实现容器电话通讯功能的统一管理,提高智能终端的容器管理效率。
Description
技术领域
本发明涉及终端技术领域,具体而言,本发明涉及一种移动终端、容器电话通信功能实现方法及跨容器通信方法。
背景技术
随着时代的发展,各种新兴的操作系统不断涌现,为用户带来了新颖且更加便捷的终端使用体验。Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。
利用Linux内核的命名空间(namespace)特性,可以形成多个容器;通过容器,可以有效地将原来由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求,实现移动终端同时运行多个操作系统。比如,在移动终端上运行一个安全系统,再加上一个或多个娱乐系统。
现有技术中,移动终端中多个容器往往共享通信串口,即把移动终端的通信串口分别给不同的容器使用,每个容器中各自拥有一个rild(radio interface layer daemon,无线接口层守护进程)来操作串口实现电话功能。
然而,在容器隔离比较彻底的情况下,现有的移动终端往往需要对每个容器中各自拥有的rild进行管理,才能有效保障各个容器的电话通讯功能;而采用这种分散管理的方式,导致移动终端的容器管理效率较低。因此,有必要提供一种在容器隔离比较彻底的情况下,能够实现容器电话通讯功能且便于统一管理的移动终端,提高移动终端的容器管理效率。
发明内容
针对上述现有技术存在的缺陷,本发明提供了一种移动终端、容器电话通信功能实现方法,用以保障移动终端中各容器的正常电话通讯功能的同时,实现容器电话通讯功能的统一管理,提高智能终端的容器管理效率。
本发明方案提供了一种容器电话通讯功能实现方法,包括:
创建一对相互连接的套接字接口,获取分别指向两个套接字接口的两个文件描述符;
以其中一个文件描述符所指向的套接字接口作为移动终端中独立于各容器的无线接口层守护进程rild进程的套接字socket访问接口;
根据另一个文件描述符将其所指向的套接字接口共享给移动终端中的各容器,使所述容器的进程通过该套接字接口连接所述访问接口与所述rild进程进行socket通信,并通过所述rild进程操作串口实现电话通讯功能。
优选地,所述根据另一个文件描述符将其所指向的套接字接口共享给移动终端中的各容器,具体包括:
获取该文件描述符所指向的套接字接口的文件file结构体;
为该文件描述符注册对应的服务通道,并在所述服务通道中记录该文件描述符、以及获取的file结构体;
接收到移动终端中的容器针对所述服务通道的读取请求后,获取所述容器当前的共享文件描述符;
将所述共享文件描述符与所述服务通道中记录的file结构体进行关联;
将与该文件描述符指向同一套接字接口的共享文件描述符返回给所述容器;
其中,所述共享文件描述符为所述容器当前进程未使用的文件描述符。
优选地,为该文件描述符注册对应的服务通道后,还包括:
将该文件描述符对应的服务通道进行广播,使移动终端中的容器根据广播获取所述服务通道的标示名称,并以所述标示名称发起针对所述服务通道的读取请求。
优选地,所述将所述共享文件描述符与所述服务通道中记录的file结构体进行关联之前,还包括:
对所述容器进行校验;其中,所述校验包括如下至少一项:身份校验、权限校验。
根据本发明的另一方面,还提供了一种移动终端,包括:
接口创建单元,用于创建一对相互连接的套接字接口,获取分别指向两个套接字接口的两个文件描述符;
通道构建单元,用于以所述接口创建单元获取的两个文件描述符中的一个文件描述符作为无线接口层守护进程rild进程的socket访问接口;
通道共享单元,用于根据所述接口创建单元获取的另一个文件描述符,将其所指向的套接字接口共享给移动终端中的各容器,使所述容器的进程通过该套接字接口连接所述访问接口与所述rild进程进行socket通信,并通过所述rild进程操作串口实现电话通讯功能。
优选地,所述通道共享单元具体包括:
第一获取子单元,用于获取文件描述符所指向的套接字接口的文件file结构体;
通道注册子单元,用于为文件描述符注册对应的服务通道,并在所述服务通道中记录文件描述符、以及所述第一获取子单元获取的file结构体;
第二获取子单元,用于在接收到移动终端中的容器针对所述服务通道的读取请求后,获取所述容器当前的共享文件描述符;其中,所述共享文件描述符为所述容器当前进程未使用的文件描述符;
关联共享子单元,用于将所述共享文件描述符与所述服务通道中记录的file结构体进行关联;并将与该文件描述符指向同一套接字接口的共享文件描述符返回给所述容器。
优选地,所述通道注册子单元还用于将文件描述符对应的服务通道进行广播,使移动终端中的容器根据广播获取服务通道的标示名称,并以所述标示名称发起针对所述服务通道的读取请求。
优选地,所述通道共享单元还包括:
容器校验子单元,用于在接收到移动终端中的容器针对所述服务通道的读取请求后,对所述容器进行校验;
其中,所述校验包括如下至少一项:身份校验、权限校验。
根据本发明的另一方面,还提供了一种跨容器通信方法,包括:
接收第一容器发送的通信请求,从中解析出预通信的第二容器;
创建一对相互连接的套接字接口,获取分别指向两个套接字接口的两个文件描述符;
将两个文件描述符各自指向的套接字接口分别传递给所述第一容器和第二容器,使所述第一容器与所述第二容器通过传递的套接字接口进行通信。
优选地,通过如下方式将文件描述符指向的套接字接口进行传递:
获取所述文件描述符所指向的套接字接口的文件file结构体;
为所述文件描述符注册对应的服务通道,并在所述服务通道中记录所述文件描述符、以及获取的file结构体;
接收到移动终端中的容器针对所述服务通道的读取请求后,获取所述容器当前进程未使用的文件描述符;
将获取的文件描述符与所述服务通道中记录的file结构体进行关联;
将与所述服务通道中记录的文件描述符指向同一套接字接口的文件描述符返回给容器。
本发明的技术方案中,在容器隔离比较彻底的情况下,预先在移动终端中设置独立于各个容器的rild进程;并创建一对相互连接的套接字接口,以其中一个套接字接口作为rild进程的socket通道;同时,将另一个套接字接口通过文件描述符共享给移动终端中的各个容器。这样,各个容器可以通过共享得到的另一个套接字接口连接至独立设置的rild进程,与rild进程进行socket通信,从而通过rild进程来操作串口实现电话通讯功能。
相比现有需要为各个容器设置各自对应的rild进程,并为每个容器中的rild进程进行分散管理,本发明的方案简化了移动终端结构,且可通过独立设置的rild进程实现容器电话通讯功能的统一管理,在保障移动终端中各容器的正常电话通讯功能的同时,提高了智能终端的容器管理效率。
进一步地,本发明的方案中,在容器隔离比较彻底的情况下,可以根据移动终端中的容器发出的通信请求,创建一对相互连接的套接字接口;并根据文件描述符,将套接字接口传递给其它容器。这样,其它容器可以通过传递的套接字接口,连接到与之相连的套接字接口,继而,连接到发出通信请求的容器,从而实现容器之间的通信。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1a、1b为本发明实施例一提供的容器电话通讯功能实现方法的流程示意图;
图2为本发明实施例二提供的传递套接字接口的方法的流程示意图;
图3为本发明实施例三提供的移动终端的结构示意图;
图4为本发明实施例三提供的通道共享单元的结构示意图;
图5为本发明实施例四提供的跨容器通信方法的流程示意图。
具体实施方式
以下将结合附图对本发明的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。
实际应用中,移动终端往往会对各容器的文件系统、命名空间进行充分的隔离,以此保障移动终端和容器的安全性。为了在容器隔离比较彻底的情况下实现容器电话通讯功能,现有移动终端通常在各个容器中设置各自对应的rild(radio interface layerdaemon,无线接口层守护进程)进程,这样容器中的进程可以直接访问容器中的rild进程,进而通过容器中的rild进程来操作串口实现电话通信功能。事实上,为了保障移动终端中各容器的电话通讯功能,在容器隔离比较彻底的情况下,就需要对每个容器中的rild进程进行分别管理,而正是这种分散管理的方式,导致了移动终端的容器管理效率低下。
因此,本发明的发明人考虑,在容器隔离比较彻底的情况下,可预先在移动终端中设置独立于各个容器的rild进程,进而让移动终端中的容器均通过该rild进程来操作串口实现电话通讯功能,实现容器电话通信功能的统一管理。
具体地,可以创建一对相互连接的套接字接口,以其中一个套接字接口作为rild进程的socket通道;同时,将另一个套接字接口通过文件描述符共享给移动终端中的各个容器。这样,各个容器可以通过共享得到的另一个套接字接口分别连接至独立设置的rild进程,与rild进程进行socket通信,从而通过rild进程来操作串口实现电话通讯功能。相比现有需要为各个容器设置各自对应的rild进程,并为每个容器中的rild进程进行分散管理,本发明的方案可通过预设的rild进程的统一管理,实现对容器的电话通讯功能的统一管理,操作简单方便,在保障移动终端中各容器的正常电话通讯功能的同时,可大大提高移动终端的容器管理效率。
下面结合附图详细说明本发明的技术方案。
实际应用中,利用Linux内核的命名空间(namespace)特性,可以形成多个容器,以此对用户空间和资源进行隔离。移动终端中的容器可以是基于linux系统而演变的系统,比如,Android(安卓)系统等。
需注意的是,本发明的方案中,移动终端中的容器不再具有各自的rild(radiointerface layer daemon,无线接口层守护)进程。为了实现容器中电话相关应用Call App的电话通讯功能,本发明方案中,移动终端的内核可以预先启动一个简化、安全的容器管理系统。其中,启动的容器管理系统用于启动容器内系统,并对容器进行管理。
本发明方案中,可以在容器管理系统中设置独立于移动终端中各容器的rild进程。这样,运行在容器中的应用处理器上的电话相关应用可以首先完成与容器管理系统中设置的rild之间的通信,进而通过rild与modem进行通信,实现电话通讯功能。
具体地,如图1a所示,容器电话通讯功能实现方法可以包括如下步骤:
S100:创建一对相互连接的套接字接口,获取分别指向两个套接字接口的两个文件描述符。
S200:以其中一个文件描述符所指向的套接字接口作为移动终端中独立于各容器的rild进程的访问接口。
S300:根据另一个文件描述符将其所指向的套接字接口共享给移动终端中的各容器,使容器的进程通过该套接字接口连接访问接口与rild进程进行socket通信,并通过rild进程操作串口实现电话通讯功能。
下面将通过实施例一、实施例二来详细说明容器电话通讯功能实现方法。
实施例一
本发明实施例一提供了一种容器电话通讯功能实现方法,如图1b所示,其具体流程包括如下步骤:
S101:创建一对相互连接的套接字接口,获取分别指向两个套接字接口的第一文件描述符和第二文件描述符。
本发明实施例中,移动终端可以使用Linux的socketpair函数来创造一对未命名的、相互连接的套接字接口:第一套接字接口、第二套接字接口;获取分别指向创建的两个套接字接口的两个fd(file descriptor,文件描述符):第一文件描述符fd1、第二文件描述符fd2。
其中,fd1为创建第一套接字接口时内核(kernel)返回的文件描述符;fd2为创建第二套接字接口时内核返回的文件描述符。利用fd1可以访问第一套接字接口,利用fd2可以访问第二套接字接口。
实际应用中,由于第一套接字接口与第二套接字接口为相互连接的两个套接字接口。因此,利用fd2也可以间接访问第一套接字接口;同样地,利用fd1也可以间接访问第二套接字接口。
S102:以第一文件描述符fd1所指向的套接字接口作为移动终端中独立于各容器的rild进程的socket访问接口。
本发明方案中,通过内核将rild设置于独立于各容器的容器管理系统。为了便于移动终端中的容器通过rild来操作串口实现电话通讯功能,可以首先为rild进程与容器之间设置通道。
具体地,可以从步骤S101创建的两个套接字接口中,选择其中一个套接字接口作为rild进程的socket访问接口,并让另一个套接字接口成为移动终端中容器访问rild进程的间接接口以形成socket通道。这样,移动终端中的容器可以通过socket通道完成与rild进程之间的socket通信。
本步骤中,可以选择第一文件描述符fd1所指向的套接字接口作为rild进程的socket访问接口,之后执行步骤S103。
S103:根据第二文件描述符fd2将其所指向的套接字接口共享给移动终端中的各容器。
本步骤中,为了使移动终端中各个容器的进程与rild进程完成socket通信,需要在容器端也设置与rild进程对应的接口以形成socket通道。
由于步骤S101创建的第一套接字接口与第二套接字接口相互连接,因此,在步骤S102将第一套接字接口作为rild进程的socket访问接口的情况下,可以将第二套接字接口作为容器的访问rild进程的间接接口以形成socket通道。这样,容器的进程通过第二套接字接口连接作为访问接口的第一套接字接口与rild进程进行socket通信,并通过rild进程操作串口实现电话通讯功能。
具体地,可以根据第二文件描述符fd2将其所指向的套接字接口共享给移动终端中的各容器。由于第一套接字接口与第二套接字接口为相互连接的两个套接字接口。因此,共享第二套接字接口的容器,可以通过第二套接字接口连接到第一套接字接口,继而通过第一套接字接口与rild进程进行socket通信,并通过rild进程操作串口实现电话通讯功能。
考虑到,第一文件描述符fd1与第二文件描述符fd2所各自指向的套接字接口相互连接。因此,本发明的方案中,第一文件描述符fd1与第二文件描述符fd2可互换应用。例如,选择第二文件描述符fd2所指向的套接字接口作为rild进程的socket访问接口;相应地,选择第一文件描述符fd1所指向的套接字接口作为共享文件;并根据第一文件描述符fd1,将第一文件描述符fd1指向的第一套接字接口共享给移动终端中的各个容器。
这样,移动终端中容器的进程可以通过第一文件描述符fd1访问到第一套接字接口;通过第一套接字接口连接到第二套接字接口,继而通过第二套接字接口与rild进程进行socket通信,并通过rild进程操作串口实现电话通讯功能。
关于如何将套接字接口共享给移动终端中的容器,将在后续的实施例二中详细介绍。
相比现有需要为各个容器设置各自对应的rild进程,并为每个容器中的rild进程进行分散管理;而本发明的方案中,可通过rild进程的统一管理,实现对容器的电话通讯功能的统一管理,操作简单方便;在保障移动终端中各容器的正常电话通讯功能的同时,可大大提高移动终端的容器管理效率;而且,不会打破移动终端中容器间的独立性,保障移动终端中安全系统的充分隔离。
实施例二
如图2所示,可以通过如下步骤将文件描述符所指向的套接字接口进行传递,共享给移动终端中的容器:
S201:获取文件描述符所指向的套接字接口的file结构体。
本发明的方案中,套接字接口的共享实际上是一种文件的共享。在容器隔离比较彻底的情况下,可以在移动终端中设置一个设备驱动,以此设备节点,通过文件描述符的共享来实现系统间共享文件的需求。
考虑到,实际应用中,在文件创建时内核设置有描述该文件的file(文件)结构体;而文件的共享可以通过file(文件)结构体的共享来实现。因此,本发明实施例中,可以向驱动传递待共享文件的文件描述符,驱动利用内核提供的fget函数,通过文件描述符获取内核描述待共享文件的file结构体。
本发明方案中,可以将第二文件描述符fd2所指向的套接字接口作为待共享的文件。因此,可以将第二文件描述符fd2向驱动传递;驱动获得上述信息之后,利用fget函数获取第二文件描述符fd2所指向的套接字接口的file结构体。
S202:为文件描述符注册对应的服务通道,并在服务通道中记录文件描述符、以及获取的file结构体。
本步骤中,移动终端中预设的驱动可以为待共享文件的文件描述符注册一个对应的服务通道;在注册的服务通道中记录文件描述符、以及获取的file结构体。
比如,在以第二文件描述符fd2所指向的套接字接口为待共享的文件的情形下,移动终端中的预设的驱动可以为第二文件描述符fd2注册对应的服务通道,并在注册的服务通道中记录fd2、以及通过步骤S201获取的fd2所指向的套接字接口file结构体。
实际应用中,在向驱动传递待共享文件的文件描述符时,还可以传递预先设置的标示名称;驱动在为该文件描述符注册服务通道后,以该标示名称为索引。这样,后续通过标示名称即可找到对应的服务通道,继而查找到服务通道中记录的待共享文件的file结构体。
因此,本发明方案中,在为fd2注册对应的服务通道后,可以将fd2对应的服务通道进行广播,使移动终端中的容器根据广播获取服务通道的标示名称;并以获取的标示名称发起针对服务通道的读取请求。
实际应用中,驱动将fd2对应的服务通道进行广播,可以使得移动终端中的容器了解到fd2所指向的文件(即可连接至rild进程的第二套接字接口)已提供了共享接口。这样,移动终端中存在与rild进程进行socket通信的需求的容器,就可以根据广播的内容获取标示名称,比如,rild0;通过标示名称向驱动发起服务通道的读取请求。
S203:接收到移动终端中的容器针对服务通道的读取请求后,获取容器当前的共享文件描述符。
其中,容器当前的共享文件描述符指的是容器当前进程未使用的文件描述符。
本发明方案中,移动终端中存在与rild进程进行通信的需求的容器,在接收到针对rild进程的服务通道的广播之后,可以从广播中获取服务通道的标示名称,并向驱动发送针对该服务通道的读取请求。其中,读取请求中包括服务通道的标示名称。
移动终端中预设的驱动接收到读取请求后,根据读取请求中的标示名称,查找到对应的服务通道,并读取服务通道中记录的信息,包括:文件描述符、文件描述符所指向的待共享文件的file结构体。
实际应用中,文件描述符是一个非负整数,每一个文件描述符会与一个打开文件相对应;而相同的文件可能被不同的进程打开。针对同一文件,由不同的进程打开所得到的文件描述符可能并不相同。
因此,本发明实施例中,在驱动接收到容器发送的服务通道的读取请求之后,可以获取该容器当前进程未使用的文件描述符,以便后续指向待共享文件。比如,接收到移动终端中的容器针对fd2对应的服务通道的读取请求后,获取容器当前进程未使用的共享文件描述符fd3。
关于容器当前进程未使用的文件描述符的获取可以采用本领域技术人员常用技术手段,在此不再详述。
S204:将获取的共享文件描述符与服务通道中记录的file结构体进行关联。
本发明方案中,通过步骤S203获取移动终端中容器当前进程未使用的文件描述符之后,为了使容器当前进程未使用的文件描述符指向待共享文件,可以将获取的文件描述符与服务通道中记录的描述待共享文件的file结构体进行关联。比如,在获取容器当前进程的共享文件描述符fd3之后,可以将共享文件描述符fd3与fd2对应的服务通道中记录的第二套接字接口的file结构体进行关联,使得共享文件描述符fd3与fd2指向同一文件,即第二套接字接口。关于文件描述符与file结构体的关联,可以采用本领域技术常用技术手段,在此不再详述。
本发明方案中,在将共享文件描述符与服务通道中记录的file结构体进行关联之前,还可以对发送针对服务通道的读取请求的容器进行校验,以保障移动终端的安全通信。其中,校验包括如下至少一项:身份校验、权限校验。
实际应用中,文件描述符对应的服务通道中除了可以记录文件描述符、文件描述符所指向的待共享文件的file结构体之外,还可以记录文件权限、运行访问的用户UID(User Identification,用户身份证明)、允许最大访问数量等信息。这样,在接收到移动终端中的容器针对服务通道的读取请求,并查找到对应的服务通道后,可以从查找到的服务通道中读取上述信息,并根据上述信息对该容器进行校验。关于容器的校验可以采用本领域技术人员常用技术手段,在此不再详述。
S205:将与服务通道中记录的文件描述符指向同一套接字接口的共享文件描述符返回给容器。
本实施例中,将与服务通道中记录的文件描述符fd2指向同一套接字接口的共享文件描述符fd3返回给容器,可以使容器进程后续根据共享文件描述符fd3打开第二套接字接口,通过第二套接字接口连接到第一套接字接口,进而连接至rild进程,完成与rild进程的socket通信,并实现该容器的电话通讯功能。
实施例三
基于实施例一提供的移动终端中容器电话通讯功能实现方法,本发明实施例三提供了一种移动终端,如图3所示,该移动终端可以包括:接口创建单元301、通道构建单元302、通道共享单元303。
其中,接口创建单元301用于创建一对相互连接的套接字接口,获取分别指向两个套接字接口的两个文件描述符。
通道构建单元302用于以接口创建单元301获取的两个文件描述符中的一个文件描述符作为rild进程的socket访问接口。
通道共享单元303用于根据接口创建单元301获取的另一个文件描述符,将其所指向的套接字接口共享给移动终端中的各容器,使容器的进程通过该套接字接口连接访问接口与rild进程进行socket通信,并通过rild进程操作串口实现电话通讯功能。
如图4所示,通道共享单元可以包括:第一获取子单元401、通道注册子单元402、第二获取子单元403、关联共享子单元404。
其中,第一获取子单元401用于获取文件描述符所指向的套接字接口的文件file结构体。
通道注册子单元402用于为文件描述符注册对应的服务通道,并在服务通道中记录文件描述符、以及第一获取子单元获取的file结构体。
第二获取子单元403用于在接收到移动终端中的容器针对服务通道的读取请求后,获取容器当前进程的共享文件描述符。其中,共享文件描述符为容器当前进程未使用的文件描述符。
关联共享子单元404用于将共享文件描述符与服务通道中记录的file结构体进行关联;并将与第二文件描述符指向同一套接字接口的共享文件描述符返回给容器。
更优地,通道注册子单元402还用于将文件描述符对应的服务通道进行广播,使移动终端中的容器根据广播获取服务通道的标示名称,并以标示名称发起针对服务通道的读取请求。
更优地,通道共享单元303还可以包括:用于在接收到移动终端中的容器针对服务通道的读取请求后,对容器进行校验的容器校验子单元。其中,校验包括如下至少一项:身份校验、权限校验。
本实施例中,移动终端中各个单元的具体功能实现可以参考实施例一提供的移动终端中容器电话通讯功能实现方法中的各步骤的具体实现;且通道共享单元中各子单元的具体功能实现可以参考实施例二提供的共享方法中各步骤的具体实现,在此不再赘述。
实施例四
考虑到在容器隔离比较彻底的情况下,移动终端中容器之间可能出现无法通信的弊端,针对此弊端,本发明实施例四还提供了一种跨容器通信方法,如图5所示,具体包括如下步骤:
S501:接收第一容器发送的通信请求,从中解析出预通信的第二容器。
具体地,移动终端的内核启动的容器管理系统可以接收第一容器发送的通信请求,从中解析出第一容器预与之通信的第二容器。
本发明的方案中,移动终端中的容器与容器管理系统之间预先设有通信通道,因此,第一容器可以直接将通信请求发送给容器管理系统。
S502:创建一对相互连接的套接字接口,获取分别指向两个套接字接口的两个文件描述符。
容器管理系统为了能在第一容器与第二容器之间构建socket通道,可以预先创建一对相互连接的套接字接口:第一套接字接口、第二套接字接口;并获取分别指向两个套接字接口的两个文件描述符:第一文件描述符、第二文件描述符。
S503:将两个文件描述符各自指向的套接字接口分别传递给第一容器和第二容器,使第一容器与第二容器通过传递的套接字接口进行通信。
比如,可以将第一文件描述符指向的第一套接字接口传递给第一容器;将将第二文件描述符指向的第二套接字接口传递给第二容器。由于第一套接字接口与第二套接字接口相互连接,因此,第一容器可以通过第一套接字接口,连接到第二套接字接口,进而连接到第二容器。
本发明方案中,通过如下方式将文件描述符指向的套接字接口进行传递:
获取文件描述符所指向的套接字接口的文件file结构体;为文件描述符注册对应的服务通道,并在服务通道中记录文件描述符、以及获取的file结构体;接收到移动终端中的容器针对服务通道的读取请求后,获取容器当前进程未使用的文件描述符;将获取的文件描述符与服务通道中记录的file结构体进行关联;将与服务通道中记录的文件描述符指向同一套接字接口的文件描述符返回给容器。
实施例四中步骤S502、步骤S503的具体实现,可以参考实施例一和实施例二中相关步骤,在此不再赘述。
本发明实施例四中,在容器隔离比较彻底的情况下,可以根据移动终端中的容器发出的通信请求,创建一对相互连接的套接字接口;并根据文件描述符,将套接字接口传递给其它容器。这样,其它容器可以通过传递的套接字接口,连接到与之相连的套接字接口,继而,连接到发出通信请求的容器,从而实现容器之间的通信。
本发明的方案,在容器隔离比较彻底的情况下,预先在移动终端中设置独立于各个容器的rild进程;并创建一对相互连接的套接字接口,以其中一个套接字接口作为rild进程的socket通道;同时,将另一个套接字接口通过文件描述符共享给移动终端中的各个容器。这样,各个容器可以通过共享得到的另一个套接字接口连接至独立设置的rild进程,与rild进程进行socket通信,从而通过rild进程来操作串口实现电话控制。
相比现有需要为各个容器设置各自对应的rild进程,并为每个容器中的rild进程进行分散管理,本发明的方案,无需针对每个容器设置对应的rild进程,简化了移动终端结构;而且,在移动终端中预先设置独立于各个容器的rild进程,并不会打破移动终端中容器间的独立性,保障了移动终端中安全系统的充分隔离。
进一步地,本发明的方案中,在容器隔离比较彻底的情况下,可以根据移动终端中的容器发出的通信请求,创建一对相互连接的套接字接口;并根据文件描述符,将套接字接口传递给其它容器。这样,其它容器可以通过传递的套接字接口,连接到与之相连的套接字接口,继而,连接到发出通信请求的容器,从而实现容器之间的通信,解决了现有在容器隔离比较彻底的情况下容器间无法通信的缺陷。
本申请使用的“模块”、“系统”等术语旨在包括与计算机相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。例如,模块可以是,但并不仅限于:处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。举例来说,计算设备上运行的应用程序和此计算设备都可以是模块。一个或多个模块可以位于执行中的一个进程和/或线程内,一个模块也可以位于一台计算机上和/或分布于两台或更多台计算机之间。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种容器电话通讯功能实现方法,其特征在于,包括:
创建一对相互连接的套接字接口,获取分别指向两个套接字接口的两个文件描述符;
以其中一个文件描述符所指向的套接字接口作为移动终端中独立于各容器的无线接口层守护进程rild进程的套接字socket访问接口;
根据另一个文件描述符将其所指向的套接字接口共享给移动终端中的各容器,使所述容器的进程通过该套接字接口连接所述访问接口与所述rild进程进行socket通信,并通过所述rild进程操作串口实现电话通讯功能;所述根据另一个文件描述符将其所指向的套接字接口共享给移动终端中的各容器,具体包括:
获取该文件描述符所指向的套接字接口的文件file结构体;
为该文件描述符注册对应的服务通道,并在所述服务通道中记录该文件描述符、以及获取的file结构体;
接收到移动终端中的容器针对所述服务通道的读取请求后,获取所述容器当前的共享文件描述符;
将所述共享文件描述符与所述服务通道中记录的file结构体进行关联;
将与该文件描述符指向同一套接字接口的共享文件描述符返回给所述容器;
其中,所述共享文件描述符为所述容器当前进程未使用的文件描述符。
2.如权利要求1所述的方法,其特征在于,为该文件描述符注册对应的服务通道后,还包括:
将该文件描述符对应的服务通道进行广播,使移动终端中的容器根据广播获取所述服务通道的标示名称,并以所述标示名称发起针对所述服务通道的读取请求。
3.如权利要求2所述的方法,其特征在于,所述将所述共享文件描述符与所述服务通道中记录的file结构体进行关联之前,还包括:
对所述容器进行校验;
其中,所述校验包括如下至少一项:身份校验、权限校验。
4.一种移动终端,其特征在于,包括:
接口创建单元,用于创建一对相互连接的套接字接口,获取分别指向两个套接字接口的两个文件描述符;
通道构建单元,用于以所述接口创建单元获取的两个文件描述符中的一个文件描述符作为无线接口层守护进程rild进程的socket访问接口;
通道共享单元,用于根据所述接口创建单元获取的另一个文件描述符,将其所指向的套接字接口共享给移动终端中的各容器,使所述容器的进程通过该套接字接口连接所述访问接口与所述rild进程进行socket通信,并通过所述rild进程操作串口实现电话通讯功能;所述通道共享单元具体包括:
第一获取子单元,用于获取文件描述符所指向的套接字接口的文件file结构体;
通道注册子单元,用于为文件描述符注册对应的服务通道,并在所述服务通道中记录文件描述符、以及所述第一获取子单元获取的file结构体;
第二获取子单元,用于在接收到移动终端中的容器针对所述服务通道的读取请求后,获取所述容器当前的共享文件描述符;其中,所述共享文件描述符为所述容器当前进程未使用的文件描述符;
关联共享子单元,用于将所述共享文件描述符与所述服务通道中记录的file结构体进行关联;并将与该文件描述符指向同一套接字接口的共享文件描述符返回给所述容器。
5.如权利要求4所述的移动终端,其特征在于,所述通道注册子单元还用于将文件描述符对应的服务通道进行广播,使移动终端中的容器根据广播获取所述服务通道的标示名称,并以所述标示名称发起针对所述服务通道的读取请求。
6.如权利要求5所述的移动终端,其特征在于,所述通道共享单元还包括:
容器校验子单元,用于在接收到移动终端中的容器针对所述服务通道的读取请求后,对所述容器进行校验;
其中,所述校验包括如下至少一项:身份校验、权限校验。
7.一种跨容器通信方法,其特征在于,包括:
接收第一容器发送的通信请求,从中解析出预通信的第二容器;
创建一对相互连接的套接字接口,获取分别指向两个套接字接口的两个文件描述符;
将两个文件描述符各自指向的套接字接口分别传递给所述第一容器和第二容器,使所述第一容器与所述第二容器通过传递的套接字接口进行通信;通过如下方式将文件描述符指向的套接字接口进行传递:
获取所述文件描述符所指向的套接字接口的文件file结构体;
为所述文件描述符注册对应的服务通道,并在所述服务通道中记录所述文件描述符、以及获取的file结构体;
接收到移动终端中的容器针对所述服务通道的读取请求后,获取所述容器当前进程未使用的文件描述符;
将获取的文件描述符与所述服务通道中记录的file结构体进行关联;
将与所述服务通道中记录的文件描述符指向同一套接字接口的文件描述符返回给容器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611069924.2A CN106776063B (zh) | 2016-11-29 | 2016-11-29 | 移动终端、容器电话通讯功能实现方法及跨容器通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611069924.2A CN106776063B (zh) | 2016-11-29 | 2016-11-29 | 移动终端、容器电话通讯功能实现方法及跨容器通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106776063A CN106776063A (zh) | 2017-05-31 |
CN106776063B true CN106776063B (zh) | 2020-12-01 |
Family
ID=58905132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611069924.2A Active CN106776063B (zh) | 2016-11-29 | 2016-11-29 | 移动终端、容器电话通讯功能实现方法及跨容器通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776063B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107368301B (zh) * | 2017-06-27 | 2020-12-15 | 深圳市爱培科技术股份有限公司 | 一种串口框架协议实现方法、存储介质及装置 |
CN108984438A (zh) * | 2018-06-26 | 2018-12-11 | 新华三技术有限公司 | 串口权限控制方法及装置 |
CN112181670B (zh) * | 2019-07-02 | 2023-04-11 | 西安诺瓦星云科技股份有限公司 | 进程间通讯方法及装置和Linux设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1906588A (zh) * | 2004-09-29 | 2007-01-31 | 索尼株式会社 | 信息处理装置、通信处理方法和计算机程序 |
CN102833080A (zh) * | 2011-06-15 | 2012-12-19 | 康佳集团股份有限公司 | 一种应用软件的进程间通信方法和系统 |
CN103002492A (zh) * | 2012-11-30 | 2013-03-27 | 北京百度网讯科技有限公司 | 一种移动终端的通信测试方法及装置 |
CN105450602A (zh) * | 2014-08-21 | 2016-03-30 | 北大方正集团有限公司 | 移动终端控制方法和装置 |
CN105657867A (zh) * | 2016-01-28 | 2016-06-08 | 努比亚技术有限公司 | 移动终端及其基于双通道的通信方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7991839B2 (en) * | 2006-12-19 | 2011-08-02 | International Business Machines Corporation | Communication between host systems using a socket connection and shared memories |
ES2371378T3 (es) * | 2008-04-04 | 2011-12-30 | Canon Kabushiki Kaisha | Sistema de gestión de sesiones y método para controlar las mismas. |
JP4518177B2 (ja) * | 2008-04-09 | 2010-08-04 | ソニー株式会社 | 記録装置、ファイルディスクリプタ生成方法、プログラム |
CN102662734B (zh) * | 2012-03-06 | 2014-01-29 | 中国人民解放军理工大学 | 一种Android RIL系统及其构建方法 |
CN102769937B (zh) * | 2012-07-16 | 2016-04-27 | 青岛海信移动通信技术股份有限公司 | 一种安卓系统的多待终端及终端实现多待的方法 |
CN103458118B (zh) * | 2013-08-26 | 2015-08-05 | 中国人民解放军理工大学 | 一种Android双模RIL系统的构建方法及系统 |
-
2016
- 2016-11-29 CN CN201611069924.2A patent/CN106776063B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1906588A (zh) * | 2004-09-29 | 2007-01-31 | 索尼株式会社 | 信息处理装置、通信处理方法和计算机程序 |
CN102833080A (zh) * | 2011-06-15 | 2012-12-19 | 康佳集团股份有限公司 | 一种应用软件的进程间通信方法和系统 |
CN103002492A (zh) * | 2012-11-30 | 2013-03-27 | 北京百度网讯科技有限公司 | 一种移动终端的通信测试方法及装置 |
CN105450602A (zh) * | 2014-08-21 | 2016-03-30 | 北大方正集团有限公司 | 移动终端控制方法和装置 |
CN105657867A (zh) * | 2016-01-28 | 2016-06-08 | 努比亚技术有限公司 | 移动终端及其基于双通道的通信方法 |
Non-Patent Citations (1)
Title |
---|
RILD 启动与实现过程;ctyjqcq;《https://www.geek-share.com/detail/2655572841.html》;20151011;第1-17页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106776063A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11469964B2 (en) | Extension resource groups of provider network services | |
CN106776063B (zh) | 移动终端、容器电话通讯功能实现方法及跨容器通信方法 | |
CN103152402A (zh) | 通过移动终端进行登录的方法与系统以及云端服务器 | |
US20200159555A1 (en) | Provider network service extensions | |
US20230231766A1 (en) | Assignment of network configuration for a wired network using a wireless network | |
EP2058975A1 (en) | Method for configuring device and system thereof | |
CN109640373B (zh) | 一种应用于物联网的组网方法、装置和存储介质 | |
WO2016011835A1 (zh) | 光纤通道存储区域网络配置方法和装置 | |
CN104618333A (zh) | 一种移动终端安全办公系统 | |
WO2018010480A1 (zh) | eSIM卡锁网方法、终端及锁网认证服务器 | |
KR102045662B1 (ko) | 보안 요소 내의 수 개의 가상 프로파일에 액세스하기 위한 논리 채널을 관리하는 시스템 및 방법 | |
CN114428951B (zh) | 网络文件系统访问权限的控制方法及装置 | |
CN114969713A (zh) | 设备验证方法、设备及系统 | |
CN105554845A (zh) | 一种接入的方法、路由器及终端 | |
CN113032805B (zh) | 一种数据访问方法、装置、电子设备及存储介质 | |
US10200864B2 (en) | Method and device for managing wireless access point | |
CN106778245A (zh) | 移动终端及其文件共享方法 | |
CN105812364A (zh) | 一种数据传输方法及装置 | |
CN113157396A (zh) | 一种虚拟化服务系统和方法 | |
CN109906452A (zh) | 鉴权方法、鉴权设备和鉴权系统 | |
CN103747423A (zh) | 一种终端应用的注册方法、装置和系统 | |
CN106445599B (zh) | 应用程序的升级方法、升级装置和终端 | |
US20180295017A1 (en) | Dynamic interface identification and configuration | |
CN112559250B (zh) | 一种电力物联网的配置数据备份方法及装置 | |
CN103338117B (zh) | 一种虚拟交换机的管理方法、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230512 Address after: Room 401, Floor 4, No. 2, Haidian East Third Street, Haidian District, Beijing 100080 Patentee after: Yuanxin Information Technology Group Co.,Ltd. Address before: 100176 No. 2222, building D, building 33, No. 99, Kechuang 14th Street, Beijing Economic and Technological Development Zone Patentee before: YUANXIN TECHNOLOGY |