CN111339541B - 基于binder驱动的进程间通信IPC机制的复用方法及装置 - Google Patents
基于binder驱动的进程间通信IPC机制的复用方法及装置 Download PDFInfo
- Publication number
- CN111339541B CN111339541B CN202010105004.1A CN202010105004A CN111339541B CN 111339541 B CN111339541 B CN 111339541B CN 202010105004 A CN202010105004 A CN 202010105004A CN 111339541 B CN111339541 B CN 111339541B
- Authority
- CN
- China
- Prior art keywords
- service
- binder
- inter
- namespace
- name
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提出一种基于binder驱动的进程间通信IPC机制的复用方法及装置,应用于移动设备中,移动设备具有至少两个的操作系统,各操作系统所属的容器共用Linux内核,该方法包括:在binder驱动中获取各操作系统所属容器的命名空间标识,命名空间标识由Linux内核预先分配;将命名空间标识发送至移动设备的主机中的服务管理组件;服务管理组件采用命名空间标识和所提供的服务名共同命名所提供的服务。通过本发明能够有效防止恶意程序跨操作系统获取服务和使用服务,有效提升多操作系统移动设备的安全性,通过对基于binder驱动的进程间通信IPC机制的改进,达到复用基于binder驱动的进程间通信IPC机制的目的,有效提升多操作系统移动设备的进程间响应性能。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种基于binder驱动的进程间通信IPC机制的复用方法及装置。
背景技术
随着信息化社会的不断发展,移动办公在日常生活中越来越普及,一台移动设备需同时兼顾工作和生活,双android系统是一种解决方案,即一台移动设备两个操作系统,办公模式的操作系统可以用于业务办公,而普通模式的操作系统用于个人生活,两个系统用户数据相互独立。在android系统中,binder驱动的进程间通信(Inter-ProcessCommunication,IPC)机制被大量使用,binder驱动的IPC机制是典型的C/S架构,移动设备中的服务管理组件Service manager、能够提供服务的server进程、和获取服务的client进程均通过binder驱动进行交互,完成注册服务、获取服务、使用服务的过程。在这个过程中每个服务均以服务名作为唯一标识,服务管理组件service manager以服务名为唯一关键字进行server管理。
而由于容器方案是共用Linux内核,而且binder驱动限制一个binder设备只能有一个service manager的。所以在部署binder时,将service manager部署在移动设备的主机HOST中,Android系统中的能够提供服务的server进程和获取服务的client进程均部署在对应的容器当中,service manager是基于服务名进行服务的管理,这样部署,就需要解决服务重名的问题。
相关技术中,通常是修改server服务名,例如在用户态的android系统中将server名字加上当前容器名字作为后缀;或者在内核态的binder驱动中分析server注册服务过程中携带的服务名、client获取服务过程中携带的服务名,并进行修改后再发送给servicemanager。
这种方式下,由于是在用户态的android系统增加名字扩展,安全性差,例如恶意程序开发者,可以在知道改名规则以后,篡改要获取的服务名,并通过直接访问binder驱动,进而达到获取非本android系统服务的目的。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明提出一种基于binder驱动的进程间通信IPC机制的复用方法及装置,能够有效防止恶意程序跨操作系统获取服务和使用服务,有效提升多操作系统移动设备的安全性,通过对基于binder驱动的进程间通信IPC机制的改进,达到复用基于binder驱动的进程间通信IPC机制的目的,有效提升多操作系统移动设备的进程间响应性能。
本发明第一方面实施例提出的基于binder驱动的进程间通信IPC机制的复用方法,应用于移动设备中,所述移动设备具有至少两个的操作系统,各所述操作系统所属的容器共用Linux内核,包括:在所述binder驱动中获取各所述操作系统所属容器的命名空间标识,所述命名空间标识由所述Linux内核预先分配;将所述命名空间标识发送至所述移动设备的主机中的服务管理组件;所述服务管理组件采用所述命名空间标识和所提供的服务名共同命名所述所提供的服务。
本发明第一方面实施例提出的基于binder驱动的进程间通信IPC机制的复用方法,应用于移动设备中,移动设备具有至少两个的操作系统,各操作系统所属的容器共用Linux内核,通过在binder驱动中获取各操作系统所属容器的命名空间标识,命名空间标识由Linux内核预先分配,在将命名空间标识发送至移动设备的主机中的服务管理组件,服务管理组件采用命名空间标识和所提供的服务名共同命名所提供的服务,能够有效防止恶意程序跨操作系统获取服务和使用服务,有效提升多操作系统移动设备的安全性,通过对基于binder驱动的进程间通信IPC机制的改进,达到复用基于binder驱动的进程间通信IPC机制的目的,有效提升多操作系统移动设备的进程间响应性能。
本发明第二方面实施例提出的基于binder驱动的进程间通信IPC机制的复用装置,应用于移动设备中,所述移动设备具有至少两个的操作系统,各所述操作系统所属的容器共用Linux内核,包括:获取模块,用于在所述binder驱动中获取各所述操作系统所属容器的命名空间标识,所述命名空间标识由所述Linux内核预先分配;发送模块,用于将所述命名空间标识发送至所述移动设备的主机中的服务管理组件;命名模块,用于所述服务管理组件采用所述命名空间标识和所提供的服务名共同命名所述所提供的服务。
本发明第二方面实施例提出的基于binder驱动的进程间通信IPC机制的复用装置,应用于移动设备中,移动设备具有至少两个的操作系统,各操作系统所属的容器共用Linux内核,通过在binder驱动中获取各操作系统所属容器的命名空间标识,命名空间标识由Linux内核预先分配,在将命名空间标识发送至移动设备的主机中的服务管理组件,服务管理组件采用命名空间标识和所提供的服务名共同命名所提供的服务,能够有效防止恶意程序跨操作系统获取服务和使用服务,有效提升多操作系统移动设备的安全性,通过对基于binder驱动的进程间通信IPC机制的改进,达到复用基于binder驱动的进程间通信IPC机制的目的,有效提升多操作系统移动设备的进程间响应性能。
本发明第三方面实施例提出的非临时性计算机可读存储介质,当所述存储介质中的指令由移动设备的处理器被执行时,使得移动设备能够执行一种分布式地图切片方法,所述方法包括:本发明第一方面实施例提出的基于binder驱动的进程间通信IPC机制的复用方法。
本发明第三方面实施例提出的非临时性计算机可读存储介质,应用于移动设备中,移动设备具有至少两个的操作系统,各操作系统所属的容器共用Linux内核,通过在binder驱动中获取各操作系统所属容器的命名空间标识,命名空间标识由Linux内核预先分配,在将命名空间标识发送至移动设备的主机中的服务管理组件,服务管理组件采用命名空间标识和所提供的服务名共同命名所提供的服务,能够有效防止恶意程序跨操作系统获取服务和使用服务,有效提升多操作系统移动设备的安全性,通过对基于binder驱动的进程间通信IPC机制的改进,达到复用基于binder驱动的进程间通信IPC机制的目的,有效提升多操作系统移动设备的进程间响应性能。
本发明第四方面实施例提出的移动设备,所述移动设备包括:壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述移动设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行本发明第一方面实施例提出的基于binder驱动的进程间通信IPC机制的复用方法。
本发明第四方面实施例提出的移动设备,应用于移动设备中,移动设备具有至少两个的操作系统,各操作系统所属的容器共用Linux内核,通过在binder驱动中获取各操作系统所属容器的命名空间标识,命名空间标识由Linux内核预先分配,在将命名空间标识发送至移动设备的主机中的服务管理组件,服务管理组件采用命名空间标识和所提供的服务名共同命名所提供的服务,能够有效防止恶意程序跨操作系统获取服务和使用服务,有效提升多操作系统移动设备的安全性,通过对基于binder驱动的进程间通信IPC机制的改进,达到复用基于binder驱动的进程间通信IPC机制的目的,有效提升多操作系统移动设备的进程间响应性能。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一实施例提出的基于binder驱动的进程间通信IPC机制的复用方法的流程示意图;
图2为移动设备的架构示意图;
图3为本发明实施例中的一应用示意图;
图4是本发明另一实施例提出的基于binder驱动的进程间通信IPC机制的复用方法的流程示意图;
图5为本发明实施例中的另一应用示意图;
图6是本发明一实施例提出的基于binder驱动的进程间通信IPC机制的复用装置的结构示意图;
图7是本发明另一实施例提出的基于binder驱动的进程间通信IPC机制的复用装置的结构示意图;
图8是本发明一个实施例提出的移动设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本发明一实施例提出的基于binder驱动的进程间通信IPC机制的复用方法的流程示意图。
本发明实施例可以具体应用在移动设备中。
在本发明实施例中,移动设备可以经无线接入网(Radio Access Network,RAN)与一个或多个核心网(Core Network)进行通信,移动设备可称为接入终端、用户设备(UserEquipment,UE)、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置。
移动设备也可以是蜂窝电话、无绳电话、会话启动协议(Session InitiationProtocol,SIP)电话、无线本地环路(Wireless Local Loop,WLL)站、个人数字处理(Personal Digital Assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备以及未来5G网络中的移动设备等。
本发明实施例中的移动设备具有至少两个的操作系统,各操作系统所属的容器共用Linux内核,至少两个的操作系统可以具体例如两个Android操作系统,对此不作限制。
参见图2,图2为移动设备的架构示意图,其中以移动设备包括两个Android操作系统进行示例,各Android操作系统中运行相应的能够提供服务的server进程、和获取服务的client进程,其中的服务管理组件service manager配置在主机host中,与两个Android操作系统独立配置,其中服务管理组件service manager和能够提供服务的server进程、和获取服务的client进程之间通过Linux内核中的内核态的binder驱动进行进程间通信IPC。
参见图1,该方法包括:
S101:在binder驱动中获取各操作系统所属容器的命名空间标识,命名空间标识由Linux内核预先分配。
可以理解的是,根据基于binder驱动的进程间通信IPC机制,当移动设备具有至少两个的操作系统,各操作系统所属的容器共用Linux内核时,Linux内核支持命名空间namespace隔离,也即,针对每个容器均分配对应的命名空间,每个命名空间具有相应的命名空间标识,此时,对应容器中的server进程和client进程使用相同的命名空间标识,而不同容器中的server进程或者不同容器中的client进程使用不相同的命名空间标识。
本发明实施例中,可以将命名空间标识表示为namespace id。
上述在binder驱动中获取各操作系统所属容器的命名空间标识时,具体是在Linux内核中的内核态的binder驱动中获取各操作系统所属容器的命名空间标识,而并不是直接在用户态中执行,因此,能够避免被恶意程序的篡改。
其中,关于内核态和用户态的解释可以如下:
当一个进程在执行用户自己的代码时处于用户运行态(也即,用户态),大部分用户直接面对的程序都是运行在用户态。当一个进程因为系统调用陷入内核代码中执行时处于内核运行态(也即,内核态)。用户态的进程不能随意操作内核态的地址空间,具有一定的安全保护作用。
S102:将命名空间标识发送至移动设备的主机中的服务管理组件。
在上述由binder驱动中获取各操作系统所属容器的命名空间标识,将命名空间标识发送至移动设备的主机中的服务管理组件,直接由服务管理组件对所提供的服务进行命名,相对于相关技术中在内核态的binder驱动中分析server注册服务过程中携带的服务名、client获取服务过程中携带的服务名,并进行修改后再发送给服务管理组件servicemanager,从而由服务管理组件service manager进行服务名、namespace id,以及服务相关的句柄的统一管理,由此,能够通过对基于binder驱动的进程间通信IPC机制的改进,达到复用基于binder驱动的进程间通信IPC机制的目的,有效提升多操作系统移动设备的进程间响应性能。
S103:服务管理组件采用命名空间标识和所提供的服务名共同命名所提供的服务。
在采用命名空间标识和所提供的服务名共同命名所提供的服务时,可以根据命名空间标识和所提供的服务名形成双键值;采用双键值命名所提供的服务,能够进一步提升安全性,并且,使得操作简捷,不会影响进程间响应效率。
或者另外一些实施例中,也可以根据命名空间标识和所提供的服务名,采用一定的算法进行运算组合,从而采用运算组合后的结果作为单键值命名所提供的服务,对此不作限制。
可选地,当服务管理组件采用命名空间标识和所提供的服务名共同命名所提供的服务之后,还可以在服务管理组件中提供注册接口和查询接口,注册接口,能够被server进程调用,从而基于命名空间标识和所提供的服务名共同注册相应的服务,查询接口,能够被client进程调用,从而基于命名空间标识和所提供的服务名共同查询相应的服务。
其中,注册接口可以表示为add_service(server_name,namespace_id,handle),查询接口可以表示为get_service(server_name,namespace_id)。
另外,在service manager维护的服务数据库中,对每个数据项增加namespace id信息,使数据项由单键值服务名server name确定服务句柄handle变为由双键值服务名server name、命名空间标识namespace id确定服务句柄handle,可以参见图3,图3为本发明实施例中的一应用示意图,其中包括了服务数据库,以及图3中示出可通过注册接口和查询接口访问该服务数据库。
本实施例中,通过在binder驱动中获取各操作系统所属容器的命名空间标识,命名空间标识由Linux内核预先分配,并将命名空间标识发送至移动设备的主机中的服务管理组件,以及服务管理组件采用命名空间标识和所提供的服务名共同命名所提供的服务,由于命名空间标识是由Linux内核中的内核态的binder驱动根据server进程和client进程所属容器所得到的,由此,使得移动设备中用户态的程序是无法模拟或篡改的,因此,能够有效防止恶意程序跨操作系统获取服务和使用服务,有效提升多操作系统移动设备的安全性,通过对基于binder驱动的进程间通信IPC机制的改进,达到复用基于binder驱动的进程间通信IPC机制的目的,有效提升多操作系统移动设备的进程间响应性能。
图4是本发明另一实施例提出的基于binder驱动的进程间通信IPC机制的复用方法的流程示意图。
参见图4,该方法包括:
S401:当任一操作系统通过其内的server进程和/或client进程向binder驱动写入数据时,在binder驱动中获取任一操作系统所属容器的命名空间标识,并将命名空间标识保存至binder驱动中的预设数据结构体中。
S402:当服务管理组件从binder驱动读取数据时,从预设数据结构体中读取命名空间标识。
S403:将命名空间标识复制至目标数据结构体中。
S404:将目标数据结构体复制至服务管理组件的用户态空间。
上述步骤能够实现涉及binder驱动携带namespace id进行信息传递和servicemanager基于双键值进行服务管理,具体地,参见图5,图5为本发明实施例中的另一应用示意图,当任一操作系统中的server进程/client进程通过ioctl向binder驱动写入数据时,可以将server进程/client进程的namespace id保存到预设数据结构体binder_transaction结构中,而当Service manager通过ioctl从binder驱动读取数据时,将预设数据结构体binder_transaction中的namespace id复制至binder_transaction_data中,并拷贝到用户态空间。
本实施例中,通过当任一操作系统通过其内的server进程和/或client进程向binder驱动写入数据时,在binder驱动中获取任一操作系统所属容器的命名空间标识,并将命名空间标识保存至binder驱动中的预设数据结构体中,将命名空间标识复制至目标数据结构体中,将目标数据结构体复制至服务管理组件的用户态空间,由于binder驱动仅在与service manager交互的信息结构中携带了新的内容,并不绑定service manager与server进程、client进程的端到端的交互协议格式,因此,能够有效提升扩展性,有效提升基于binder驱动的进程间通信IPC机制的复用效果。
图6是本发明一实施例提出的基于binder驱动的进程间通信IPC机制的复用装置的结构示意图。
应用于移动设备中,移动设备具有至少两个的操作系统,各操作系统所属的容器共用Linux内核。
参见图6,装置600包括:
获取模块601,用于在binder驱动中获取各操作系统所属容器的命名空间标识,命名空间标识由Linux内核预先分配;
发送模块602,用于将命名空间标识发送至移动设备的主机中的服务管理组件;
命名模块603,用于服务管理组件采用命名空间标识和所提供的服务名共同命名所提供的服务。
可选地,一些实施例中,参见图7,命名模块603,具体用于:
根据命名空间标识和所提供的服务名形成双键值;
采用双键值命名所提供的服务。
可选地,一些实施例中,参见图7,获取模块601,具体用于:
当任一操作系统通过其内的server进程和/或client进程向binder驱动写入数据时,在binder驱动中获取任一操作系统所属容器的命名空间标识,并将命名空间标识保存至binder驱动中的预设数据结构体中。
可选地,一些实施例中,参见图7,还包括:
读取模块604,用于当服务管理组件从binder驱动读取数据时,从预设数据结构体中读取命名空间标识;
第一复制模块605,用于将命名空间标识复制至目标数据结构体中;
第二复制模块606,用于将目标数据结构体复制至服务管理组件的用户态空间。
可选地,一些实施例中,参见图7,还包括:
接口模块607,用于在服务管理组件中提供注册接口和查询接口,注册接口,能够被server进程调用,从而基于命名空间标识和所提供的服务名共同注册相应的服务,查询接口,能够被client进程调用,从而基于命名空间标识和所提供的服务名共同查询相应的服务。
需要说明的是,前述图1-图5实施例中对基于binder驱动的进程间通信IPC机制的复用方法实施例的解释说明也适用于该实施例的基于binder驱动的进程间通信IPC机制的复用装置600,其实现原理类似,此处不再赘述.
本发明实施例,应用于移动设备中,移动设备具有至少两个的操作系统,各操作系统所属的容器共用Linux内核,通过在binder驱动中获取各操作系统所属容器的命名空间标识,命名空间标识由Linux内核预先分配,在将命名空间标识发送至移动设备的主机中的服务管理组件,服务管理组件采用命名空间标识和所提供的服务名共同命名所提供的服务,能够有效防止恶意程序跨操作系统获取服务和使用服务,有效提升多操作系统移动设备的安全性,通过对基于binder驱动的进程间通信IPC机制的改进,达到复用基于binder驱动的进程间通信IPC机制的目的,有效提升多操作系统移动设备的进程间响应性能。
图8是本发明一个实施例提出的移动设备的结构示意图。
参见图8,本实施例的移动设备800包括壳体801、处理器802、存储器803、电路板804和电源电路805,其中,电路板804安置在壳体801围成的空间内部,处理器802和存储器803设置在电路板804上;电源电路805,用于为移动设备800的各个电路或器件供电;存储器803用于存储可执行程序代码;处理器802通过读取存储器803中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行:
在binder驱动中获取各操作系统所属容器的命名空间标识,命名空间标识由Linux内核预先分配;
将命名空间标识发送至移动设备的主机中的服务管理组件;
服务管理组件采用命名空间标识和所提供的服务名共同命名所提供的服务。
需要说明的是,前述图1-图5实施例中对基于binder驱动的进程间通信IPC机制的复用方法实施例的解释说明也适用于该实施例的移动设备800,其实现原理类似,此处不再赘述。
本发明实施例,应用于移动设备中,移动设备具有至少两个的操作系统,各操作系统所属的容器共用Linux内核,通过在binder驱动中获取各操作系统所属容器的命名空间标识,命名空间标识由Linux内核预先分配,在将命名空间标识发送至移动设备的主机中的服务管理组件,服务管理组件采用命名空间标识和所提供的服务名共同命名所提供的服务,能够有效防止恶意程序跨操作系统获取服务和使用服务,有效提升多操作系统移动设备的安全性,通过对基于binder驱动的进程间通信IPC机制的改进,达到复用基于binder驱动的进程间通信IPC机制的目的,有效提升多操作系统移动设备的进程间响应性能。
为了实现上述实施例,本申请实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述方法实施例的基于binder驱动的进程间通信IPC机制的复用方法。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (12)
1.一种基于binder驱动的进程间通信IPC机制的复用方法,其特征在于,应用于移动设备中,所述移动设备具有至少两个的操作系统,各所述操作系统所属的容器共用Linux内核,所述方法包括:
在所述binder驱动中获取各所述操作系统所属容器的命名空间标识,所述命名空间标识由所述Linux内核预先分配;
将所述命名空间标识发送至所述移动设备的主机中的服务管理组件;
所述服务管理组件采用所述命名空间标识和在server注册服务过程中所提供的服务名共同命名所提供的服务。
2.如权利要求1所述的基于binder驱动的进程间通信IPC机制的复用方法,其特征在于,所述采用所述命名空间标识和在server注册服务过程中所提供的服务名共同命名所提供的服务,包括:
根据所述命名空间标识和所述所提供的服务名形成双键值,所述双键值包含所述命名空间标识和所述所提供的服务名;
采用所述双键值命名所述所提供的服务。
3.如权利要求1所述的基于binder驱动的进程间通信IPC机制的复用方法,其特征在于,还包括:
当任一操作系统通过其内的server进程和/或client进程向所述binder驱动写入数据时,在所述binder驱动中获取所述任一操作系统所属容器的命名空间标识,并将所述命名空间标识保存至所述binder驱动中的预设数据结构体中。
4.如权利要求3所述的基于binder驱动的进程间通信IPC机制的复用方法,其特征在于,还包括:
当所述服务管理组件从所述binder驱动读取数据时,从所述预设数据结构体中读取所述命名空间标识;
将所述命名空间标识复制至目标数据结构体中;
将所述目标数据结构体复制至所述服务管理组件的用户态空间。
5.如权利要求3-4任一项所述的基于binder驱动的进程间通信IPC机制的复用方法,其特征在于,还包括:
在所述服务管理组件中提供注册接口和查询接口,所述注册接口,能够被所述server进程调用,从而基于所述命名空间标识和在server注册服务过程中所提供的服务名共同注册相应的服务,所述查询接口,能够被所述client进程调用,从而基于所述命名空间标识和所提供的服务名共同查询所述相应的服务。
6.一种基于binder驱动的进程间通信IPC机制的复用装置,其特征在于,应用于移动设备中,所述移动设备具有至少两个的操作系统,各所述操作系统所属的容器共用Linux内核,所述装置包括:
获取模块,用于在所述binder驱动中获取各所述操作系统所属容器的命名空间标识,所述命名空间标识由所述Linux内核预先分配;
发送模块,用于将所述命名空间标识发送至所述移动设备的主机中的服务管理组件;
命名模块,用于所述服务管理组件采用所述命名空间标识和在server注册服务过程中所提供的服务名共同命名所提供的服务。
7.如权利要求6所述的基于binder驱动的进程间通信IPC机制的复用装置,其特征在于,所述命名模块,具体用于:
根据所述命名空间标识和所述所提供的服务名形成双键值,所述双键值包含所述命名空间标识和所述所提供的服务名;
采用所述双键值命名所述所提供的服务。
8.如权利要求6所述的基于binder驱动的进程间通信IPC机制的复用装置,其特征在于,所述获取模块,具体用于:
当任一操作系统通过其内的server进程和/或client进程向所述binder驱动写入数据时,在所述binder驱动中获取所述任一操作系统所属容器的命名空间标识,并将所述命名空间标识保存至所述binder驱动中的预设数据结构体中。
9.如权利要求8所述的基于binder驱动的进程间通信IPC机制的复用装置,其特征在于,还包括:
读取模块,用于当所述服务管理组件从所述binder驱动读取数据时,从所述预设数据结构体中读取所述命名空间标识;
第一复制模块,用于将所述命名空间标识复制至目标数据结构体中;
第二复制模块,用于将所述目标数据结构体复制至所述服务管理组件的用户态空间。
10.如权利要求8-9任一项所述的基于binder驱动的进程间通信IPC机制的复用装置,其特征在于,还包括:
接口模块,用于在所述服务管理组件中提供注册接口和查询接口,所述注册接口,能够被所述server进程调用,从而基于所述命名空间标识和在server注册服务过程中所提供的服务名共同注册相应的服务,所述查询接口,能够被所述client进程调用,从而基于所述命名空间标识和所提供的服务名共同查询所述相应的服务。
11.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一项所述的基于binder驱动的进程间通信IPC机制的复用方法。
12.一种移动设备,包括壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述移动设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行如权利要求1-5中任一项所述的基于binder驱动的进程间通信IPC机制的复用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010105004.1A CN111339541B (zh) | 2020-02-20 | 2020-02-20 | 基于binder驱动的进程间通信IPC机制的复用方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010105004.1A CN111339541B (zh) | 2020-02-20 | 2020-02-20 | 基于binder驱动的进程间通信IPC机制的复用方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111339541A CN111339541A (zh) | 2020-06-26 |
CN111339541B true CN111339541B (zh) | 2022-08-02 |
Family
ID=71183552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010105004.1A Active CN111339541B (zh) | 2020-02-20 | 2020-02-20 | 基于binder驱动的进程间通信IPC机制的复用方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111339541B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115509767B (zh) * | 2021-06-23 | 2024-06-04 | 华为技术有限公司 | 一种服务进程的调用方法及相关装置 |
CN113590363B (zh) * | 2021-09-26 | 2022-02-25 | 北京鲸鲮信息系统技术有限公司 | 数据发送方法、装置、电子设备及存储介质 |
CN114035863A (zh) * | 2021-11-11 | 2022-02-11 | 北京鲸鲮信息系统技术有限公司 | 在Linux系统中操作安卓应用的方法、装置和设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593225A (zh) * | 2013-10-30 | 2014-02-19 | 浙江大学 | 移动虚拟化场景中多Android系统复用Binder IPC机制的方法 |
CN103902390A (zh) * | 2014-03-12 | 2014-07-02 | 深圳创维-Rgb电子有限公司 | 基于Android的应用层的进程间通信方法及基础应用通信系统 |
CN106095530A (zh) * | 2016-06-08 | 2016-11-09 | 电子科技大学 | 一种多Android系统的容器自动创建及其启动方法 |
CN106375371A (zh) * | 2016-08-22 | 2017-02-01 | 四川安嵌科技有限公司 | 一种跨域访问服务的方法及系统 |
WO2017202364A1 (en) * | 2016-05-27 | 2017-11-30 | Huawei Technologies Co., Ltd. | Inter-process communication between containers |
CN108304248A (zh) * | 2017-12-19 | 2018-07-20 | 西安电子科技大学 | 一种多系统虚拟化的移动设备 |
KR20190038065A (ko) * | 2017-09-29 | 2019-04-08 | 숭실대학교산학협력단 | 리눅스 기반 안드로이드 컨테이너 플랫폼, 이를 탑재한 장치 및 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법 |
CN110032413A (zh) * | 2019-03-05 | 2019-07-19 | 华为技术有限公司 | 一种桌面虚拟化方法、相关设备及计算机存储介质 |
-
2020
- 2020-02-20 CN CN202010105004.1A patent/CN111339541B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593225A (zh) * | 2013-10-30 | 2014-02-19 | 浙江大学 | 移动虚拟化场景中多Android系统复用Binder IPC机制的方法 |
CN103902390A (zh) * | 2014-03-12 | 2014-07-02 | 深圳创维-Rgb电子有限公司 | 基于Android的应用层的进程间通信方法及基础应用通信系统 |
WO2017202364A1 (en) * | 2016-05-27 | 2017-11-30 | Huawei Technologies Co., Ltd. | Inter-process communication between containers |
CN106095530A (zh) * | 2016-06-08 | 2016-11-09 | 电子科技大学 | 一种多Android系统的容器自动创建及其启动方法 |
CN106375371A (zh) * | 2016-08-22 | 2017-02-01 | 四川安嵌科技有限公司 | 一种跨域访问服务的方法及系统 |
KR20190038065A (ko) * | 2017-09-29 | 2019-04-08 | 숭실대학교산학협력단 | 리눅스 기반 안드로이드 컨테이너 플랫폼, 이를 탑재한 장치 및 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법 |
CN108304248A (zh) * | 2017-12-19 | 2018-07-20 | 西安电子科技大学 | 一种多系统虚拟化的移动设备 |
CN110032413A (zh) * | 2019-03-05 | 2019-07-19 | 华为技术有限公司 | 一种桌面虚拟化方法、相关设备及计算机存储介质 |
Non-Patent Citations (3)
Title |
---|
a lightweight virtualization solution for android device;wenzhi chen,etc;《IEEE Transactions on computers》;20150109;全文 * |
基于安全容器的Android虚拟化技术研究与实现;孙超群;《信息科技辑》;20170215;全文 * |
采用容器技术的多Android系统的研究与实现;杨霞等;《小型微型计算机系统》;20160715;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111339541A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111339541B (zh) | 基于binder驱动的进程间通信IPC机制的复用方法及装置 | |
US6604140B1 (en) | Service framework for computing devices | |
US7756888B2 (en) | Method and apparatus for providing heterogeneous resources for client systems | |
USRE44836E1 (en) | System and method for efficient transfer of applications and data during device swap | |
CN111338828B (zh) | 终端设备及其应用程序接口调用控制方法 | |
CN113939805A (zh) | 一种进程间通信的方法及系统 | |
CN101123750B (zh) | 便于推送内容的后台处理的装置和相关方法 | |
CN108073423B (zh) | 一种加速器加载方法、系统和加速器加载装置 | |
US7979867B2 (en) | Managing a device in a distributed file system, using plug and play | |
CN111443961B (zh) | 终端设备及其跨进程通信方法 | |
CN114968384B (zh) | 一种功能调用方法和装置 | |
CN112995239B (zh) | 一种数据处理方法和装置 | |
CN112073448A (zh) | 一种双系统终端的服务隔离方法和装置 | |
CN108304270B (zh) | 一种通信方法、设备及计算机可读存储介质 | |
CN113868295A (zh) | 数据查询方法、装置及多方安全数据库 | |
CN111142885B (zh) | 一种eSIM设备管理方法、装置、设备及存储介质 | |
JP2004334537A (ja) | プログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラム | |
CN110198225A (zh) | 一种多集群的管理方法及管理服务器 | |
EP1039381A2 (en) | Imformation processing apparatus, program initializing method, and program providing medium | |
CN111404979B (zh) | 业务请求处理的方法、装置及计算机可读存储介质 | |
CN116774949B (zh) | 一种资源包的存储方法及服务器 | |
CN111404710B (zh) | 一种资源管理方法、装置及设备 | |
CN116088998A (zh) | 通用串行总线usb设备重定向的方法和装置 | |
KR20210033735A (ko) | 가상 모바일 구조에서 효율적인 통지를 수행하는 가상화 장치 및 그 통지 서비스 방법 | |
CN117631994A (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 |