读取裸设备的方法、装置、计算机设备和介质制造方法及图纸

技术编号:32857240 阅读:9 留言:0更新日期:2022-03-30 19:30
本公开涉及一种读取裸设备的方法、装置、计算机设备和介质;其中,该方法包括:将根据第一编程语言编写的针对裸设备的操作函数文件进行编译,得到对应的动态库文件;根据第二编程语言,对动态库文件进行封装,得到封装后的文件,其中,第二编程语言和第一编程语言不相同;根据动态库文件和封装后的文件对裸设备进行读取,得到对应的数据。本公开实施例通过第一编程语言和第二程语言的联合使用,无需借助其他设备,能够直接对裸设备进行读取。能够直接对裸设备进行读取。能够直接对裸设备进行读取。

【技术实现步骤摘要】
读取裸设备的方法、装置、计算机设备和介质


[0001]本公开涉及数据同步
,尤其涉及一种读取裸设备的方法、装置、计算机设备和介质。

技术介绍

[0002]裸设备是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备,它由应用程序负责对它进行读写操作,不经过文件系统的缓冲。因此,对于读写频繁的数据库应用来说,使用裸设备可以极大地提高数据库系统的性能。
[0003]Java是一种相对比较高级的编程语言,针对输入/输出(Input/Output,简称I/O)操作,提供了比较完善的封装,便于上层应用对文件的读写。由于Java中针对底层磁盘的读取都是基于文件封装的,没有提供直接读取裸设备中物理磁盘扇区的能力,这就使得利用Java语言访问物理磁盘扇区的应用程序(或者产品)的实现变得困难。

技术实现思路

