CN114338408A - 多系统中网络设备虚拟化实现方法及装置、电子设备、存储介质 - Google Patents
多系统中网络设备虚拟化实现方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN114338408A CN114338408A CN202111609745.4A CN202111609745A CN114338408A CN 114338408 A CN114338408 A CN 114338408A CN 202111609745 A CN202111609745 A CN 202111609745A CN 114338408 A CN114338408 A CN 114338408A
- Authority
- CN
- China
- Prior art keywords
- network
- network device
- virtual
- equipment
- driver
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000008569 process Effects 0.000 claims abstract description 34
- 238000004891 communication Methods 0.000 claims description 26
- 230000007246 mechanism Effects 0.000 claims description 26
- 230000008676 import Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 12
- 238000004590 computer program Methods 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000002955 isolation Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 244000061458 Solanum melongena Species 0.000 description 1
- 235000002597 Solanum melongena Nutrition 0.000 description 1
- 244000062793 Sorghum vulgare Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 235000019713 millet Nutrition 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本申请是关于一种多系统中网络设备虚拟化实现方法及装置、电子设备、存储介质。所述方法包括:在第一系统中设置虚拟网络设备驱动,为虚拟网络设备驱动设置虚拟网络设备文件层,并建立虚拟网络设备驱动与第二系统中的网络设备驱动之间的连接;其中,第一系统部署于第二系统中;第二系统中的网络管理进程从网络设备驱动获取网络设备的设备状态信息,并将设备状态信息导入虚拟网络设备驱动;第一系统中的网络守护进程从虚拟网络设备驱动获取设备状态信息,并将设备状态信息向网络架构层发送;网络架构层通过架构接口向第一系统中的应用提供网络设备的设备状态信息。本申请打通了多操作系统之间的基于网络设备的隔阂,实现了多系统中网络数据传输。
Description
技术领域
本申请实施例涉及跨操作系统中网络设备的虚拟化调用技术,尤其涉及一种多系统中网络设备虚拟化实现方法及装置、电子设备、存储介质。
背景技术
目前在Linux内核下通过Linux容器(Linux container,LXC)来兼容Android系统的方案中,通常使用网络隔离的方式将Linux系统和Android系统的网络进行隔离,然后通过路由转发的方式将Android系统的网络包转发到Linux系统或者接收转发自Linux系统的网络包。当Android系统使用网络设备进行数据通讯的情况下,无法及时获取蜂窝网络的状态变化情况,例如电子设备运动时,会导致网络设备的网络覆盖变化,由于存在网络隔离,Android系统无法获得网络设备的状态信息。这将导致Android系统无法准确获知网络设备的工作状态,如不能获取到网络设备的IP地址,而不能进行网络数据的有效传输。
发明内容
有鉴于此,本申请实施例提供一种多系统中网络设备虚拟化实现方法及装置、电子设备、存储介质,以至少部分地解决现有技术中存在的以上技术问题。
根据本申请实施例的第一方面,提供一种多系统中网络设备虚拟化实现方法,在第一系统中设置虚拟网络设备驱动,为所述虚拟网络设备驱动设置虚拟网络设备文件层,并建立所述虚拟网络设备驱动与第二系统中的网络设备驱动之间的连接;其中,所述第一系统部署于所述第二系统中;所述方法包括:
所述第二系统中的网络管理进程从所述网络设备驱动获取网络设备的设备状态信息,并将所述设备状态信息导入所述虚拟网络设备驱动;
所述第一系统中的网络守护进程从所述虚拟网络设备驱动获取所述设备状态信息,并将所述设备状态信息向网络架构层发送;
所述网络架构层通过架构接口向所述第一系统中的应用提供所述网络设备的设备状态信息。
在某些实施例中,所述虚拟网络设备驱动与所述网络设备驱动之间通过内核通信机制连接;
所述方法还包括:
所述第一系统中的应用产生第一网络数据的情况下,查找所述虚拟网络设备的路由地址,并基于所述路由地址将所述第一网络数据通过所述虚拟网络设备文件层向所述虚拟网络设备驱动发送;
所述虚拟网络设备驱动通过内核通信机制,将所述第一网络数据向所述网络设备驱动发送,由所述网络设备驱动传输所述第一网络数据。
在某些实施例中,所述方法还包括:
所述网络设备驱动接收到响应于所述第一网络数据的第二网络数据的情况下,通过内核通信机制将所述第二网络数据向所述虚拟网络设备驱动发送;
所述虚拟网络设备驱动通过所述虚拟网络设备文件层将所述第二网络数据发送至所述第一系统中的对应应用。
在某些实施例中,所述虚拟网络设备的路由地址与配置给所述网络设备的路由地址相同。
在某些实施例中,所述方法还包括:
所述网络守护进程接收到针对所述虚拟网络设备的网络参数的配置指令的情况下,屏蔽所述配置指令,不对所述网络设备的网络参数进行配置。
在某些实施例中,所述第一系统包括Android操作系统、Android开放源代码项目AOSP和基于AOSP的衍生系统;
所述衍生系统包括以下至少之一:MIUI、EMUI、One UI。
在某些实施例中,所述网络设备包括客户识别模块SIM卡,或无线保真wifi网卡;
对应地,所述网络守护进程包括Network Daemon,或wpa_supplicant;所述网络管理进程包括Network Manager,或wpa_supplicant。
在某些实施例中,所述第二系统包括GNU/Linux操作系统;
所述GNU/Linux操作系统包括以下至少之一:Ubuntu、Debian、RedHat。
根据本申请实施例的第二方面,提供一种多系统中网络设备虚拟化实现装置,包括:
设置单元,用于在第一系统中设置虚拟网络设备驱动,为所述虚拟网络设备驱动设置虚拟网络设备文件层,并建立所述虚拟网络设备驱动与第二系统中的网络设备驱动之间的连接;其中,所述第一系统部署于所述第二系统中;
第一触发单元,用于触发所述第二系统中的网络管理进程从所述网络设备驱动获取网络设备的设备状态信息,并将所述设备状态信息导入所述虚拟网络设备驱动;
第二触发单元,用于触发所述第一系统中的网络守护进程从所述虚拟网络设备驱动获取所述设备状态信息,并将所述设备状态信息向网络架构层发送;
第三触发单元,用于所述网络架构层通过架构接口向所述第一系统中的应用提供所述网络设备的设备状态信息。
在某些实施例中,所述虚拟网络设备驱动与所述网络设备驱动之间通过内核通信机制连接;
第四触发单元,用于在所述第一系统中的应用产生第一网络数据的情况下,触发查找所述虚拟网络设备的路由地址,并基于所述路由地址将所述第一网络数据通过所述虚拟网络设备文件层向所述虚拟网络设备驱动发送;
并触发所述虚拟网络设备驱动通过内核通信机制,将所述第一网络数据向所述网络设备驱动发送,由所述网络设备驱动传输所述第一网络数据。
在某些实施例中,所述装置还包括:
第五触发单元,用于在所述网络设备驱动接收到响应于所述第一网络数据的第二网络数据的情况下,通过内核通信机制将所述第二网络数据向所述虚拟网络设备驱动发送;
并触发所述虚拟网络设备驱动通过所述虚拟网络设备文件层将所述第二网络数据发送至所述第一系统中的对应应用。
在某些实施例中,所述虚拟网络设备的路由地址与配置给所述网络设备的路由地址相同。
在某些实施例中,所述装置还包括:
第六触发单元,用于在所述网络守护进程接收到针对所述虚拟网络设备的网络参数的配置指令的情况下,触发所述网络守护进程屏蔽所述配置指令,不对所述网络设备的网络参数进行配置。
在某些实施例中,所述第一系统包括Android操作系统、Android开放源代码项目AOSP和基于AOSP的衍生系统;
所述衍生系统包括以下至少之一:MIUI、EMUI、One UI。
在某些实施例中,所述网络设备包括SIM卡,或wifi网卡;
对应地,所述网络守护进程包括Network Daemon,或wpa_supplicant;所述网络管理进程包括Network Manager,或wpa_supplicant。
在某些实施例中,所述第二系统包括GNU/Linux操作系统;
所述GNU/Linux操作系统包括以下至少之一:Ubuntu、Debian、RedHat。
根据本申请实施例的第三方面,提供一种电子设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现所述的多系统中网络设备虚拟化实现方法的步骤。
根据本申请实施例的第四方面,提供一种可读非暂时性存储介质,所述存储介质上存储程序或指令,所述程序或指令被处理器执行时实现所述的多系统中网络设备虚拟化实现方法的步骤。
本申请实施例中,通过在多系统中的第一系统中设置虚拟网络设备及虚拟网络设备驱动,并使虚拟网络设备驱动与第二系统中的网络设备驱动之间建立连接,这样,第二系统中的网络管理进程从网络设备驱动获取网络状态信息后,同步到虚拟网络设备驱动中,而第一系统中的网络守护进程从虚拟网络设备驱动中获取网络状态信息后,将网络状态信息通过第一系统的框架层同步到第一系统的相关应用中。这样,第一系统中的相关应用可以基于网络设备的实际网络状态信息,而通过对虚拟网络设备的调用而基于第二系统中的网络设备实现网络数据的传输。本申请实施例实现了多系统情况下第一系统对第二系统中的网络设备的调用,基于第二系统中的实际网络设备而实现第一系统的网络数据传输,从而打通了第一系统及第二系统之间的基于网络设备的隔阂,实现了多系统中各系统中网络数据的传输,提升了多系统中网络数据传输的便利性,提升了用户体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍。显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的多系统中网络设备虚拟化实现方法的流程示意图;
图2为本申请实施例的多系统中网络设备虚拟化实现架构示例;
图3为本申请实施例的多系统中网络设备虚拟化实现架构示例;
图4为本申请实施例的多系统中网络设备虚拟化实现装置的组成结构示意图;
图5为本申请实施例的电子设备的结构图。
具体实施方式
以下结合附图,详细阐明本申请实施例技术方案的实质。
图1为本申请实施例的多系统中网络设备虚拟化实现方法的流程示意图,如图1所示,本申请实施例的多系统中网络设备虚拟化实现方法包括以下处理步骤:
步骤101,在第一系统中设置虚拟网络设备驱动,为所述虚拟网络设备驱动设置虚拟网络设备文件层,并建立所述虚拟网络设备驱动与第二系统中的网络设备驱动之间的连接。
本申请实施例中,所述第一系统部署于所述第二系统中。作为一种示例,所述第一系统包括Android操作系统、Android开放源代码项目AOSP和基于AOSP的衍生系统;所述AOSP的衍生系统包括以下至少之一:如小米公司推出的米柚(MIUI)操作系统、华为公司推出的移动终端操作系统(EMUI)、三星公司推出的操作系统(One UI)等。作为一种示例,所述第二系统包括GNU/Linux操作系统;所述GNU/Linux操作系统包括以下至少之一:Ubuntu、Debian、RedHat。需要说明的是,第二操作系统并不限定是运行在物理机上的,也可以是托管在其它操作系统上的操作系统,例如Windows系统中的WSL等。
本领域技术人员应当理解,本申请实施例的技术方案适用于所有多操作系统下的某操作系统不能对网络设备如SIM卡、wifi网卡等进行访问的场景下。上述多操作系统不限于Linux系统及Android系统的情形,本申请实施例仅是将上述两操作系统作为一种应用典型而进行的示例性说明。
作为一种示例,网络设备包括客户识别模块(Subscriber Identity Module,SIM)卡,或无线保真(WirelessFidelity,wifi)网卡等网络设备,通过网络设备能够实现网络数据的传输,本申请实施例仅以SIM卡及wifi网卡为例进行说明,并非是对其进行的限定。本申请实施例的网络设备还可以包括近场通信(Near Field Communication,NFC)芯片、蓝牙芯片等。
本申请实施例中,虚拟网络设备驱动与网络设备驱动之间通过进程间通信(Inter-Process Communication,IPC)机制连接。
作为一种示例,虚拟网络设备驱动的虚拟网络设备文件层包括virt_sipa_eth文件层,或virt_wifi文件层等。
步骤101是基础步骤,是实现本申请实施例的技术方案的基础。
步骤102,第二系统中的网络管理进程从所述网络设备驱动获取网络设备的设备状态信息,并将所述设备状态信息导入所述虚拟网络设备驱动。
本申请实施例中,网络管理进程包括Network Manager,或wpa_supplicant。其中,当网络设备包括SIM卡如2G、3G、4G或5G网卡等的情况下,网络管理进程包括NetworkManager。而当网络设备包括wifi网卡的情况下,网络管理进程包括wpa_supplicant。
虚拟网络设备驱动与网络设备驱动之间通过内核通信机制如net link dev连接。具体地,虚拟网络设备驱动通过net link dev机制,连接到第二系统中真实的网络设备。在虚拟网络设备驱动中增加网络设备的设备状态信息导入接口,这样,第二系统中的网络管理进程从网络设备驱动获取到网络设备的设备状态信息后,通过导入接口将设备状态信息导入到虚拟网络设备驱动,方便第一系统中的相关应用调用虚拟网络设备的相关状态,发起网络数据的传输。
步骤103,第一系统中的网络守护进程从所述虚拟网络设备驱动获取所述设备状态信息,并将所述设备状态信息向网络架构层发送。
本申请实施例中,网络守护进程包括Network Daemon,或wpa_supplicant等。当网络设备包括SIM卡如2G、3G、4G或5G网卡的情况下,网络管理进程包括Network Daemon。而当网络设备包括wifi网卡的情况下,网络管理进程包括wpa_supplicant。
步骤104,网络架构层通过架构接口向所述第一系统中的应用提供所述网络设备的设备状态信息。
本申请实施例中,第一系统的网络守护进程在获取网络设备的设备状态信息的情况下,在第一系统的框架(framework)层封装与第一系统中的应用对接的接口库文件,网络守护进程通过将获取的设备状态信息发送到接口库文件中,通过接口库文件再将设备状态信息发送到该接口库文件的对应应用中。
第一系统中的应用产生第一网络数据的情况下,查找所述虚拟网络设备的路由地址,并基于所述路由地址将所述第一网络数据通过所述虚拟网络设备文件层向所述虚拟网络设备驱动发送;所述虚拟网络设备驱动通过内核通信机制,将所述第一网络数据向所述网络设备驱动发送,由所述网络设备驱动传输所述第一网络数据。
网络设备驱动接收到响应于所述第一网络数据的第二网络数据的情况下,通过内核通信机制将所述第二网络数据向所述虚拟网络设备驱动发送;所述虚拟网络设备驱动通过所述虚拟网络设备文件层将所述第二网络数据发送至所述第一系统中的对应应用。
本申请实施例中,虚拟网络设备的路由地址与配置给所述网络设备的路由地址相同。网络守护进程接收到针对所述虚拟网络设备的网络参数的配置指令的情况下,屏蔽所述配置指令,不对所述网络设备的网络参数进行配置。
以下结合具体示例,对本申请实施例的技术方案作进一步的详细说明。这里,以第一系统为Android系统,第二系统为Linux系统为例进行说明,其他多操作系统也适用于本申请实施例的技术方案。
目前在Linux内核的操作系统下通过Linux容器来兼容Android系统的方案中,通常使用网络隔离的方式将Linux系统和Android系统的网络进行隔离,然后通过路由转发的方式将Android系统的网络包转发到Linux系统或者接收转发自Linux系统的网络包。这种方式在Android系统使用3G、4G或5G等的蜂窝网络进行数据通讯时,无法及时获取蜂窝网络的状态变化情况,例如设备在高速行进的列车中使用时,由于网络覆盖问题导致蜂窝网络数据连接断开的场景中,Android系统无法获得网络断开的情况。
本申请实施例的网络设备虚拟化实现的技术方案,可以解决Linux系统和Android系统在使用4G、5G等蜂窝网络时网络状态一致性的问题。
图2为本申请实施例的多系统中网络设备虚拟化实现架构示例,如图2所示,本申请实施例中,Android系统和Linux系统之间不采用net namespace进行网络隔离,因此Android系统和Linux系统都可以访问到真实的网卡设备。具体地,在Linux系统中创建4G/5G网卡设备sipa_eth0的实例,为了能够管理Android域和Linux域的网络应用,在Android系统中创建一个虚拟的4G/5G网卡文件层virt_sipa_eth0及对应的虚拟的4G/5G网卡驱动virt_sipa_eth0 driver,virt_sipa_eth0 driver通过net dev link的方式连接到真实的4G/5G网卡设备的驱动sipa_eth0 driver上。本申请实施例中,虚拟的4G/5G网卡virt_sipa_eth0相当于真实的4G/5G网卡sipa_eth0在Android系统中的一个分身,因此虚拟的4G/5G网卡virt_sipa_eth0和真实的4G/5G网卡sipa_eth0具有相同的IP地址配置。
本申请实施例中,通过配置策略路由,使Android系统和Linux系统在路由转发时查找不同的路由表,实现网络区分。其中,Linux系统的应用,通过查找Linux路由表,使用真实的4G/5G网卡设备sipa_eth0收发网络数据;Android系统中的应用,通过查找Android系统的路由表,使用虚拟的4G/5G网卡设备virt_sipa_eth0收发网络数据包,然后虚拟的4G/5G网卡设备virt_sipa_eth0的驱动程序再调用真实的4G/5G网卡设备sipa_eth0的驱动实现网络数据包的收发。
本申请实施例中,在虚拟4G/5G网卡驱动virt_sipa_eth0 driver上增加用户态4G/5G设备状态信息导入接口。在虚拟4G/5G网卡设置移动网络状态查询的接口,用户态调用这些接口进行相关状态信息查询时,返回4G/5G网卡设备的状态信息。
本申请实施例中,虚拟4G/5G网卡屏蔽移动网络设置接口,即使用户态调用设置接口,也不会将相关配置信息配置到真实的4G/5G网卡设备。
如图2所示,本申请实施例中,在Android系统的网络域创建上述虚拟4G/5G网卡,该4G/5G网卡link到真实的4G/5G网卡驱动。Linux系统的网络管理(Network Manager)服务,配置4G/5G网卡设备,并从真实的4G/5G网卡驱动获取到设备状态信息。本申请实施例中,通过Linux系统的Network Manager,可以对4G/5G网卡进行相关参数配置,并在4G/5G网卡的相关参数更新时,将4G/5G网卡的相关参数同步至虚拟4G/5G网卡中,实现虚拟4G/5G网卡的同步更新。Linux系统的网络管理服务通过虚拟4G/5G网卡的设备状态信息导入接口,将从4G/5G网卡获取的设备状态信息导入到虚拟4G/5G网卡驱动中。Android域的网络守护进程如netd通过4G/5G网卡驱动接口,查询4G/5G网卡设备状态信息,从而可以获取从linux同步过来的移动网络状态信息。Android域的netd将相关状态信息发送到Android相同的框架层telephony framework,同步真实的移动网络状态。Android app可以通过相关framework接口,查询到真实的移动网络状态信息。
Android系统的应用(app)产生网络数据的情况下,Android app通过路由找到虚拟4G/5G网卡,虚拟4G/5G网卡驱动的数据发送接口通过内核net link dev机制,将网络数据通过调用真实4G/5G网卡的数据发送接口向真实4G/5G网卡驱动,通过真实4G/5G网卡驱动将网络数据发送出去。同样地,当真实4G/5G网卡通过数据发送接口接收到相关网络数据的情况下,基于所接收的网络数据中的对象标识信息,将所接收的网络数据通过内核通信机制向虚拟4G/5G网卡驱动发送,虚拟4G/5G网卡驱动通过虚拟网络设备文件层(virt_sipa_eth0)将所接收的网络数发送至Android系统的对应app中,从而实现Android系统中的虚拟4G/5G网卡的网络数据传输。本申请实施例中,仅以4G/5G网卡为例进行了说明,并非是对本申请实施例的技术方案应用场景的限定。本申请实施例适用于任何网络设备的网络数据传输。
图3为本申请实施例的多系统中网络设备虚拟化实现架构示例,如图3所示,本申请实施例中,网络设备以wifi设备为例进行说明,本申请实施例支持同步真实wifi网络设备的网络状态、wifi扫描列表、IP地址等状态信息,支持用户态进程通过虚拟网卡进行数据通信,不支持通过虚拟wifi网络设备对于真实wifi网络进行网络参数的配置。
本申请实施例可以用于Linux兼容Android系统方案中的Android虚拟wifi网络实现。其采用虚拟wifi设备方案之后,可以实现Linux系统与Android系统的wifi解耦,Android系统不再依赖真实的wifi网络设备,无需修改Android wifi框架,并且同时可以得到真实的wifi网络状态信息如wifi网络连接状态,wifi扫描列表,IP地址等。
如果Android系统中的wifi网络设备的网络状态信息不是同步的真实wifi网络状态,则可能会出现以下问题:Android系统中的应用无法获知真实的正在使用的wifi ssid以及ip地址,应用的网络间同步功能无法使用。类似于茄子快传,微信数据迁移等功能无法使用,并且,Android应用无法通过wifi与智能物联网设备连接。而无法获得当前的设备使用的真实网络(modem数据网络或者wifi网络)的情况下,无法确定应用的下载策略,wifi网络定位也无法使用等。
本申请实施例中,虚拟wifi网卡驱动通过net link dev机制,link到真实的wifi网络设备。在虚拟wifi网卡驱动中增加用户态wifi设备状态数据导入接口,虚拟wifi网卡实现wifi状态查询的驱动接口,用户态调用这些接口时,返回通过用户态wifi设备状态信息导入接口导入的相关数据。
本申请实施例中,虚拟wifi网卡对wifi设置接口进行屏蔽,这样,当用户态调用wifi设置接口进行网络状态配置时,屏蔽相关的配置动作,不会将用户态的配置参数配置到真实wifi设备中。
本申请实施例中,在Android网络域创建虚拟网卡virt wifi,该virt wifi网卡通过虚拟wifi设备驱动virt-wif Driver连接到真实的wifi网卡的wifi驱动。本申请实施例通过Linux系统的网络管理线程wpa_supplicant,来配置wifi网卡设备,并从真实的wifi网卡驱动获取到wifi设备状态信息。Linux系统的wpa_supplicant通过虚拟网卡的设备状态数据导入接口,将获取到wifi设备状态信息导入到虚拟wifi网卡驱动中。Android域的网络守护进程wpa_supplicant通过虚拟wifi网卡驱动的wifi驱动接口,查询虚拟wifi网卡的设备状态信息,从而可以获取从Linux系统的真实wifi设备同步过来的wifi状态信息。Android域的网络守护进程wpa_supplicant将相关网络设备状态信息发送到网络架构层(wifi framework),Android App可以通过相关framework接口,查询到真实的wifi设备的设备状态信息。因此,本申请实施例的Android系统中的虚拟wifi状态机可以正常运转,同步真实的wifi网络状态。
Android App产生网络数据的情况下,通过路由找到虚拟wifi网卡,虚拟wifi网卡驱动的数据发送接口通过内核net dev link机制,将网络数据通过调用真实wifi网卡的数据发送接口的方式向真实的wifi网卡驱动发送,通过真实wifi网卡驱动将网络数据发送出去。同样地,当真实wifi网卡通过数据发送接口接收到相关网络数据的情况下,基于所接收的网络数据中的对象标识信息,将所接收的网络数据通过内核通信机制向虚拟wifi网卡驱动发送,虚拟wifi网卡驱动通过虚拟网络设备文件层(virt wifi)将真实的wifi网卡所接收的网络数发送至Android系统的对应app中,从而Android系统基于虚拟wifi网卡实现了网络数据的传输。本申请实施例中,仅以wifi网卡为例进行了说明,并非是对本申请实施例的技术方案应用场景的限定。本申请实施例适用于任何网络设备的网络数据传输。
图4为本申请实施例的多系统中网络设备虚拟化实现装置的组成结构示意图,如图4所示,本申请实施例的多系统中网络设备虚拟化实现装置包括:
设置单元40,用于在第一系统中设置虚拟网络设备驱动,为所述虚拟网络设备驱动设置虚拟网络设备文件层,并建立所述虚拟网络设备驱动与第二系统中的网络设备驱动之间的连接;其中,所述第一系统部署于所述第二系统中;
第一触发单元41,用于触发所述第二系统中的网络管理进程从所述网络设备驱动获取网络设备的设备状态信息,并将所述设备状态信息导入所述虚拟网络设备驱动;
第二触发单元42,用于触发所述第一系统中的网络守护进程从所述虚拟网络设备驱动获取所述设备状态信息,并将所述设备状态信息向网络架构层发送;
第三触发单元43,用于所述网络架构层通过架构接口向所述第一系统中的应用提供所述网络设备的设备状态信息。
作为一种实现方式,所述虚拟网络设备驱动与所述网络设备驱动之间通过内核通信机制连接;在图4所示的多系统中网络设备虚拟化实现装置的基础上,本申请实施例的多系统中网络设备虚拟化实现装置还包括:
第四触发单元(图4中未示出),用于在所述第一系统中的应用产生第一网络数据的情况下,触发查找所述虚拟网络设备的路由地址,并基于所述路由地址将所述第一网络数据通过所述虚拟网络设备文件层向所述虚拟网络设备驱动发送;
并触发所述虚拟网络设备驱动通过内核通信机制,将所述第一网络数据向所述网络设备驱动发送,由所述网络设备驱动传输所述第一网络数据。
作为一种实现方式,在图4所示的多系统中网络设备虚拟化实现装置的基础上,本申请实施例的多系统中网络设备虚拟化实现装置还包括:
第五触发单元(图4中未示出),用于在所述网络设备驱动接收到响应于所述第一网络数据的第二网络数据的情况下,通过内核通信机制将所述第二网络数据向所述虚拟网络设备驱动发送;
并触发所述虚拟网络设备驱动通过所述虚拟网络设备文件层将所述第二网络数据发送至所述第一系统中的对应应用。
作为一种实现方式,所述虚拟网络设备的路由地址与配置给所述网络设备的路由地址相同。
作为一种实现方式,在图4所示的多系统中网络设备虚拟化实现装置的基础上,本申请实施例的多系统中网络设备虚拟化实现装置还包括:
第六触发单元(图4中未示出),用于在所述网络守护进程接收到针对所述虚拟网络设备的网络参数的配置指令的情况下,触发所述网络守护进程屏蔽所述配置指令,不对所述网络设备的网络参数进行配置。
作为一种实现方式,所述第一系统包括Android操作系统、Android开放源代码项目AOSP和基于AOSP的衍生系统;
所述衍生系统包括以下至少之一:MIUI、EMUI、One UI。
作为一种实现方式,所述网络设备包括SIM卡,或wifi网卡;
对应地,所述网络守护进程包括Network Daemon,或wpa_supplicant;所述网络管理进程包括Network Manager,或wpa_supplicant。
作为一种实现方式,所述第二系统包括GNU/Linux操作系统;
所述GNU/Linux操作系统包括以下至少之一:Ubuntu、Debian、RedHat。
在示例性实施例中,设置单元40、第一触发单元41、第二触发单元42、第三触发单元43、第四触发单元、第五触发单元和第六触发单元等可以被一个或多个中央处理器(CPU,Central Processing Unit)、应用专用集成电路(ASIC,Application SpecificIntegrated Circuit)、数字信号处理器(Digital Signal Processor,DSP)、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述实施例的多系统中多系统中网络设备虚拟化实现方法的步骤。
在本公开实施例中,图4示出的多系统中网络设备虚拟化实现装置中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
下面,参考图5来描述根据本申请实施例的电子设备11。
如图5所示,电子设备11包括一个或多个处理器111和存储器112。
处理器111可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备11中的其他组件以执行期望的功能。
存储器112可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器111可以运行所述程序指令,以实现上文所述的本申请的各个实施例的实施例的多系统中网络设备虚拟化实现方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备11还可以包括:输入装置113和输出装置114,这些组件通过总线系统和/或其他形式的连接机构(图5中未示出)互连。
该输入装置113可以包括例如键盘、鼠标等等。
该输出装置114可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置114可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图5中仅示出了该电子设备11中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备11还可以包括任何其他适当的组件。
本申请实施例还记载了一种可读非暂时性存储介质,所述存储介质上存储程序或指令,所述程序或指令被处理器执行时实现前述实施例的多系统中网络设备虚拟化实现方法的步骤。
除了上述方法和设备以外,本申请实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来而无法获得当前的设备使用的真实网络(modem数据网络或者wifi网络)的情况下,无法确定应用的下载策略,wifi网络定位也无法使用等。编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (18)
1.一种多系统中网络设备虚拟化实现方法,其特征在于,在第一系统中设置虚拟网络设备驱动,为所述虚拟网络设备驱动设置虚拟网络设备文件层,并建立所述虚拟网络设备驱动与第二系统中的网络设备驱动之间的连接;其中,所述第一系统部署于所述第二系统中;所述方法包括:
所述第二系统中的网络管理进程从所述网络设备驱动获取网络设备的设备状态信息,并将所述设备状态信息导入所述虚拟网络设备驱动;
所述第一系统中的网络守护进程从所述虚拟网络设备驱动获取所述设备状态信息,并将所述设备状态信息向网络架构层发送;
所述网络架构层通过架构接口向所述第一系统中的应用提供所述网络设备的设备状态信息。
2.根据权利要求1所述的方法,其特征在于,所述虚拟网络设备驱动与所述网络设备驱动之间通过内核通信机制连接;
所述方法还包括:
所述第一系统中的应用产生第一网络数据的情况下,查找所述虚拟网络设备的路由地址,并基于所述路由地址将所述第一网络数据通过所述虚拟网络设备文件层向所述虚拟网络设备驱动发送;
所述虚拟网络设备驱动通过内核通信机制,将所述第一网络数据向所述网络设备驱动发送,由所述网络设备驱动传输所述第一网络数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述网络设备驱动接收到响应于所述第一网络数据的第二网络数据的情况下,通过内核通信机制将所述第二网络数据向所述虚拟网络设备驱动发送;
所述虚拟网络设备驱动通过所述虚拟网络设备文件层将所述第二网络数据发送至所述第一系统中的对应应用。
4.根据权利要求2所述的方法,其特征在于,所述虚拟网络设备的路由地址与配置给所述网络设备的路由地址相同。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述网络守护进程接收到针对所述虚拟网络设备的网络参数的配置指令的情况下,屏蔽所述配置指令,不对所述网络设备的网络参数进行配置。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述第一系统包括Android操作系统、Android开放源代码项目AOSP和基于AOSP的衍生系统;
所述衍生系统包括以下至少之一:MIUI、EMUI、One UI。
7.根据权利要求6所述的方法,其特征在于,所述网络设备包括客户识别模块SIM卡,或无线保真wifi网卡;
对应地,所述网络守护进程包括Network Daemon,或wpa_supplicant;所述网络管理进程包括Network Manager,或wpa_supplicant。
8.根据权利要求1至5任一项所述的方法,其特征在于,所述第二系统包括GNU/Linux操作系统;
所述GNU/Linux操作系统包括以下至少之一:Ubuntu、Debian、RedHat。
9.一种多系统中网络设备虚拟化实现装置,其特征在于,所述装置包括:
设置单元,用于在第一系统中设置虚拟网络设备驱动,为所述虚拟网络设备驱动设置虚拟网络设备文件层,并建立所述虚拟网络设备驱动与第二系统中的网络设备驱动之间的连接;其中,所述第一系统部署于所述第二系统中;
第一触发单元,用于触发所述第二系统中的网络管理进程从所述网络设备驱动获取网络设备的设备状态信息,并将所述设备状态信息导入所述虚拟网络设备驱动;
第二触发单元,用于触发所述第一系统中的网络守护进程从所述虚拟网络设备驱动获取所述设备状态信息,并将所述设备状态信息向网络架构层发送;
第三触发单元,用于所述网络架构层通过架构接口向所述第一系统中的应用提供所述网络设备的设备状态信息。
10.根据权利要求9所述的装置,其特征在于,所述虚拟网络设备驱动与所述网络设备驱动之间通过内核通信机制连接;
第四触发单元,用于在所述第一系统中的应用产生第一网络数据的情况下,触发查找所述虚拟网络设备的路由地址,并基于所述路由地址将所述第一网络数据通过所述虚拟网络设备文件层向所述虚拟网络设备驱动发送;
并触发所述虚拟网络设备驱动通过内核通信机制,将所述第一网络数据向所述网络设备驱动发送,由所述网络设备驱动传输所述第一网络数据。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第五触发单元,用于在所述网络设备驱动接收到响应于所述第一网络数据的第二网络数据的情况下,通过内核通信机制将所述第二网络数据向所述虚拟网络设备驱动发送;
并触发所述虚拟网络设备驱动通过所述虚拟网络设备文件层将所述第二网络数据发送至所述第一系统中的对应应用。
12.根据权利要求10所述的装置,其特征在于,所述虚拟网络设备的路由地址与配置给所述网络设备的路由地址相同。
13.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第六触发单元,用于在所述网络守护进程接收到针对所述虚拟网络设备的网络参数的配置指令的情况下,触发所述网络守护进程屏蔽所述配置指令,不对所述网络设备的网络参数进行配置。
14.根据权利要求9至13任一项所述的装置,其特征在于,所述第一系统包括Android操作系统、Android开放源代码项目AOSP和基于AOSP的衍生系统;
所述衍生系统包括以下至少之一:MIUI、EMUI、One UI。
15.根据权利要求14所述的装置,其特征在于,所述网络设备包括SIM卡,或wifi网卡;
对应地,所述网络守护进程包括Network Daemon,或wpa_supplicant;所述网络管理进程包括Network Manager,或wpa_supplicant。
16.根据权利要求9至13任一项所述的装置,其特征在于,所述第二系统包括GNU/Linux操作系统;
所述GNU/Linux操作系统包括以下至少之一:Ubuntu、Debian、RedHat。
17.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现权利要求1至8中任一项所述的多系统中网络设备虚拟化实现方法的步骤。
18.一种可读非暂时性存储介质,其特征在于,所述存储介质上存储程序或指令,所述程序或指令被处理器执行时实现权利要求1至8中任一项所述的多系统中网络设备虚拟化实现方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111609745.4A CN114338408A (zh) | 2021-12-27 | 2021-12-27 | 多系统中网络设备虚拟化实现方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111609745.4A CN114338408A (zh) | 2021-12-27 | 2021-12-27 | 多系统中网络设备虚拟化实现方法及装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114338408A true CN114338408A (zh) | 2022-04-12 |
Family
ID=81013099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111609745.4A Pending CN114338408A (zh) | 2021-12-27 | 2021-12-27 | 多系统中网络设备虚拟化实现方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338408A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007004774A (ja) * | 2005-05-27 | 2007-01-11 | Yokogawa Electric Corp | 多論理ノード装置 |
JP2012093917A (ja) * | 2010-10-26 | 2012-05-17 | Nippon Telegr & Teleph Corp <Ntt> | 仮想制御プログラム、情報処理装置及び仮想制御方法 |
CN103428226A (zh) * | 2013-08-30 | 2013-12-04 | 天津汉柏汉安信息技术有限公司 | 一种用户态与内核通信的方法与系统 |
CN105162633A (zh) * | 2015-09-21 | 2015-12-16 | 北京元心科技有限公司 | 一种在基于容器的多操作系统中管理网络的方法和装置 |
CN106020942A (zh) * | 2016-05-05 | 2016-10-12 | 四川安嵌科技有限公司 | 一种基于多系统的WiFi设备复用方法及装置 |
CN106506228A (zh) * | 2016-11-29 | 2017-03-15 | 北京元心科技有限公司 | 多系统中共享移动网络方法及终端系统 |
KR20190073114A (ko) * | 2017-12-18 | 2019-06-26 | 주식회사 케이티 | 단말, 상기 단말의 동작 방법 및 다중경로 통신 시스템 |
US10733067B1 (en) * | 2018-04-14 | 2020-08-04 | Juniper Networks, Inc. | Apparatus, system, and method for efficiently deploying backup virtual network devices |
-
2021
- 2021-12-27 CN CN202111609745.4A patent/CN114338408A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007004774A (ja) * | 2005-05-27 | 2007-01-11 | Yokogawa Electric Corp | 多論理ノード装置 |
JP2012093917A (ja) * | 2010-10-26 | 2012-05-17 | Nippon Telegr & Teleph Corp <Ntt> | 仮想制御プログラム、情報処理装置及び仮想制御方法 |
CN103428226A (zh) * | 2013-08-30 | 2013-12-04 | 天津汉柏汉安信息技术有限公司 | 一种用户态与内核通信的方法与系统 |
CN105162633A (zh) * | 2015-09-21 | 2015-12-16 | 北京元心科技有限公司 | 一种在基于容器的多操作系统中管理网络的方法和装置 |
CN106020942A (zh) * | 2016-05-05 | 2016-10-12 | 四川安嵌科技有限公司 | 一种基于多系统的WiFi设备复用方法及装置 |
CN106506228A (zh) * | 2016-11-29 | 2017-03-15 | 北京元心科技有限公司 | 多系统中共享移动网络方法及终端系统 |
KR20190073114A (ko) * | 2017-12-18 | 2019-06-26 | 주식회사 케이티 | 단말, 상기 단말의 동작 방법 및 다중경로 통신 시스템 |
US10733067B1 (en) * | 2018-04-14 | 2020-08-04 | Juniper Networks, Inc. | Apparatus, system, and method for efficiently deploying backup virtual network devices |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190179726A1 (en) | Monitoring method and apparatus of server, and storage medium | |
US20190356596A1 (en) | Service link selection control method and device | |
WO2020057163A1 (zh) | Mec平台部署方法及装置 | |
CN106789617B (zh) | 一种报文转发方法及装置 | |
US10389848B2 (en) | Message transmission method and core network interface device | |
KR20180082555A (ko) | M2m 서비스 계층에 대한 교차 리소스 가입 | |
KR102520020B1 (ko) | 애플리케이션들의 서비스 계층 이동성 관리 | |
WO2019184658A1 (zh) | 配置文件的切换方法、装置与移动终端 | |
CN103763121A (zh) | 一种网络配置信息快速下发的方法及装置 | |
CN113141405B (zh) | 服务访问方法、中间件系统、电子设备和存储介质 | |
CN107172075B (zh) | 基于网络隔离的通信方法、系统及可读存储介质 | |
WO2020168567A1 (zh) | 数据处理方法、装置以及移动终端 | |
CN112134866A (zh) | 业务访问控制方法、装置、系统及计算机可读存储介质 | |
US10390217B2 (en) | Wireless configuration of wireless distribution system (WDS) Wi-Fi range extenders using non-Wi-Fi-wireless communication channels | |
CN114153564A (zh) | 多系统中近场通信单元访问方法及装置、电子设备、存储介质 | |
CN112468611B (zh) | 应用程序启动方法、终端设备及计算机存储介质 | |
EP3404998B1 (en) | Communication method and apparatus, electronic device, and program product | |
CN114338408A (zh) | 多系统中网络设备虚拟化实现方法及装置、电子设备、存储介质 | |
CN114912103A (zh) | 一种访问控制方法及相关装置 | |
CN108595274B (zh) | 程序同步控制方法、装置、系统、计算机设备和存储介质 | |
US20230098159A1 (en) | Network migration method, network migration apparatus, communication device, and communication system | |
US11604670B2 (en) | Virtual machine live migration method, apparatus, and system | |
KR102357918B1 (ko) | 세션 관리 방법, 장치 및 시스템 | |
US11296929B2 (en) | Methods and network systems for enabling a network service in a visited network | |
US20210409514A1 (en) | Methods, Wireless Device and Network Node for Enabling Network Functions in the Wireless Device |
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 |