CN114817160A - 文件解压方法、装置、电子设备及计算机可读存储介质 - Google Patents
文件解压方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114817160A CN114817160A CN202210369197.0A CN202210369197A CN114817160A CN 114817160 A CN114817160 A CN 114817160A CN 202210369197 A CN202210369197 A CN 202210369197A CN 114817160 A CN114817160 A CN 114817160A
- Authority
- CN
- China
- Prior art keywords
- file
- decompression
- decompressed
- target
- node
- 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
- 230000006837 decompression Effects 0.000 title claims abstract description 197
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000006835 compression Effects 0.000 claims description 22
- 238000007906 compression Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 10
- 230000001419 dependent effect Effects 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 23
- 230000006870 function Effects 0.000 description 18
- 238000011161 development Methods 0.000 description 11
- 230000018109 developmental process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000007726 management method Methods 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
- 238000005192 partition Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种文件解压方法、装置、电子设备及计算机可读存储介质,该方法包括:根据待解压文件的类型确定目标解压缩算法;确定目标硬件设备,并将目标解压缩算法配置于目标硬件设备;获取待解压文件,并根据配置有目标解压缩算法的目标硬件设备对待解压文件进行硬解压。通过配置有解压算法的硬件设备对待解压文件的硬解压,使得文件在解压时不依赖于软件应用的运行,减少对相关系统资源的调用和占用,降低系统性能的损耗,其中,当减少对相关系统资源的调用或者占用时,可提升文件的读取速率。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及一种文件解压方法、装置、电子设备及计算机可读存储介质。
背景技术
随着计算机技术的快速发展,文件的种类越来越多,文件所占的内存也越来越大,为了降低存储文件所占用的内存,文件通常采用压缩的方式进行存储,因此,一部分文件在读取时需要先进行解压,例如,增强型只读文件系统(EROFS)的数据部分采用了压缩模式存储的方式,所以在读取这部分文件时会伴随解压缩的过程。
而目前的解压缩依赖于终端的解压应用(如解压软件),需要占用大量系统资源,存在性能损耗和效率较低的问题。
发明内容
本申请实施例提供一种文件解压方法、装置、电子设备及计算机可读存储介质,可以减低对系统资源的占用,提升文件读取效率。
第一方面,本申请实施例提供了一种文件解压方法,包括:
根据待解压文件的类型确定目标解压缩算法;
确定目标硬件设备,并将所述目标解压缩算法配置于所述目标硬件设备;
获取所述待解压文件,并根据所述配置有目标解压缩算法的目标硬件设备对所述待解压文件进行硬解压。
第二方面,本申请实施例还提供了一种文件解压装置,包括:
确定模块,用于根据待解压文件的类型确定目标解压缩算法;
配置模块,用于确定目标硬件设备,并将所述目标解压缩算法配置于所述目标硬件设备;
解压模块,用于获取所述待解压文件,并根据所述配置有目标解压缩算法的目标硬件设备对所述待解压文件进行硬解压。
其中,在本申请的一些实施例中,待解压文件包括增强型只读文件系统中的压缩文件。
其中,在本申请的一些实施例中,配置模块包括:
配置单元,用于根据所述目标解压缩算法配置解压缩程序;
刻录单元,用于直接将所述解压缩程序刻录于所述目标硬件设备。
其中,在本申请的一些实施例中,解压模块包括:
确定单元,用于确定所述待解压文件的索引节点;
第一获取单元,用于根据所述索引节点中地址信息的偏移量获取所述索引节点对应的节点内容;
第二获取单元,用于根据所述节点内容获取待解压文件。
其中,在本申请的一些实施例中,第二获取单元包括:
获取子单元,用于从所述节点内容中获取所述索引节点对应的压缩标记;
第一确定子单元,用于当所述压缩标记满足预设条件时,将所述节点内容对应的文件作为待解压文件。
其中,在本申请的一些实施例中,确定单元包括:
生成子单元,用于基于用户对所述待解压文件的查看请求生成文件读取请求;
第二确定子单元,用于根据所述文件读取请求确定所述待解压文件的文件描述符以及文件路径;
第三确定子单元,用于根据所述文件描述符从所述文件路径对应的文件目录中确定所述待解压文件对应的索引节点。
其中,在本申请的一些实施例中,第二获取单元包括:
检索子单元,用于根据所述节点内容确定所述待解压文件对应的地址空间,并从所述地址空间检索所述待解压文件对应的页缓存结点;
创建子单元,用于当所述页缓存结点不存在时,创建所述页缓存结点以及所述页缓存结点对应的页缓存页;
第四确定子单元,用于根据所述节点内容确定所述页缓存页的磁盘地址,并将所述磁盘地址对应的文件作为待解压文件。
第三方面,本申请实施例还提供了一种电子设备,电子设备包括存储器、处理器及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的文件解压方法中的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的文件解压方法中的步骤。
本申请实施例根据待解压文件的类型确定目标解压缩算法,在确定目标硬件设备后,将目标解压缩算法配置到目标硬件设备中,当获取到待解压文件后,根据配置有目标解压缩算法的目标硬件设备对待解压文件进行硬解压。其中,通过配置有解压算法的硬件设备对待解压文件的硬解压,使得文件在解压时不依赖于软件应用的运行,减少对相关系统资源的调用和占用,降低系统性能的损耗,其中,当减少对相关系统资源的调用或者占用时,可提升文件的读取速率。
附图说明
为了更清楚地说明本申请中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的文件解压方法的场景示意图;
图2是本申请实施例提供的文件解压方法的流程示意图;
图3是本申请实施例提供的文件解压方法中文件硬解压流程示意图;
图4是本申请实施例提供的文件解压方法中从磁盘获取压缩文件进行解压读取的流程示意图;
图5是本申请实施例提供的文件解压装置的结构示意图;
图6是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例提供一种文件解压方法、装置、电子设备及计算机可读存储介质。具体地,本申请实施例提供适用于电子设备的文件解压装置,其中,电子设备包括终端或者服务器等设备,其中,终端可以为计算机、个人笔记本或者手机等设备,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content Delivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器,服务器可以通过有线或无线通信方式进行直接或间接地连接。
本申请实施例可以单独由终端设备执行文件解压方法,或者是单独由服务器执行文件解压方法,或者是终端设备和服务器共同执行文件解压方法,请参阅图1,以终端设备和服务器共同执行文件解压方法为例,其中,在终端设备和服务器的基础上也可以增加其他设备来辅助完成文件解压方法,在此对其他设备的类型不做限定;终端设备与服务器之间通过网络连接,比如,通过无线网络连接等,具体执行过程如下:
终端设备10在响应用户的触发操作后,生成访问服务器11文件系统的请求,触发对相应文件的读取,其中,当读取压缩文件时,先通过硬件设备中内置的解压缩算法对压缩文件进行解压缩(硬解压),得到解压后文件,对解压后文件进行读取。
其中,在本申请实施例中,压缩文件的硬解压可以发生在服务器11一侧,也可以发生在终端设备10一侧,例如,当请求读取服务器11中的压缩文件时,可以调用服务器11一侧携带有解压缩模块的硬件设备进行解压缩,也可以将压缩文件返回给终端设备10,由终端设备10一侧携带有解压缩模块的硬件设备进行解压缩。其中,在对文件进行硬解压后,便可以对文件内容进行读取。
其中,在本申请实施例中,针对待解压文件的类型,在硬件设备中配置相应的解压缩算法,形成解压缩模块,使得能够利用硬件设备对待解压文件进行硬解压。
其中,在本申请实施例中,目标硬件设备可以根据文件在读取时的调用过程进行确定,将与文件读取过程中涉及的硬件设备作为目标硬件设备,例如,将终端的开发板作为配置解压缩模块的目标硬件设备。其中,开发板(demo board)是用来进行嵌入式系统开发的电路板,包括处理器、存储器、输入设备、输出设备、数据通路/总线和外部资源接口等一系列硬件组件。开发板一般由嵌入式系统开发者根据开发需求自己订制,也可由用户自行研究设计。开发板是为初学者了解和学习系统的硬件和软件,同时部分开发板也提供的基础集成开发环境和软件源代码和硬件原理图等。常见的开发板有51、ARM、FPGA或者DSP开发板等。
其中,在本申请实施例中,解压缩算法可以包括LZ4、LZO或者LZMA等解压缩算法,其中,针对不同类型的待解压文件,可以在硬件设备中配置相应的解压缩算法,在此对硬件设备中配置的解压缩算法的具体种类不做限定,例如,在本申请实施例中,还可以在硬件设备中配置尽可能多的解压缩算法,以实现对多种待解压文件的解压缩。
其中,本申请实施例根据待解压文件的类型确定目标解压缩算法,在确定目标硬件设备后,将目标解压缩算法配置到目标硬件设备中,当获取到待解压文件后,根据配置有目标解压缩算法的目标硬件设备对待解压文件进行硬解压。其中,通过配置有解压算法的硬件设备对待解压文件的硬解压,使得文件在解压时不依赖于软件应用的运行,减少对相关系统资源的调用和占用,降低系统性能的损耗,其中,当减少对相关系统资源的调用或者占用时,可提升文件的读取速率。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优先顺序的限定。
请参阅图2,图2为本申请实施例提供的文件解压方法的流程示意图。该文件解压方法的具体流程可以如下:
101、根据待解压文件的类型确定目标解压缩算法。
其中,待解压文件的类型指待解压文件所述的类,例如,在本申请实施例中,待解压文件的类型可以是安装程序对应的压缩文件、光盘镜像对应的压缩文件、针对计算机程序的压缩文件、或者针对编码格式生成的压缩文件等等,其中,不同类型的压缩文件通常表现为文件后缀名不同,例如,目前常见的压缩文件的后缀名主要包括LZ4、LZMA、LZO、rar、zip、cab、iso、jar、ace、7z、tar、gz、arj、lzh、uue、bz2或者z等。
其中,由于每种压缩文件对应的解压缩算法可以不同,或者不同解压缩算法可以对同一类型的压缩文件进行解压,或者由于每种解压缩算法对应的效率、资源消耗以及解压所需的时间不同,因此,可以根据待解压文件的类型选取对应的解压缩算法,以使得压缩文件解压过程能够满足用户所需。
其中,在本申请实施例中,待解压文件可以包括增强型只读文件系统(EROFS,Enhanced Read-Only File System)中的压缩文件,其中,增强型只读文件系统具备节省系统分区空间大小、系统分区天然只读更安全、整体随机读和顺序读性能提升等优点。
但是,由于增强型只读文件系统(EROFS,Enhanced Read-Only File System)数据部分采用了压缩模式存储的方式,所以在读取文件时会伴随有一个解压缩过程,目前,可以通过软件解压的方式对增强型只读文件系统中的文件进行解压读取,但是软件解压的方式依赖于软件应用,需要占用系统资源,且解压需要的时间较长,解压效率较低。
因此,在本申请实施例中,可以通过硬解压的方式对增强型只读文件系统(EROFS,Enhanced Read-Only File System)的数据部分进行解压读取,提升数据读取效率。
其中,由于增强型只读文件系统(EROFS,Enhanced Read-Only File System)中主要采用的压缩算法为LZ4压缩算法。LZ4压缩算法是一种无损压缩算法,更着重于压缩和解压缩速度,因此,在本申请实施例中,针对增强型只读文件系统(EROFS,Enhanced Read-Only File System)中的压缩文件,可以将LZ4压缩算法作为目标解压缩算法。
102、确定目标硬件设备,并将所述目标解压缩算法配置于所述目标硬件设备。
其中,硬件设备是计算机系统中由电子、机械和光电元件等组成的各种物理装置的总称,其中,在本申请实施例中,目标硬件设备是能够集成解压算法的设备,例如,在本申请实施例中,目标硬件设备可以为PCB板或者开发板等。
其中,通过将解压缩算法集成在硬件设备上,使得硬件设备上具备解压缩模块,便于根据携带有解压缩模块的硬件设备对待解压文件进行硬解压。
其中,在本申请实施例中,可以根据解压缩算法在硬件设备上集成相应的程序,以使硬件设备具备解压缩模块,即,可选的,在本申请的一些实施例中,步骤“将所述目标解压缩算法配置于所述目标硬件设备”,包括:
根据所述目标解压缩算法配置解压缩程序;
直接将所述解压缩程序刻录于所述目标硬件设备。
其中,通过将解压缩程序集成在硬件设备中,使得硬件设备具备解压缩模块,通过利用硬件设备上的解压缩模块可以实现对压缩文件的硬解压,其中,由于解压缩模型是集成在硬件设备中的,因此,解压缩模块的执行不依赖于解压软件或者解压应用的运行,减少线程的产生和执行,降低对系统资源(如处理器CPU)的占用。而减少对系统资源的占用可提升文件读取部分的速率,提升文件读取的性能。
103、获取所述待解压文件,并根据所述配置有目标解压缩算法的目标硬件设备对所述待解压文件进行硬解压。
其中,由于硬解压过程不依赖于压缩软件的执行(即对应线程的执行),因此,可减少对系统资源(如处理器CPU)的占用,例如,减少对主线程运行的干扰,在提升系统运行效率的同时,也可以通过主线程或者其他子线程快速实现对文件的读取,提升文件读取效率。
其中,在本申请实施例中,可以根据待解压文件的索引节点来获取待解压文件,即,可选的,在本申请的一些实施例中,步骤“获取所述待解压文件”,包括:
确定所述待解压文件的索引节点;
根据所述索引节点中地址信息的偏移量获取所述索引节点对应的节点内容;
根据所述节点内容获取待解压文件。
其中,索引节点是指在许多类Unix文件系统中的一种数据结构。每个索引节点保存了文件系统中的一个文件系统对象的元信息数据,如文件创建时间、文件大小、属主、归属的用户组、读写权限、问价类型、修改时间等,但不包括数据内容或者文件名,一个文件对应一个索引节点。其中,通过索引节点中首地址的偏移量,可以获取到整个索引节点对应的节点内容信息(如上述文件创建时间、修改时间等信息),通过节点内容信息可以检索到对应的待解压文件。
其中,根据索引节点的节点内容可以获取到文件的基本信息,如根据标志位可以确定索引节点对应的文件是否为压缩文件,即,可选的,在本申请的一些实施例中,步骤“根据所述节点内容获取待解压文件”,包括:
从所述节点内容中获取所述索引节点对应的压缩标记;
当所述压缩标记满足预设条件时,将所述节点内容对应的文件作为待解压文件。
其中,当标志位(即压缩标记)信息表示该索引节点对应的文件为压缩文件时,则可以将该索引节点的节点内容对应的文件作为待解压文件。其中,通过节点内容可实现对文件是否为压缩文件的判断,当标志位信息表示该索引节点对应的文件不是压缩文件时,则不需要将该文件作为待解压文件,即不需要对该文件进行解压缩处理。
其中,标志位信息可以通过索引节点中地址信息的偏移量的变化来获取,例如,根据偏移量获取到指定地址对应的节点内容信息,获取到相应的标志位信息。
其中,通过接收用户针对待解压文件的读取查看请求,可以根据待解压文件的描述信息获取到待解压文件对应索引节点,即,可选的,在本申请的一些实施例中,步骤“确定所述待解压文件的索引节点”,包括:
基于用户对所述待解压文件的查看请求生成文件读取请求;
根据所述文件读取请求确定所述待解压文件的文件描述符以及文件路径;
根据所述文件描述符从所述文件路径对应的文件目录中确定所述待解压文件对应的索引节点。
其中,用户在终端设备上发起对文件的查看请求后,启动相应的进程来完成查看操作,具体的,进程调用库函数向内核发起读文件请求,内核通过检查进程的文件描述符定位到虚拟文件系统(VFS)的已打开文件列表表项,调用该虚拟文件系统可用的系统调用函数Read(),Read()函数通过文件列表表项链接到目录项模块,根据传入的文件路径,在目录项模块中检索,找到待解压文件的索引节点。
其中,库函数(Library function)是将函数封装入库,供用户使用的一种方式。方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。调用的时候把它所在的文件名用#include<>加到里面就可以了。一般是放到lib文件里的。
其中,内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核的分类可分为单内核和双内核以及微内核。严格地说,内核并不是计算机系统中必要的组成部分。内核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
其中,文件描述符是一个文件的索引,内核(kernel)利用文件描述符(Filedescriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。
其中,虚拟文件系统(VFS)是一种用于网络环境的分布式文件系统,是允许和操作系统使用不同的文件系统实现的接口。虚拟文件系统(VFS)是物理文件系统与服务之间的一个接口层,它对Linux的每个文件系统的所有细节进行抽象,使得不同的文件系统在Linux核心以及系统中运行的其他进程看来,都是相同的。严格说来,VFS并不是一种实际的文件系统。它只存在于内存中,不存在于任何外存空间。VFS在系统启动时建立,在系统关闭时消亡。
其中,在确定文件的索引节点后,便可以根据索引节点获取对应的文件,其中,当根据索引节点从磁盘地址中获取文件时,则需要对获取的文件进行解压缩,即,可选的,在本申请的一些实施例中,步骤“根据所述节点内容获取待解压文件”,包括:
根据所述节点内容确定所述待解压文件对应的地址空间,并从所述地址空间检索所述待解压文件对应的页缓存结点;
当所述页缓存结点不存在时,创建所述页缓存结点以及所述页缓存结点对应的页缓存页;
根据所述节点内容确定所述页缓存页的磁盘地址,并将所述磁盘地址对应的文件作为待解压文件。
其中,地址空间(address_space)表示一个文件在页缓存中已经缓存了的物理页,它是页缓存和外部设备中文件系统的桥梁。如果将文件系统可以理解成数据源,那么address_space可以说关联了内存系统和文件系统。因此,可以直接根据索引节点的节点内容确定相应的地址空间,从地址空间中检索是否存在对应的页缓存结点,其中,当页缓存结点存在时,则说明地址空间中保存有相应的文件内容,直接返回响应的文件内容即可实现文件内容的读取,当地址空间中不存在相应的页缓存结点时,则需要从相应的磁盘地址中获取相应的文件内容。
其中,针对增强型只读文件系统中的部分数据,其在磁盘上的存储涉及到压缩,因此,在读取磁盘上增强型只读文件系统中的文件数据时,需要对这部分文件数据进行解压缩,因此,在本申请实施例中,可以将磁盘上获取的增强型只读文件系统中的文件数据作为待解压文件,便于根据硬件设备中的解压缩模块对这部分待解压文件进行硬解压。
其中,本申请实施例根据待解压文件的类型确定目标解压缩算法,在确定目标硬件设备后,将目标解压缩算法配置到目标硬件设备中,当获取到待解压文件后,根据配置有目标解压缩算法的目标硬件设备对待解压文件进行硬解压。其中,通过配置有解压算法的硬件设备对待解压文件的硬解压,使得文件在解压时不依赖于软件应用的运行,减少对相关系统资源的调用和占用,降低系统性能的损耗,其中,当减少对相关系统资源的调用或者占用时,可提升文件的读取速率。
请参阅图3,图3是本申请实施例提供的文件硬解压流程示意图,其中,该文件硬解压的具体流程包括:
111、获取待解压文件对应的索引节点;
112、根据索引节点中地址信息的偏移量获取索引节点对应的节点内容;
113、根据索引节点的节点内容确定索引节点对应的文件是否是压缩文件,如果是,则执行步骤114,如果否,则执行步骤115;
114、直接调用系统中刻录好的硬件解压缩模块完成解压缩算法的执行流程,实现对压缩文件进行解压缩;
115、结束。
其中,当节点内容对应的文件不是压缩文件时,则直接读取节点内容对应的文件,不需要对该文件进行解压缩处理。
其中,针对增强型只读文件系统中采用LZ4压缩算法压缩的文件数据,可以采用刻录好的LZ4解压缩模块对文件进行硬解压。
其中,通过对文件的解压缩,便于对文件的读取,其中,通过利用硬解压对压缩文件的解压处理,使得解压过程不依赖于解压软件或者解压应用的运行,减少相关线程的产生,减低对系统资源的占用,相应的,在系统资源占用较少的情况下,可提升文件的读取效率。
请参阅图4,图4是本申请实施例提供的从磁盘获取压缩文件进行解压读取的流程示意图,其中,该文件解压读取的流程具体包括:
121、进程调用库函数向内核发起读文件请求;
122、内核通过检查进程的文件描述符定位到虚拟文件系统(VFS)的已打开文件列表表项;
123、调用该虚拟文件系统可用的系统调用函数Read();
124、Read()函数通过文件表项链接到目录项模块,根据传入的文件路径,在目录项模块中检索,找到该文件的索引节点;
125、在索引节点中,根据地址信息的偏移量计算出要读取的页;
126、根据索引节点的节点内容找到文件对应的地址空间;
127、在地址空间中查找页缓存结点,当页缓存结点存在时,执行步骤131;当页缓存结点不存在时,执行步骤128;
128、创建页缓存节点及页缓存节点对应的页缓存页;
129、通过索引节点查找该页缓存页对应的磁盘地址,从对应的磁盘地址中获取相应的数据内容;
130、对数据内容进行硬解压,得到解压后文件,将解压后文件内容填充到页缓存页中;
131、返回页缓存节点对应的页缓存页的文件内容,实现对文件内容的读取。
其中,通过针对磁盘中压缩数据的解压处理,便于实现对磁盘中文件数据的读取,例如,针对增强型只读文件系统中的文件数据,其在磁盘上的存储涉及到压缩,因此,当需要从磁盘上获取相应的文件数据时,需要对这部分文件数据进行解压缩,而本申请通过硬解压的方式对文件数据的解压,可减少对系统资源的占用,提升文件读取效率。
其中,在本申请实施例中,LZ4压缩文件的文件格式包括:文件标识符、文件描述符、数据块、···、结束符和校验字,其中,具体包括:
文件标识符:为固定为0x184D2204,小端模式;
文件描述符:字节长度为3-15,包含有如下信息:
LZ4协议版本号;
数据块为独立性设置标志;
数据块是否包含校验字;
被压缩文件的大小(可配置是否携带);
数据块最大长度;
字典ID等;
数据块:恢复压缩文件的重要信息全部包含在数据块中;
结束符:标识数据块结束;
校验字:文件完整性校验;
其中,LZ4压缩算法压缩过程主要包括:以至少4个字节为扫描窗口查找匹配,每次移动1个字节进行扫描,遇到重复的内容就进行压缩。相应的,LZ4压缩算法解压缩过程主要包括:将未压缩部分进行复制输出,将重复部分按照偏移量复制到未压缩部分后面即可。
为便于更好的实施本申请的文件解压方法,本申请还提供一种基于上述文件解压方法的文件解压装置。其中第三目标词语的含义与上述文件解压方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图5,图5为本申请提供的文件解压装置的结构示意图,其中,该文件解压装置可以包括:
确定模块201,用于根据待解压文件的类型确定目标解压缩算法。
配置模块202,用于确定目标硬件设备,并将所述目标解压缩算法配置于所述目标硬件设备。
解压模块203,用于获取所述待解压文件,并根据所述配置有目标解压缩算法的目标硬件设备对所述待解压文件进行硬解压。
其中,在本申请的一些实施例中,待解压文件包括增强型只读文件系统中的压缩文件。
其中,在本申请的一些实施例中,配置模块202包括:
配置单元,用于根据所述目标解压缩算法配置解压缩程序;
刻录单元,用于直接将所述解压缩程序刻录于所述目标硬件设备。
其中,在本申请的一些实施例中,解压模块203包括:
确定单元,用于确定所述待解压文件的索引节点;
第一获取单元,用于根据所述索引节点中地址信息的偏移量获取所述索引节点对应的节点内容;
第二获取单元,用于根据所述节点内容获取待解压文件。
其中,在本申请的一些实施例中,第二获取单元包括:
获取子单元,用于从所述节点内容中获取所述索引节点对应的压缩标记;
第一确定子单元,用于当所述压缩标记满足预设条件时,将所述节点内容对应的文件作为待解压文件。
其中,在本申请的一些实施例中,确定单元包括:
生成子单元,用于基于用户对所述待解压文件的查看请求生成文件读取请求;
第二确定子单元,用于根据所述文件读取请求确定所述待解压文件的文件描述符以及文件路径;
第三确定子单元,用于根据所述文件描述符从所述文件路径对应的文件目录中确定所述待解压文件对应的索引节点。
其中,在本申请的一些实施例中,第二获取单元包括:
检索子单元,用于根据所述节点内容确定所述待解压文件对应的地址空间,并从所述地址空间检索所述待解压文件对应的页缓存结点;
创建子单元,用于当所述页缓存结点不存在时,创建所述页缓存结点以及所述页缓存结点对应的页缓存页;
第四确定子单元,用于根据所述节点内容确定所述页缓存页的磁盘地址,并将所述磁盘地址对应的文件作为待解压文件。
本申请实施例由确定模块201根据待解压文件的类型确定目标解压缩算法,接着,由配置模块202确定目标硬件设备,并将确定模块201确定的目标解压缩算法配置于目标硬件设备,随后,由解压模块203获取待解压文件,并根据配置由目标解压缩算法的目标硬件设备对待解压文件进行硬解压。
其中,本申请实施例根据待解压文件的类型确定目标解压缩算法,在确定目标硬件设备后,将目标解压缩算法配置到目标硬件设备中,当获取到待解压文件后,根据配置有目标解压缩算法的目标硬件设备对待解压文件进行硬解压。其中,通过配置有解压算法的硬件设备对待解压文件的硬解压,使得文件在解压时不依赖于软件应用的运行,减少对相关系统资源的调用和占用,降低系统性能的损耗,其中,当减少对相关系统资源的调用或者占用时,可提升文件的读取速率。
此外,本申请还提供一种电子设备,如图6所示,其示出了本申请所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图6中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
电子设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现本申请所提供的任一种文件解压方法中的步骤。
本申请实施例根据待解压文件的类型确定目标解压缩算法,在确定目标硬件设备后,将目标解压缩算法配置到目标硬件设备中,当获取到待解压文件后,根据配置有目标解压缩算法的目标硬件设备对待解压文件进行硬解压。其中,通过配置有解压算法的硬件设备对待解压文件的硬解压,使得文件在解压时不依赖于软件应用的运行,减少对相关系统资源的调用和占用,降低系统性能的损耗,其中,当减少对相关系统资源的调用或者占用时,可提升文件的读取速率。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本申请所提供的任一种文件解压方法中的步骤。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本申请所提供的任一种图像处理中的步骤,因此,可以实现本申请所提供的任一种文件解压方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请所提供的一种文件解压方法、装置、电子设备以及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种文件解压方法,其特征在于,包括:
根据待解压文件的类型确定目标解压缩算法;
确定目标硬件设备,并将所述目标解压缩算法配置于所述目标硬件设备;
获取所述待解压文件,并根据所述配置有目标解压缩算法的目标硬件设备对所述待解压文件进行硬解压。
2.根据权利要求1所述的方法,其特征在于,所述待解压文件包括增强型只读文件系统中的压缩文件。
3.根据权利要求1所述的方法,其特征在于,所述将所述目标解压缩算法配置于所述目标硬件设备,包括:
根据所述目标解压缩算法配置解压缩程序;
直接将所述解压缩程序刻录于所述目标硬件设备。
4.根据权利要求1所述的方法,其特征在于,所述获取所述待解压文件,包括:
确定所述待解压文件的索引节点;
根据所述索引节点中地址信息的偏移量获取所述索引节点对应的节点内容;
根据所述节点内容获取待解压文件。
5.根据权利要求4所述的方法,其特征在于,所述根据所述节点内容获取待解压文件,包括:
从所述节点内容中获取所述索引节点对应的压缩标记;
当所述压缩标记满足预设条件时,将所述节点内容对应的文件作为待解压文件。
6.根据权利要求4所述的方法,其特征在于,所述确定所述待解压文件的索引节点,包括:
基于用户对所述待解压文件的查看请求生成文件读取请求;
根据所述文件读取请求确定所述待解压文件的文件描述符以及文件路径;
根据所述文件描述符从所述文件路径对应的文件目录中确定所述待解压文件对应的索引节点。
7.根据权利要求4所述的方法,其特征在于,所述根据所述节点内容获取待解压文件,包括:
根据所述节点内容确定所述待解压文件对应的地址空间,并从所述地址空间检索所述待解压文件对应的页缓存结点;
当所述页缓存结点不存在时,创建所述页缓存结点以及所述页缓存结点对应的页缓存页;
根据所述节点内容确定所述页缓存页的磁盘地址,并将所述磁盘地址对应的文件作为待解压文件。
8.一种文件解压装置,其特征在于,包括:
确定模块,用于根据待解压文件的类型确定目标解压缩算法;
配置模块,用于确定目标硬件设备,并将所述目标解压缩算法配置于所述目标硬件设备;
解压模块,用于获取所述待解压文件,并根据所述配置有目标解压缩算法的目标硬件设备对所述待解压文件进行硬解压。
9.一种电子设备,其特征在于,所述电子设备包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述文件解压方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述文件解压方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210369197.0A CN114817160A (zh) | 2022-04-08 | 2022-04-08 | 文件解压方法、装置、电子设备及计算机可读存储介质 |
PCT/CN2023/077404 WO2023193528A1 (zh) | 2022-04-08 | 2023-02-21 | 文件解压方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210369197.0A CN114817160A (zh) | 2022-04-08 | 2022-04-08 | 文件解压方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114817160A true CN114817160A (zh) | 2022-07-29 |
Family
ID=82535038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210369197.0A Pending CN114817160A (zh) | 2022-04-08 | 2022-04-08 | 文件解压方法、装置、电子设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114817160A (zh) |
WO (1) | WO2023193528A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023193528A1 (zh) * | 2022-04-08 | 2023-10-12 | 深圳Tcl新技术有限公司 | 文件解压方法、装置、电子设备及计算机可读存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090282064A1 (en) * | 2008-05-07 | 2009-11-12 | Veeramanikandan Raju | On the fly compression and storage device, system and method |
CN106936441B (zh) * | 2017-02-27 | 2020-08-21 | 深圳国泰安教育技术有限公司 | 一种数据压缩方法和装置 |
CN110688342A (zh) * | 2019-08-22 | 2020-01-14 | 苏州浪潮智能科技有限公司 | 一种Linux系统下解压文件的方法、设备及可读介质 |
CN111352912B (zh) * | 2020-03-10 | 2024-04-12 | Oppo广东移动通信有限公司 | 压缩文件处理方法、装置、存储介质、终端以及服务器 |
CN112559463B (zh) * | 2020-12-18 | 2023-08-25 | 杭州数梦工场科技有限公司 | 压缩文件处理的方法及装置 |
CN113300715B (zh) * | 2021-05-20 | 2022-08-19 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据处理方法、装置、硬件压缩设备以及介质 |
CN114817160A (zh) * | 2022-04-08 | 2022-07-29 | 深圳Tcl新技术有限公司 | 文件解压方法、装置、电子设备及计算机可读存储介质 |
-
2022
- 2022-04-08 CN CN202210369197.0A patent/CN114817160A/zh active Pending
-
2023
- 2023-02-21 WO PCT/CN2023/077404 patent/WO2023193528A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023193528A1 (zh) * | 2022-04-08 | 2023-10-12 | 深圳Tcl新技术有限公司 | 文件解压方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023193528A1 (zh) | 2023-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9081846B2 (en) | Generating a local copy of a virtualized application package from a local installation | |
CN110018998B (zh) | 一种文件管理方法、系统及电子设备和存储介质 | |
US10166467B2 (en) | Information processing device, data structure of game data, and recording medium | |
CN113032099B (zh) | 云计算节点、文件管理方法及装置 | |
CN106648569B (zh) | 目标序列化实现方法和装置 | |
CN112214247B (zh) | 一种系统启动方法以及相关设备 | |
CN112882764B (zh) | 组件加载方法、装置、计算机设备及存储介质 | |
CN112416880A (zh) | 一种基于实时归并的海量小文件存储性能优化方法及装置 | |
WO2023193528A1 (zh) | 文件解压方法、装置、电子设备及计算机可读存储介质 | |
CN112988062B (zh) | 一种元数据读取限制方法、装置、电子设备及介质 | |
CN113688139A (zh) | 对象存储方法、网关、设备及介质 | |
CN113326288A (zh) | 数据处理方法、装置、电子设备 | |
CN115586872A (zh) | 一种容器镜像管理方法、装置、设备及存储介质 | |
CN115495020A (zh) | 文件处理方法、装置、电子设备和可读存储介质 | |
CN112559568A (zh) | 一种虚拟物品确定方法、装置及计算机可读存储介质 | |
CN112347794A (zh) | 数据翻译方法、装置、设备及计算机存储介质 | |
CN113127430A (zh) | 镜像信息处理方法、装置、计算机可读介质及电子设备 | |
CN110908958B (zh) | 一种文件处理方法、装置、终端及存储介质 | |
CN112579607B (zh) | 数据访问方法和装置、存储介质、电子设备 | |
WO2023272920A1 (zh) | 一种缓存文件管理方法、装置、电子设备和存储介质 | |
CN117112529A (zh) | 一种数据管理方法、装置、计算机设备和存储介质 | |
CN113996066A (zh) | 游戏应用更新方法、装置、存储介质及计算机设备 | |
CN117270753A (zh) | 数据搬移处理方法、装置、电子设备和存储介质 | |
CN116303258A (zh) | 一种分布式存储系统哈希索引的构建方法和装置 | |
CN114153787A (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 |