[0004]为了解决上述技术问题,本公开提供了一种读取裸设备的方法、装置、计算机设备和介质。
[0005]第一方面,本公开提供了一种读取裸设备的方法,包括:
[0006]将根据第一编程语言编写的针对裸设备的操作函数文件进行编译,得到对应的动态库文件;
[0007]根据第二编程语言,对所述动态库文件进行封装,得到封装后的文件,其中,所述第二编程语言和所述第一编程语言不相同;
[0008]根据所述动态库文件和所述封装后的文件对所述裸设备进行读取,得到对应的数据。
[0009]可选的,所述将根据第一编程语言编写的针对裸设备的操作函数文件进行编译,得到对应的动态库文件,包括:
[0010]确定操作系统的类型;
[0011]根据所述类型确定所述根据第一编程语言编写的针对裸设备的操作函数文件对应的编译工具;
[0012]根据所述编译工具将所述操作函数文件进行编译,得到对应的动态库文件。
[0013]可选的,所述根据第二编程语言,对所述动态库文件进行封装,得到封装后的文件,包括:
[0014]加载所述动态库文件;
[0015]确定所述动态库文件中与所述操作函数文件中包括的函数所对应的各目标函数;
[0016]根据第二编程语言,对每个目标函数进行封装,得到所述封装后的文件。
[0017]可选的,所述将根据第一编程语言编写的针对裸设备的操作函数文件进行编译,得到对应的动态库文件之前,还包括:
[0018]获取所述根据第一编程语言编写的针对裸设备的操作函数文件。
[0019]可选的,所述操作函数文件中包括对齐函数,所述对齐函数用于将分配的内存空间的字节数与所述裸设备的磁盘扇区的大小进行对齐。
[0020]可选的,所述根据所述动态库文件和所述封装后的文件对所述裸设备进行读取,得到对应的数据,包括:
[0021]将所述封装后的文件编译成对应的类文件;
[0022]将所述类文件与所述动态库文件进行打包,得到打包后的文件;
[0023]通过所述打包后的文件对所述裸设备进行读取,得到对应的数据。
[0024]可选的,所述第一编程语言为Java时,所述操作函数文件基于Java本地接口JNI方式或者Java本地访问JNA方式进行编写得到。
[0025]第二方面,本公开提供了一种读取裸设备的装置,包括:
[0026]编译模块,用于将根据第一编程语言编写的针对裸设备的操作函数文件进行编译,得到对应的动态库文件;
[0027]封装模块,用于根据第二编程语言,对所述动态库文件进行封装,得到封装后的文件,其中,所述第二编程语言和所述第一编程语言不相同;
[0028]读取模块,用于根据所述动态库文件和所述封装后的文件对所述裸设备进行读取,得到对应的数据。
[0029]可选的,编译模块,具体用于:
[0030]确定操作系统的类型;
[0031]根据所述类型确定所述根据第一编程语言编写的针对裸设备的操作函数文件对应的编译工具;
[0032]根据所述编译工具将所述操作函数文件进行编译,得到对应的动态库文件。
[0033]可选的,封装模块,具体用于:
[0034]加载所述动态库文件;
[0035]确定所述动态库文件中与所述操作函数文件中包括的函数所对应的各目标函数;
[0036]根据第二编程语言,对每个目标函数进行封装,得到所述封装后的文件。
[0037]可选的,上述装置还包括:
[0038]获取模块,具体用于:将根据第一编程语言编写的针对裸设备的操作函数文件进行编译,得到对应的动态库文件之前,获取所述根据第一编程语言编写的针对裸设备的操作函数文件。
[0039]可选的,所述操作函数文件中包括对齐函数,所述对齐函数用于将分配的内存空间的字节数与所述裸设备的磁盘扇区的大小进行对齐。
[0040]可选的,读取模块,具体用于:
[0041]将所述封装后的文件编译成对应的类文件;
[0042]将所述类文件与所述动态库文件进行打包,得到打包后的文件;
[0043]通过所述打包后的文件对所述裸设备进行读取,得到对应的数据。
[0044]可选的,所述第一编程语言为Java时,所述操作函数文件基于Java本地接口JNI方式或者Java本地访问JNA方式进行编写得到。
[0045]第三方面,本公开还提供了一种计算机设备,包括:
[0046]一个或多个处理器;
[0047]存储装置,用于存储一个或多个程序,
[0048]当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本公开实施例中的任一种所述的读取裸设备的方法。
[0049]第四方面,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开实施例中的任一种所述的读取裸设备的方法。
[0050]本公开实施例提供的技术方案与现有技术相比具有如下优点:将根据第一编程语言编写的针对裸设备的操作函数文件进行编译,得到对应的动态库文件;根据第二编程语言,对动态库文件进行封装,得到封装后的文件,其中,第二编程语言和第一编程语言不相同;根据动态库文件和封装后的文件对裸设备进行读取,得到对应的数据,通过第一编程语言和第二程语言的联合使用,无需借助其他设备,能够直接对裸设备进行读取。
附图说明
[0051]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0052]为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0053]图1是本公开实施例提供的一种读取裸设备的方法的流程示意图;
[0054]图2是本公开实施例提供的另一种读取裸设备的方法的流程示意图;
[005本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种读取裸设备的方法,其特征在于,所述方法包括:将根据第一编程语言编写的针对裸设备的操作函数文件进行编译,得到对应的动态库文件;根据第二编程语言,对所述动态库文件进行封装,得到封装后的文件,其中,所述第二编程语言和所述第一编程语言不相同;根据所述动态库文件和所述封装后的文件对所述裸设备进行读取,得到对应的数据。2.根据权利要求1所述的方法,其特征在于,所述将根据第一编程语言编写的针对裸设备的操作函数文件进行编译,得到对应的动态库文件,包括:确定操作系统的类型;根据所述类型确定所述根据第一编程语言编写的针对裸设备的操作函数文件对应的编译工具;根据所述编译工具将所述操作函数文件进行编译,得到对应的动态库文件。3.根据权利要求1所述的方法,其特征在于,所述根据第二编程语言,对所述动态库文件进行封装,得到封装后的文件,包括:加载所述动态库文件;确定所述动态库文件中与所述操作函数文件中包括的函数所对应的各目标函数;根据第二编程语言,对每个目标函数进行封装,得到所述封装后的文件。4.根据权利要求1所述的方法,其特征在于,所述将根据第一编程语言编写的针对裸设备的操作函数文件进行编译,得到对应的动态库文件之前,还包括:获取所述根据第一编程语言编写的针对裸设备的操作函数文件。5.根据权利要求4所述的方法,其特征在于,所述操作函数文件中包括对齐函数,所述对齐函数用于将分配的内存空间的字节数与所述裸设备的磁盘扇区的大小进行对齐。6.根...

【专利技术属性】
技术研发人员:王凯龙
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1