CN107562420B - 一种Linux环境网络接口结构体内存处理方法及装置 - Google Patents
一种Linux环境网络接口结构体内存处理方法及装置 Download PDFInfo
- Publication number
- CN107562420B CN107562420B CN201710769282.5A CN201710769282A CN107562420B CN 107562420 B CN107562420 B CN 107562420B CN 201710769282 A CN201710769282 A CN 201710769282A CN 107562420 B CN107562420 B CN 107562420B
- Authority
- CN
- China
- Prior art keywords
- interface
- memory
- identifier
- target
- created
- 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
Landscapes
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种Linux环境网络接口结构体内存处理方法及装置,所述方法包括:当接收到接口使用请求时,根据使用请求提供的接口标识,查找目标内存地址,所述目标内存地址为分配于目标结构体的内存的首地址,所述目标结构体中包括所述接口标识;当未查找到所述目标内存地址时,创建包括所述接口标识、且带有接口状态标识的结构体;为所创建的结构体分配内存;将所创建的结构体的接口状态标识置为可用状态;当接收到接口注销请求时,查找包括注销请求提供的接口标识的结构体;将查找到的结构体的接口状态标识置为不可用状态,并且保留为所述查找到的结构体分配的内存。本申请方案注销接口时保留了分配的内存,解决了进程访问内存时系统宕机的问题。
Description
技术领域
本申请涉及网络技术领域,尤其涉及一种Linux环境网络接口结构体内存处理方法及装置。
背景技术
在Linux操作系统中,网络设备接口层通过net_device结构体,统一地定义不同的网络接口,实现多种硬件在软件层次上的统一。每个接口对应的net_device结构体中,包括网络接口的名称、物理地址、与接口一一对应的索引等信息。有进程需要使用某一网络接口时,创建该接口的net_device结构体,并为结构体中的变量动态分配内存,之后,其他进程可以通过创建的结构体使用该接口。当不再有进程使用该接口时,则注销该接口。
现有技术在为接口创建结构体并分配内存的同时,采用引用计数记录各进程使用该接口的次数,当该接口的引用计数为0时,将自动注销该接口,并释放为接口的结构体分配的内存。但是,在接口被注销后,如果因引用计数错误使接口被错误地注销,或其他原因,导致仍有进程需要访问为结构体分配的内存,而此时所分配的内存已被释放,则将因为无法访问,造成系统宕机。
发明内容
有鉴于此,本申请提供一种Linux环境网络接口结构体内存处理方法及装置,技术方案如下:
一种Linux环境网络接口结构体内存处理方法,所述方法包括:
当接收到接口使用请求时,根据使用请求提供的接口标识,查找目标内存地址,所述目标内存地址为分配于目标结构体的内存的首地址,所述目标结构体中包括所述接口标识;
当未查找到所述目标内存地址时,创建包括所述接口标识、且带有接口状态标识的结构体;
为所创建的结构体分配内存;
将所创建的结构体的接口状态标识置为可用状态;
当接收到接口注销请求时,查找包括注销请求提供的接口标识的结构体;
将查找到的结构体的接口状态标识置为不可用状态,并且保留为所述查找到的结构体分配的内存。
一种Linux环境网络接口结构体内存处理装置,所述装置包括:
内存地址查找模块,用于当接收到接口使用请求时,根据使用请求提供的接口标识,查找目标内存地址,所述目标内存地址为分配于目标结构体的内存的首地址,所述目标结构体中包括所述接口标识;
结构体创建模块,用于当未查找到所述目标内存地址时,创建包括所述接口标识、且带有接口状态标识的结构体;
内存分配模块,用于为所创建的结构体分配内存;
第一设置模块,用于将所创建的结构体的接口状态标识置为可用状态;
结构体查找模块,用于当接收到接口注销请求时,查找包括注销请求提供的接口标识的结构体;
第二设置模块,用于将查找到的结构体的接口状态标识置为不可用状态;
所述内存分配模块,还用于在接口注销之后,保留为所述注销的接口的结构体分配的内存。
本申请所提供的技术方案,在有进程需要使用接口时,为接口创建对应的结构体,并为结构体分配内存,同时,所创建的结构体带有接口状态标识,在结构体创建之后,将接口状态标识置为可用状态,之后,其他进程可以通过创建的结构体使用该接口。当用户判定不再使用该接口时,可以发出接口注销请求,将接口状态标识置为不可用状态,注销该接口,但为接口的结构体分配的内存不会被释放,因此,即使接口注销后仍有进程需要访问分配的内存,也不会因无法访问,而造成系统宕机。另外,本申请提供的技术方案,还可以通过将接口索引定义为与接口名称对应、包括接口类型和接口索引值的变量,以及创建与接口名称和索引对应、并指向内存首地址的二维指针数组的方式,实现直接通过接口名称和索引定位到进程需要使用的不同类型的、或者某个特定的接口,避免遍历所有已创建的结构体,提高效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。此外,本申请中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请的Linux环境网络接口结构体内存处理方法的流程示意图;
图2是本申请的Linux环境网络接口结构体内存处理装置的第一种结构示意图;
图3是本申请的Linux环境网络接口结构体内存处理装置的第二种结构示意图。
具体实施方式
首先对本发明实施例的Linux环境网络接口结构体内存处理方法进行说明,该方法可以包括以下步骤:
当接收到接口使用请求时,根据使用请求提供的接口标识,查找目标内存地址,所述目标内存地址为分配于目标结构体的内存的首地址,所述目标结构体中包括所述接口标识;
当未查找到所述目标内存地址时,创建包括所述接口标识、且带有接口状态标识的结构体;
为所创建的结构体分配内存;
将所创建的结构体的接口状态标识置为可用状态;
当接收到接口注销请求时,查找包括注销请求提供的接口标识的结构体;
将查找到的结构体的接口状态标识置为不可用状态,并且保留为所述查找到的结构体分配的内存。
在Linux系统中,使用net_device结构体,统一地描述不同类型的网络接口,进程对每个网络接口的使用,均通过该接口的结构体实现。因此,在某个接口第一次被使用之前,首先需要创建该接口的结构体,并为结构体分配一块大小固定的内存。结构体中包括了接口的名称和索引等,各个变量在内存中的相对位置是固定的。每个接口拥有与其唯一对应的名称和索引,进程需要使用某个结构体时,可以通过接口名称或索引,查找到对应的结构体。
为了使本领域技术人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请保护的范围。
图1所示,为本发明一种Linux环境网络接口结构体内存处理方法的流程图示意图,具体可以包括以下基本步骤:
S101,当接收到接口使用请求时,根据使用请求提供的接口标识,查找目标内存地址,所述目标内存地址为分配于目标结构体的内存的首地址,所述目标结构体中包括所述接口标识;
当某一进程需要使用某个接口,即需要获取存储在对应分配的内存中的变量时,将发出接口使用请求,使用请求中包括该接口的标识,接口标识可以是接口的名称或索引,如前面所述,每个接口与其名称和索引是唯一对应的,接口的名称和索引写在对该接口创建的结构体中,因此,如果该接口的结构体已经创建,则根据使用请求提供的接口标识,即可查找到对该接口创建的结构体,也就是为创建的结构体分配的内存,由于各个变量在内存中的相对位置是固定的,因此,进程查找到内存的首地址后,即可根据偏移值获取需要的变量。
可以理解的是,虽然接口标识和为结构体分配的内存之间存在着明确的对应关系,但通过接口标识查找内存首地址的方法并不唯一,例如,可以通过遍历已创建的结构体,查找到包括使用请求提供的接口标识的结构体,进而确定内存首地址;也可以通过其他手段,例如创建与接口标识对应的、指向内存首地址的指针,实现更高效的查找。本申请提供的基本方案并不受具体查找方式的影响,理论上也不需要对此进行限定,在实际应用中,本领域技术人员可以根据需求采用适当的方法。
S102,当未查找到所述目标内存地址时,创建包括所述接口标识、且带有接口状态标识的结构体;
如果根据使用请求提供的接口标识,无法查找到目标内存地址,则表示该接口为第一次被使用,其结构体还未被创建,且还未为结构体分配内存。因此,首先需要创建该接口的结构体,如前面所述,结构体中需要包括该接口的名称和索引。
在本申请提供的基本方案中,所创建的结构体还带有接口状态标识,接口状态标识有可用和不可用两种状态,用于标识对应的接口当前是否可以被使用。显然,接口状态标识可以通过多种形式实现,本申请的基本方案理论上不需要对具体的实现形式进行限定,在实际应用中,本领域技术人员可以根据实现复杂度等因素选取适当的形式。
S103,为所创建的结构体分配内存;
由于创建的结构体中包括接口的名称、索引、物理地址、及其他诸多变量,因此,需要为创建的结构体分配内存,用于存储结构体中包括的变量,进程对接口的使用,也是通过访问为结构体分配的内存,获取需要的变量来实现。
S104,将所创建的结构体的接口状态标识置为可用状态;
当某个接口第一次被某一进程使用时,将在S102中创建带有接口状态标识的结构体,因此,需要将创建的结构体的接口状态标识,置为可用状态,表示该进程及之后的其他进程,均可以通过所创建的结构体使用该接口。
S105,当接收到接口注销请求时,查找包括注销请求提供的接口标识的结构体;
当使用某一接口的所有进程,均结束对该接口的使用时,管理员可能会判定可以注销该接口,进而发出接口注销请求,注销请求中包括该接口的接口标识,根据接口标识,查找需要注销的接口的结构体,即包括注销请求提供的接口标识的结构体。
S106,将查找到的结构体的接口状态标识置为不可用状态,并且保留为所述查找到的结构体分配的内存。
本申请提供的基本方案,在注销某一接口时,需将该接口的结构体的接口状态标识,置为不可用状态,表示进程不可通过该结构体使用该接口。同时,保留在创建该结构体时,为其分配的内存。
可见,应用本申请方案,由于注销接口时,保留了为接口的结构体分配的内存,即使之后仍有进程强制访问所分配的内存,也不会因无法访问,而造成系统宕机。
下面结合一个具体的实例,对本申请方案进行示意性说明。
在为接口创建结构体时,会将接口名称和分配的与接口唯一对应的索引,存储在对应的内存中。接口名称可以是由接口类型和接口索引值组成的32位的字符串。接口索引可以从1开始递增,例如,创建的第一个结构体的接口索引分配为1,之后创建的结构体的接口索引依次分配为2、3……接口名称和索引的作用是标识接口,当有进程需要使用某个接口时,将发出接口使用请求,并在使用请求中提供该接口的名称,如“br1”,或接口的索引,如“2”,则通过遍历已创建的结构体,即可查找到接口名称为“br1”,或接口索引为“2”的结构体,访问对应的内存,获取需要的变量。
也有进程是需要对某一类型的所有接口执行操作,但如果使用请求提供的是形如“1、2、3……”的接口索引,则无法判断所标识的接口的类型,因此需要遍历已创建的结构体,根据结构体中的接口名称,判断该接口的类型,从而判断是否对该接口执行操作。
在本申请的一种具体实施方式中,可以将接口索引定义为与接口名称对应的32位整型变量,其中,高8位为接口类型,低24位为接口索引值。这样,根据接口索引,就可以直接判断所标识的接口的类型。
另外,在Linux系统内核初始化时,可以预先创建一个名为g_netdev的二维指针数组,数组的第一维指针的下标为接口类型,第二维指针的值暂时为0、下标为接口索引值。g_netdev中的数组元素的数目,根据网络设备中接口的数目确定,每个数组元素可以对应一个接口,接口的结构体创建之后,将为结构体分配的内存的首地址,写入对应数组元素的第二维指针。
当某一进程需要使用某个接口时,根据使用请求提供的接口标识,解析得到接口类型和接口索引值,则可以查找到接口在g_netdev中对应的数组元素,从而查找对应的数组元素中,第二维指针指向的内存地址。
例如,假设该进程需要使用一个bridge类型的接口,则可以对名为br1的接口发出接口使用请求,解析使用请求中提供的接口名称或索引,得到接口类型bridge和接口索引值1,则可以查找到二维指针数组g_netdev中,[IF_DEV_TYPE_BRIDGE][1]对应的数组元素。
如前面所述,接口的结构体创建之后,可以将为结构体分配的内存的首地址,写入对应数组元素的第二维指针。此时,如果名为br1的接口的结构体已经创建,则查找到的数组元素中的第二维指针,即指向进程所需要的内存地址。通过数组元素的第二维指针,可以直接获取进程所需要的内存地址,进而,可使用获取的内存地址,响应进程的接口使用请求。
但是,查找到的数组元素中,第二维指针的值可能为0,这表示该接口的结构体还未被创建,且还未为结构体分配内存,此时显然无法获取内存地址响应使用请求,首先需要创建该接口的结构体。
可以创建形式如下的接口结构体:
同时,可以使用内核函数,为创建的结构体分配内存。
在创建的结构体中,name和ifindex分别为接口的名称和索引。结构体创建完成并为其分配内存后,根据接口名称或索引,得到接口类型和接口索引值,找到预先创建的二维指针数组g_netdev中,与接口对应的数组元素,令数组元素的第二维指针指向内存的首地址。
此外,useflag为结构体的接口状态标识,可以有USE和UNUSE两种状态。结构体创建完成之后,将useflag置为USE,则进程可以通过结构体使用对应的接口。
当使用这一接口的所有进程均结束使用时,管理员可能会判定可以注销此接口,进而发出针对这一接口的注销请求,注销请求中提供了创建结构体时,为此接口分配的接口标识,根据接口标识查找到的,包括此接口标识的结构体,就是需要注销的接口的结构体。注销时,需要将useflag的状态,置为UNUSE,则之后将不可再通过该结构体使用该接口。同时,保留在创建该结构体时,为其分配的内存,避免仍有进程强制访问所分配的内存时,造成系统宕机。
相应于上述方法实施例,本申请还提供一种Linux环境网络接口结构体内存处理装置,参见图2所示,该装置可以包括:
内存地址查找模块110,用于当接收到接口使用请求时,根据使用请求提供的接口标识,查找目标内存地址,所述目标内存地址为分配于目标结构体的内存的首地址,所述目标结构体中包括所述接口标识;
结构体创建模块120,用于当未查找到所述目标内存地址时,创建包括所述接口标识、且带有接口状态标识的结构体;
内存分配模块130,用于为所创建的结构体分配内存;
第一设置模块140,用于将所创建的结构体的接口状态标识置为可用状态;
结构体查找模块150,用于当接收到接口注销请求时,查找包括注销请求提供的接口标识的结构体;
第二设置模块160,用于将查找到的结构体的接口状态标识置为不可用状态;
所述内存分配模块130,还用于在接口注销之后,保留为所述注销的接口的结构体分配的内存。
在本申请的一种具体实施方式中,参见图3所示,上述装置还可以包括:
使用请求响应模块170,用于当查找到所述目标内存地址时,使用查找到的所述目标内存地址,响应接口使用请求。
在本申请的一种具体实施方式中,接口标识可以包括接口名称或接口索引值。
在本申请的一种具体实施方式中,接口标识中可以包括接口类型和接口索引值。
在本申请的一种具体实施方式中,内存分配模块130具体可以用于:
预先创建二维指针数组,数组元素的数目与接口数目相同,其中,第一维指针的下标为接口类型,第二维指针的值为0、下标为接口索引值;
为所创建的结构体分配内存;
解析所分配内存的结构体中包括的接口标识,得到接口类型和接口索引值;
根据得到的接口类型和接口索引值,查找目标二维指针数组元素;
将所分配的内存的首地址,写入所述目标二维指针数组元素的第二维指针。
在本申请的一种具体实施方式中,内存地址查找模块110具体可以用于:
当接收到接口使用请求时,解析使用请求提供的接口标识,得到接口类型和接口索引值;
根据得到的接口类型和接口索引值,查找对应的二维指针数组元素;
查找所述对应的二维指针数组元素中第二维指针指向的目标内存地址。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本申请方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种Linux环境网络接口结构体内存处理方法,其特征在于,所述方法包括:
当接收到接口使用请求时,根据使用请求提供的接口标识,查找目标内存地址,所述目标内存地址为分配于目标结构体的内存的首地址,所述目标结构体中包括所述接口标识;
当未查找到所述目标内存地址时,创建包括所述接口标识、且带有接口状态标识的结构体;
为所创建的结构体分配内存;
将所创建的结构体的接口状态标识置为可用状态;
当接收到接口注销请求时,表示已经没有进程使用包括注销请求提供的接口标识的结构体,查找包括注销请求提供的接口标识的结构体;
将查找到的结构体的接口状态标识置为不可用状态,并且保留为所述查找到的结构体分配的内存。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当查找到所述目标内存地址时,使用查找到的所述目标内存地址,响应接口使用请求。
3.根据权利要求1所述的方法,其特征在于,所述接口标识,包括:
接口索引或接口名称。
4.根据权利要求1所述的方法,其特征在于,所述接口标识中包括:
接口类型和接口索引值。
5.根据权利要求4所述的方法,其特征在于,所述为所创建的结构体分配内存,包括:
预先创建二维指针数组,数组元素的数目与接口数目相同,其中,第一维指针的下标为接口类型,第二维指针的值为0、下标为接口索引值;
为所创建的结构体分配内存;
解析所分配内存的结构体中包括的接口标识,得到接口类型和接口索引值;
根据得到的接口类型和接口索引值,查找目标二维指针数组元素;
将所分配的内存的首地址,写入所述目标二维指针数组元素的第二维指针。
6.根据权利要求5所述的方法,其特征在于,所述当接收到接口使用请求时,根据使用请求提供的接口标识,查找目标内存地址,所述目标内存地址为分配于目标结构体的内存的首地址,所述目标结构体中包括所述接口标识,包括:
当接收到接口使用请求时,解析使用请求提供的接口标识,得到接口类型和接口索引值;
根据得到的接口类型和接口索引值,查找对应的二维指针数组元素;
查找所述对应的二维指针数组元素中第二维指针指向的目标内存地址。
7.一种Linux环境网络接口结构体内存处理装置,其特征在于,所述装置包括:
内存地址查找模块,用于当接收到接口使用请求时,根据使用请求提供的接口标识,查找目标内存地址,所述目标内存地址为分配于目标结构体的内存的首地址,所述目标结构体中包括所述接口标识;
结构体创建模块,用于当未查找到所述目标内存地址时,创建包括所述接口标识、且带有接口状态标识的结构体;
内存分配模块,用于为所创建的结构体分配内存;
第一设置模块,用于将所创建的结构体的接口状态标识置为可用状态;
结构体查找模块,用于当接收到接口注销请求时,表示已经没有进程使用包括注销请求提供的接口标识的结构体,查找包括注销请求提供的接口标识的结构体;
第二设置模块,用于将查找到的结构体的接口状态标识置为不可用状态;
所述内存分配模块,还用于在接口注销之后,保留为所述注销的接口的结构体分配的内存。
8.根据权利要求7所述的装置,其特征在于,所述接口标识中包括:
接口类型和接口索引值。
9.根据权利要求8所述的装置,其特征在于,所述内存分配模块,具体用于:
预先创建二维指针数组,数组元素的数目与接口数目相同,其中,第一维指针的下标为接口类型,第二维指针的值为0、下标为接口索引值;
为所创建的结构体分配内存;
解析所分配内存的结构体中包括的接口标识,得到接口类型和接口索引值;
根据得到的接口类型和接口索引值,查找目标二维指针数组元素;
将所分配的内存的首地址,写入所述目标二维指针数组元素的第二维指针。
10.根据权利要求9所述的装置,其特征在于,所述内存地址查找模块,具体用于:
当接收到接口使用请求时,解析使用请求提供的接口标识,得到接口类型和接口索引值;
根据得到的接口类型和接口索引值,查找对应的二维指针数组元素;
查找所述对应的二维指针数组元素中第二维指针指向的目标内存地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710769282.5A CN107562420B (zh) | 2017-08-31 | 2017-08-31 | 一种Linux环境网络接口结构体内存处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710769282.5A CN107562420B (zh) | 2017-08-31 | 2017-08-31 | 一种Linux环境网络接口结构体内存处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107562420A CN107562420A (zh) | 2018-01-09 |
CN107562420B true CN107562420B (zh) | 2019-12-06 |
Family
ID=60978628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710769282.5A Active CN107562420B (zh) | 2017-08-31 | 2017-08-31 | 一种Linux环境网络接口结构体内存处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107562420B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120440B (zh) * | 2018-08-13 | 2021-12-14 | 南京翼辉信息技术有限公司 | 一种网口定位方法及应用其的网络设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004079511A2 (en) * | 2003-02-28 | 2004-09-16 | Motorola Inc. A Corporation Of The State Of Delaware | Securely enabling native code execution on a java enabled subscriber device |
CN102724061A (zh) * | 2012-04-16 | 2012-10-10 | 成都市广达电子电讯技术开发有限公司 | 一种网络接口管理方法 |
CN102999330A (zh) * | 2012-11-12 | 2013-03-27 | 北京神州绿盟信息安全科技股份有限公司 | 基于用户态网卡驱动的网卡配置方法及装置 |
-
2017
- 2017-08-31 CN CN201710769282.5A patent/CN107562420B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004079511A2 (en) * | 2003-02-28 | 2004-09-16 | Motorola Inc. A Corporation Of The State Of Delaware | Securely enabling native code execution on a java enabled subscriber device |
CN102724061A (zh) * | 2012-04-16 | 2012-10-10 | 成都市广达电子电讯技术开发有限公司 | 一种网络接口管理方法 |
CN102999330A (zh) * | 2012-11-12 | 2013-03-27 | 北京神州绿盟信息安全科技股份有限公司 | 基于用户态网卡驱动的网卡配置方法及装置 |
Non-Patent Citations (3)
Title |
---|
基于NAPI的嵌入式Linux网络设备驱动的研究与实现;周青;《中国优秀硕士学位论文全文数据库信息科技辑》;20111231(第12期);全文 * |
深入理解Linux网络技术内幕——设备的注册与初始化(一);轮子学长;《CSDN博客》;20150206;第1-4页 * |
深入理解Linux网络技术内幕——设备的注册与初始化(二);轮子学长;《CSDN博客》;20150208;第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107562420A (zh) | 2018-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11586673B2 (en) | Data writing and reading method and apparatus, and cloud storage system | |
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
CN103324533B (zh) | 分布式数据处理方法、装置及系统 | |
US11334474B2 (en) | Fast change impact analysis tool for large-scale software systems | |
US20160283357A1 (en) | Call stack relationship acquiring method and apparatus | |
CN109542861B (zh) | 一种文件管理方法、装置和系统 | |
CN112148678B (zh) | 一种文件访问方法、系统、设备以及介质 | |
US10282120B2 (en) | Method, apparatus and system for inserting disk | |
CN108776587A (zh) | 数据获取方法、装置、计算机设备以及存储介质 | |
CN109388614A (zh) | 一种目录文件个数配额的方法、系统及设备 | |
CN109960534A (zh) | 设备探测方法、装置、存储介质以及电子设备 | |
CN107562420B (zh) | 一种Linux环境网络接口结构体内存处理方法及装置 | |
CN110825764B (zh) | 一种sql脚本的生成方法、系统、存储介质和处理器 | |
CN112328363A (zh) | 一种云硬盘挂载方法及其装置 | |
CN106649528A (zh) | 图片写入和读取方法、装置 | |
CN107018140B (zh) | 一种权限控制方法和系统 | |
CN105978744A (zh) | 一种资源分配方法、装置及系统 | |
CN108023920B (zh) | 一种数据包传输方法、设备及应用接口 | |
CN113420288B (zh) | 一种容器镜像敏感信息检测系统及方法 | |
US9760388B1 (en) | Memory monitoring tool | |
CN111552740B (zh) | 数据处理方法及装置 | |
CN114237989A (zh) | 数据库服务部署、容灾方法及装置 | |
US10620946B1 (en) | Dynamic modeling for opaque code during static analysis | |
CN111914238A (zh) | 图像测试方法、装置、计算机设备和存储介质 | |
CN117459320B (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 |