CN101390063A - Fat卷上基于文件的压缩 - Google Patents

Fat卷上基于文件的压缩 Download PDF

Info

Publication number
CN101390063A
CN101390063A CNA2007800063121A CN200780006312A CN101390063A CN 101390063 A CN101390063 A CN 101390063A CN A2007800063121 A CNA2007800063121 A CN A2007800063121A CN 200780006312 A CN200780006312 A CN 200780006312A CN 101390063 A CN101390063 A CN 101390063A
Authority
CN
China
Prior art keywords
file
compressed
data
fat
compression
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
Application number
CNA2007800063121A
Other languages
English (en)
Inventor
P·B·阿扎尔罗
A·A·英格尔
O·温特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101390063A publication Critical patent/CN101390063A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

可以在压缩FAT卷内单独文件的同时保持其他文件不被压缩。FAT压缩过滤器(FCF)截取对文件系统的调用,执行与FAT卷上各文件相关的压缩和解压任务。用FAT文件系统压缩单独文件有助于确保闪存有较长寿命并且在仍然提供单独文件压缩优点的同时不会快速失效。FAT压缩过滤器允许卷内的单独文件被排除在压缩之外。

Description

FAT卷上基于文件的压缩
背景
存储器是嵌入式系统上的宝贵资源。对于许多嵌入式系统,闪存是供选择的存储介质。然而,闪存是昂贵的非易失性存储器,在失效前仅能写入有限次数。闪存失效的出现是因为每个闪存扇区在其失效和烧毁之前可以执行的写入事件次数有限。为了节省成本,许多系统尝试最小化所需的闪存量。虽然NTFS(新技术文件系统)提供可以节省存储器空间的压缩支持,但是它通常不用于闪存。对闪存使用NTFS会导致存储器快速失效,因为NTFS规律性地向介质上指定扇区写入日志文件,因此超出闪存允许的写入事件。此外,NTFS相比于其他文件系统需要更大量的空间开销。文件分配表(FAT)文件系统则常常用于闪存。基于扇区或卷的压缩结合FAT压缩一并使用来压缩整个卷,这可能会导致一些应用程序和操作系统组件缓慢或不适当地执行。
发明内容
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
可以在压缩FAT卷内单独文件的同时保持其他文件不被压缩。FAT压缩过滤器(FCF)程序截取对文件系统的文件请求并执行与FAT卷上各文件相关的压缩和解压。API可用于配置并执行与存储在FAT卷上的各文件压缩和解压有关的动作。用FAT文件系统压缩单独文件有助于确保闪存有较长寿命并且在仍然提供单独文件压缩优点的同时不会快速失效。FAT压缩过滤器允许卷内的单独文件被排除压缩。一般而言,被排除压缩的文件是若被压缩会对应用程序性能产生不利影响的文件。
附图说明
图1示出了一示例性计算体系结构;
图2示出了带单独文件压缩的FAT压缩系统;
图3示出了FAT卷上未经压缩的文件和经压缩的文件之间的映射;
图4示出了用于接收读请求的过程;
图5示出了用于接收写请求的过程;以及
图6示出了用于在FAT卷上创建文件的过程。
具体实施方式
现在参考其中相同的标号代表相似的元素的附图,描述各实施例。具体地,图1和相应的讨论旨在提供对在其中可以实现各实施例的合适计算环境的简要、概括描述。
一般而言,程序模块包括例程、程序、组件、数据结构和其他类型的结构,它们执行特定任务或实现特定的抽象数据类型。也可使用其它计算机系统配置,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机等等。也可使用分布式计算环境,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
现参考图1,将描述在各实施例中利用的计算机100的说明性计算机体系结构。图1所示计算机体系结构可被配置为移动计算设备和/或常规计算设备。例如,计算设备100可被配置为智能电话、PDA、台式计算机、服务器、写字板、膝上型计算机等。
如图所示,计算机100包括中央处理单元5(CPU)、包括随机存取存储器9(RAM)和只读存储器(ROM)11的系统存储器7、以及将存储器耦合至CPU 5的系统总线12。系统存储器7可以是非易失性存储器和易失性存储器的任何组合。基本输入/输出系统包含如在启动过程中帮助在计算机中的元件之间传输信息的基本例程,并储存在ROM 11中。计算机100还包括大容量存储设备14,用于存储操作系统16、应用程序和其他程序模块,这将在以下更为详尽地描述。
大容量存储设备14通过连接至总线12的大容量存储控制器(未示出)与CPU 5相连接。大容量存储设备14及其关联计算机可读介质为计算机100提供非易失性存储。虽然将在此处包含的计算机可读介质的描述针对诸如硬盘、DVD驱动器或CD-ROM驱动器的大容量存储设备,但是计算机可读介质可以是能够由计算机100访问的任何可用介质。
作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括易失性和非易失性、可移动和不可移动介质,它们以任意方法或技术实现,用于存储诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息。计算机存储介质包括,但不限于,RAM、ROM、EPROM、EEPROM、闪存或其它固态存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算设备100访问的任何其它介质。
根据各实施例,计算机100可以在使用通过诸如因特网的网络18与远程计算机的逻辑连接的联网环境中操作。计算机100可以通过连接至总线12的网络接口单元20与网络18相连。网络接口单元20也可用于连接其他类型的网络和远程计算机系统。连接可以是有线和/或无线连接。计算机100还包括输入/输出控制器22,用于从诸如键盘、鼠标、电子笔之类的多个设备接收输入并进行处理。类似地,输入/输出控制器22可以向显示器28、扬声器、或一些其他类型的设备提供输出。
如前简述的那样,多个程序模块和数据文件可以存储在计算机100的存储器内,包括适于控制计算设备操作的操作系统16,诸如来自华盛顿州雷蒙德市的微软公司的WINDOWS MOBILE或者WINDOWS XP操作系统。计算设备100可以是包括嵌入式操作系统以及其他嵌入式数据、文件和应用程序的嵌入式系统。
操作系统16可以利用FAT文件系统。一般而言,FAT文件系统允许操作系统跟踪文件每一片的位置和序列。此外,FAT文件系统允许操作系统16标识未被分配且新文件可用的簇。当接收到读取文件的请求时,FAT文件系统将文件的每一片重新装配成一个单元以供查看。
根据一个实施例,存储器的全部或部分可以是闪存或者适于嵌入式系统的其他存储器。大容量存储设备14和RAM 9还可以存储一个或多个程序模块。更具体地,大容量存储设备14和RAM 9可以存储FAT压缩过滤器(FCF)程序10。FCF程序10用于提供与文件24交互并将其压缩/解压以及与操作系统16交互的功能性。例如,FCF程序10被配置为独立截取对FAT文件系统的调用,执行压缩和解压任务,并将数据返回至大容量存储设备上的卷或请求应用程序或者将数据从大容量存储设备上的卷或请求应用程序返回。用FAT文件系统压缩单独文件有助于确保闪存有较长寿命并且在提供单独文件压缩的同时不会快速失效。FAT卷内的单独文件可被排除压缩。由此,可以使用排除列表26以便于将指定文件排除压缩。可以使用其他类型的指示符来指示文件是否应该被压缩。例如,每个文件可以在其首部内具有标识符,文件名可以指示其是否应该被压缩等。一般而言,被排除压缩的文件是在计算设备引导过程早期需要的文件或者是那些若被压缩会对应用程序性能产生不利影响的文件。文件被排除压缩的确定可由经授权的用户来配置。例如,在一个应用程序中,经授权的用户可以是系统管理员而在另一个应用程序中,经授权的用户可以是计算设备100的用户。如下将提供关于FCF程序10操作的额外细节。
图2示出了带单独文件压缩的FAT压缩系统。如图所示,FAT压缩系统200包括应用程序202、文件系统请求204、FCF程序10、卷列表210、设置212、IO管理器220、文件系统222、卷管理器224、FAT卷230和250、排除列表232、包括首部234的经压缩文件236、未经压缩的文件240、应用编程接口(API)238和存储260。
一般而言,FAT压缩系统200允许FAT卷内的单独文件被压缩而其他文件则保持不被压缩。FAT压缩过滤器(FCF)程序10截取由应用程序(例如,应用程序202)做出的向文件系统222的文件系统请求204,并执行与各文件相关的压缩和解压任务。典型地,被排除压缩的文件是引导文件以及若被压缩会对应用程序性能产生不利影响的文件。存储在FAT卷上的文件可以是经压缩文件236和未经压缩的文件240的混合。文件可以驻留在一个或多个FAT卷(例如,FAT卷1 230和FAT卷2 250)上。FCF程序10允许卷内的单独文件被排除在压缩之外。
排除列表232用于标识不应该被压缩的文件。排除列表232还可以包括不要被压缩的文件夹或路径。排除列表232可被配置为对包含在一文件夹内或在指定路径下的文件和/或子目录的全部/或部分进行压缩。排除列表232还包括检验和用来允许FCF程序10确定排除列表文件是否已被篡改或已被破坏。也可使用其他方法来确定排除列表是否已被篡改或已被破坏。
FCF程序10包括设置212。设置212可以包括与FCF程序10操作相关的不同类型的设置。例如,设置212可以包括总是被排除压缩的文件列表,默认压缩算法、最小压缩阈值等。设置212可以被全局地、按卷、按文件夹或按文件来配置。
FCF程序10还包括卷列表210,用来定义哪些FAT卷被选用以及包括应被FCF程序10压缩的文件。当访问一新FAT卷时,FCF程序10配置文件231的检验FAT卷引导。如果配置文件231存在并且指示该FAT卷有被FCF程序10选用,则该卷就由FCF程序10选用并更新卷列表210。类似地,当一卷未被选用就从卷列表210中移除该卷。许多其他方式也可用于确定FAT卷是否被FCF程序10选用。例如,驻留在计算设备上的任何FAT卷可以被自动选用,仅有指定的FAT卷被选用等。
经压缩文件236和未经压缩的文件240两者都驻留在FAT卷上。根据一个实施例,每个经压缩文件236包括由FCF程序10利用的首部234。根据一个实施例,首部234包括签名、压缩类型、检验和以及压缩映射信息。除了其他使用之外,FCF程序10使用首部234来标识一文件是否被压缩。当文件包括首部234时,则该文件被压缩。当文件不包括首部234时,则该文件未被压缩。这样就允许系统200读文件而无需分开的映射文件,并且使得文件便携并允许在同一文件系统上使用不同的压缩算法。首部234内的唯一签名还可用于标识文件作为经压缩文件。
首部234内的压缩类型可用于指定要对文件执行压缩的压缩算法。根据一个实施例,文件默认可由诸如MSZip压缩算法的ZIP压缩算法来压缩。也可指定其他压缩算法。例如,可使用LZNT算法。各压缩算法提供不同的优点。一般而言,需要在空间和性能之间进行权衡。选择压缩算法的能力允许应用程序和设备针对其特定使用而被优化。
也可使用其他方法来标识压缩算法。例如,所有的文件都可使用默认压缩算法来压缩,可以包括标识每个文件及其压缩算法的列表等。在每个经压缩文件236的首部234内包括压缩算法类型有助于确保即使在文件系统支持不同的默认压缩算法的情况下也可以访问该经压缩文件236。根据一个实施例,一旦已经使用压缩算法压缩文件,则对该文件的任何更新将继续使用同一压缩算法。为了改变压缩算法,文件由FCF程序10解压并在随后使用所选的压缩算法由FCF程序10进行重新压缩。
当应用程序202请求从选用的FAT卷(例如,FAT卷230)读取数据时,FCF程序10标识该文件是否被压缩。根据一个实施例,FCF程序10确定该文件是否包括首部234。如果文件的确包括首部,则FCF程序10从文件读取数据,解压文件的请求部分,将请求的数据通过文件系统请求204传递回请求应用程序202。当文件不包括首部时,FCF程序10传递回请求数据而不对数据执行任何解压。
当应用程序202请求写入时,FCF程序10通过文件系统请求204接收请求并且确定该文件是否被压缩或者是否应该被压缩(例如,对不同卷的复制,文件当前不存在等)。当文件已经不存在FAT卷内时,就访问排除列表232来确定在其被写入FAT卷之前是否压缩该文件。如同读请求一样,做出有关该文件是否包括首部234的判定。如果该文件包括首部234,则FCF程序10确定在首部234中指定的压缩算法并且使用该指定的压缩算法在将数据写入FAT卷上的文件之前压缩该数据。当文件不包括首部时,就将数据写入FAT卷上的文件而不经压缩。
当复制FAT卷上的文件时,压缩系统200将新文件写入指定位置。如果文件被复制到指定文件要被压缩的位置,则文件在被存储在FAT卷上之前被压缩。在同一FAT卷中移动文件改变在文件分配表中的文件位置而不改变文件的压缩。作为替换,移动可以涉及确定文件是否应该在新位置内被压缩或解压。在此示例中,移动会被看作是在移动后从FAT卷中移除的原始文件的副本。类似地,文件的跨卷移动涉及将文件复制到新卷并在随后删除原始卷上的文件。
根据一个实施例,如果文件被复制到它将以压缩格式存储的另一设备的卷上,则该文件在目的地设备上由FCF程序重新压缩。这有助于确保每个设备都可以与经压缩的文件交互。根据另一个实施例,文件能够以压缩格式复制到新位置。在此情况下,应该确保设备包括对指定压缩算法的支持。
根据一个实施例,如果文件被压缩,则FCF程序10确定压缩状态下的文件是否达到最小压缩阈值(例如,默认节省<5%)。可以利用其他阈值。如果文件没有达到最小压缩阈值,则该文件随后就作为未经压缩的文件存储以帮助确保没有性能劣化。由于没有达到最小压缩阈值而被排除压缩的文件被添加到排除列表232并被标记为没有达到最小压缩阈值。被标记为没有达到最小压缩阈值的任何文件可以根据指定设置而被周期性地重新测试。最小压缩阈值的值可以存储在设置212内并可按各种不同方式来配置。例如,最小压缩阈值可以使用API 238来配置。
根据一个实施例,FCF程序10已知的引导文件保持未经压缩并且可以不被压缩。引导文件是由FCF程序10通过搜索引导驱动程序的运行时寄存器来动态标识的。这些引导驱动程序可被添加至排除列表232和/或设置212并被标记为强制性的。当被标记为强制性时,该文件绝不会被压缩。
API 238提供接口用来与有关压缩FAT卷上单独文件的设置进行交互和调整。API 238可用于从排除列表232中移除文件或路径,提交现时的排除列表改变;设置特定文件(或文件夹内的文件或一路径下的文件)是否要被压缩或解压;更新文件的压缩状态;只将改变应用于新文件;选用/分离卷;以及改变默认压缩类型。命令行工具也可用于配置与压缩FAT卷上文件有关的设置。例如,命令行工具可用于将卷附至或分离FCF程序,显示排除列表等。以下是可在API 238中利用的示例性功能的列表。也可以利用其他的功能组合。
更新的排除列表用于添加、移除、显示和改变排除列表232中的信息。
转换文件功能用于对文件或目录结构中的各文件的压缩状态做出改变。根据一个实施例,转换文件功能包括可以利用如下自变量。“Subdirs”自变量强制目录内的所有文件及其子目录改变成指定的压缩状态。“C”或压缩自变量压缩文件。“U”或解压自变量解压文件。FORCE(强制)自变量与任何其他自变量结合进行文件的强制改变而不考虑文件是否包括在排除列表232内。还可以提供指定要使用的压缩算法(例如,-LZNT、-MSZip等)的自变量。
图3示出了FAT卷上未经压缩的文件和经压缩的文件之间的映射。未经压缩的文件310表示存储在32k“组块”内的文件。也可以使用其他组块大小。当未经压缩的文件310被压缩成经压缩的文件312时,首部320就被添加至文件并且未经压缩的文件310中的每个组块(1-4)被压缩并存储在首部320之后。如图所示,原始未经压缩的文件310中的组块1的大小缩减了24k;组块2的大小缩减了3k;组块3的大小缩减了4k;而组块4的大小缩减了23k。如上简述的那样,首部包括压缩组块的映射(以允许碎片)。在以下示例中,做出将从未经压缩的文件310中60k开始的12k数据压缩到未经压缩的文件310的请求。包括在首部320内的映射信息被用来确定在经压缩的文件312中的哪里访问所请求的数据。
FCF程序在文件请求被发送至文件系统之前截取这些文件请求。计及由于压缩导致的文件结构的改变,文件请求做通过映射从未经压缩文件到经压缩文件的偏移量而被修改。在此示例中,对于组块2和3的请求被发送至文件系统的堆栈,后者处理盘IO。文件系统随后返回经压缩文件312的经压缩的数据(组块2和3)。FCF程序截取返回数据,解压数据,截断没有请求的任何额外数据,并在随后返回所请求的数据。
现参考图4-6,将描述用于压缩FAT卷上单独文件的说明性过程。当阅读对在此提供的例程的讨论时,应当了解,各种实施例的逻辑操作是作为(1)运行于计算系统上的一系列计算机实现的动作或程序模块,以及/或者(2)计算系统内互连的机器逻辑电路或电路模块来实现的。该实现是取决于计算机系统的性能要求来选择的。因此,所例示的并且构成在此所述的实施例的逻辑操作被不同地表示为操作、结构性设备、动作或模块。这些操作、结构性设备、动作和模块可用软件、固件、专用数字逻辑以及它们的任何组合来实现。
图4示出了用于接收读请求的过程400。在开始操作之后,该过程移至在其中接收读请求的操作410。读请求可以针对经压缩文件中的数据或者针对未经压缩文件中的数据。根据一个实施例,读请求由在其到达文件系统之前由FCF程序截取。
移至判定操作420,做出有关从中请求数据的文件是否被压缩的判定。根据一个实施例,文件在其包括首部时是经压缩的。
当文件未被压缩,则过程行进至操作430,其中从未经压缩文件检索请求数据。过程随后移至操作460,其中数据被返回。
当文件被压缩,则过程行进至操作440,其中从经压缩文件检索并定位请求数据。根据一个实施例,经压缩文件中的首部包括指示该在经压缩文件中何处访问请求数据的映射信息。
移至操作450,使用指定压缩算法来解压检索到的数据。操作随后移至操作460,其中数据被返回给请求应用程序。随后该过程移至结束操作并返回以处理其它动作。
图5示出了用于接收写请求的过程500。在开始操作之后,该过程行进至在其中接收写请求的操作510。写请求可以请求将数据写入经压缩文件、未经压缩文件、或者当前在FAT卷上不存在的文件。
移至判定操作520,做出写操作是否针对FAT卷上已经存在的文件的判定。当文件尚不存在时,过程行进至操作540,其中文件被创建(参见图6及其相关讨论)。一般而言,文件被创建为经压缩文件或未经压缩文件。
当文件已经存在时,过程行进至判定操作530,其中做出有关该文件是否被压缩的判定。当文件未被压缩,则过程行进至操作560,其中将未经压缩的数据写入该文件。
当文件被压缩,则过程行进至操作550,其中使用所选压缩算法压缩与写请求相关联的数据。首部也被更新以包括映射信息的任何改变。过程随后移至操作560,其中将经压缩的数据写入该文件。
随后该进程移至结束框并返回以处理其它动作。
图6示出了用于创建文件的过程。在开始操作之后,该过程600行进至判定操作610,其中做出有关所示文件是否应该被压缩的判定。根据一个实施例,检验排除列表来确定该文件是否应该被压缩。当文件不将被压缩时,则过程行进至操作640,其中将未经压缩的数据写入新文件。
当文件将被压缩时,则过程行进至操作620,其中使用所选压缩算法压缩数据。过程随后行进至可任选操作630,在其中创建首部。如上所述,首部3包括与文件压缩相关的信息以及映射信息。
移至操作640,将经压缩文件和首部(如果包括的话)写入新文件。随后该过程移至结束操作并返回以处理其它动作。
以上说明、示例和数据提供了对本发明成分的制造和使用的全面描述。因为可以在不背离本发明的精神和范围的情况下做出本发明的许多实施例,所以本发明落在所附权利要求的范围内。

Claims (20)

1.一种用于在FAT卷上压缩单独文件同时保持其他文件未被压缩的计算机实现方法,包括:
接收对所述FAT卷上的文件读或写数据的文件系统请求;
确定所述文件是否被压缩,并且在所述文件被压缩时:
当所述文件系统请求是写入所述数据时,压缩所述数据并将所述数据写入所述FAT卷上的文件;其中所述FAT卷包括未经压缩的文件和经压缩的文件;以及
当所述文件系统请求是读取所述数据时,访问所述FAT卷上的文件;解压所述数据;并返回所述经解压的数据。
2.如权利要求1所述的方法,其特征在于,接收所述文件系统请求包括在所述文件系统请求到达所述文件系统之前截取所述文件系统请求。
3.如权利要求2所述的方法,其特征在于,确定所述文件是否被压缩包括检验排除列表。
4.如权利要求3所述的方法,其特征在于,所述排除列表包括要保持不被压缩的文件和文件夹。
5.如权利要求3所述的方法,其特征在于,还包括在所述排除列表内存储引导文件。
6.如权利要求1所述的方法,其特征在于,确定所述文件是否被压缩包括确定所述文件是否包括指示所述文件被压缩的指示符。
7.如权利要求6所述的方法,其特征在于,所述标识符是包括压缩类型部分和映射部分的首部。
8.如权利要求7所述的方法,其特征在于,压缩所述数据和解压所述数据是使用在所述首部的压缩类型部分中指定的压缩算法来执行的。
9.如权利要求7所述的方法,其特征在于,访问所述文件包括访问所述首部的所述映射部分并确定对所述文件内所述数据的映射。
10.一种用于在FAT卷上压缩单独文件同时保持其他文件未被压缩的系统,包括:
包括经压缩文件和未经压缩文件两者的FAT卷;以及
被配置为执行动作的文件压缩过滤器(FCF)程序,所述动作包括:
接收向所述FAT卷上的一个所述经压缩文件写入数据的文件系统写请求;
接收从所述FAT卷上的一个所述经压缩文件读取数据的文件系统读请求;
响应于所述读请求从所述一个所述经压缩文件解压所述数据并返回所述经解压数据;以及
响应于所述写请求压缩所述数据并在所述一个所述经压缩文件中存储所述经压缩的数据。
11.如权利要求10所述的系统,其特征在于,还包括标识所述FAT卷内要被压缩的文件的排除列表。
12.如权利要求11所述的系统,其特征在于,所述排除列表包括用于指示何时所述排除列表已被改变的检验和。
13.如权利要求11所述的系统,其特征在于,所述FAT卷上的每个所述经压缩文件包括首部,所述首部包含指定压缩算法的压缩类型。
14.如权利要求13所述的系统,其特征在于,所述FCF程序还包括指示至少一个选用的FAT卷的卷列表。
15.如权利要求13所述的系统,其特征在于,所述FCF程序还被配置为确定所述最小压缩阈值是否达到。
16.如权利要求13所述的系统,其特征在于,还包括含有经压缩文件和未经压缩文件的第二FAT卷,并且其中所述FCF程序还被配置为复制并在所述FAT卷和所述第二数据之间移动所述经压缩文件和所述未经压缩文件。
17.一种具有用于调整与FAT卷上单独的经压缩文件相关的设置同时保持其他文件未被压缩的计算机可执行指令的计算机可读介质,所述指令包括:
接收请求以更新如下一项:列出所述FAT卷上保持不被压缩的文件的排除列表;所述FAT卷上文件的压缩状态;以及压缩算法;以及
响应于所述请求,更新所述排除列表、所述压缩状态和所述压缩算法之一。
18.如权利要求17所述的计算机可读介质,其特征在于,更新所述排除列表的所述请求指示以下任一项:添加至所述排除列表;从所述排除列表中移除;显示所述排除列表;以及改变所述排除列表中的元素。
19.如权利要求17所述的计算机可读介质,其特征在于,更新所述FAT卷上所述文件的压缩状态的所述请求包括指示是否压缩所述文件或者是否解压所述文件。
20.如权利要求17所述的计算机可读介质,其特征在于,更新所述压缩算法的所述请求包括指示压缩算法的类型。
CNA2007800063121A 2006-02-23 2007-01-10 Fat卷上基于文件的压缩 Pending CN101390063A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/360,909 US20070208893A1 (en) 2006-02-23 2006-02-23 File-based compression on a fat volume
US11/360,909 2006-02-23

Publications (1)

Publication Number Publication Date
CN101390063A true CN101390063A (zh) 2009-03-18

Family

ID=38437691

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007800063121A Pending CN101390063A (zh) 2006-02-23 2007-01-10 Fat卷上基于文件的压缩

Country Status (8)

Country Link
US (1) US20070208893A1 (zh)
EP (1) EP1999595A4 (zh)
JP (1) JP2009527847A (zh)
KR (1) KR20080097196A (zh)
CN (1) CN101390063A (zh)
BR (1) BRPI0708207A2 (zh)
RU (1) RU2008134525A (zh)
WO (1) WO2007097832A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677658A (zh) * 2013-07-19 2014-03-26 记忆科技(深圳)有限公司 固态硬盘控制器及固态硬盘的数据处理方法
CN107870728A (zh) * 2016-09-23 2018-04-03 伊姆西Ip控股有限责任公司 用于移动数据的方法和设备
WO2018165939A1 (en) * 2017-03-16 2018-09-20 Intel Corporation Flash data compression decompression method and apparatus
CN110321330A (zh) * 2019-05-23 2019-10-11 深圳市金泰克半导体有限公司 文件压缩、解压缩方法、装置及计算机设备

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8327050B2 (en) * 2005-04-21 2012-12-04 International Business Machines Corporation Systems and methods for compressing files for storage and operation on compressed files
US8782436B2 (en) * 2006-05-31 2014-07-15 International Business Machines Corporation Method and system for transformation of logical data objects for storage
US8868930B2 (en) * 2006-05-31 2014-10-21 International Business Machines Corporation Systems and methods for transformation of logical data objects for storage
US20080120315A1 (en) * 2006-11-21 2008-05-22 Nokia Corporation Signal message decompressor
US8731190B2 (en) 2009-06-09 2014-05-20 Emc Corporation Segment deduplication system with encryption and compression of segments
US8762348B2 (en) * 2009-06-09 2014-06-24 Emc Corporation Segment deduplication system with compression of segments
JP2011128792A (ja) 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
US8868575B2 (en) * 2010-01-13 2014-10-21 International Business Machines Corporation Method and system for transformation of logical data objects for storage
US9305045B1 (en) * 2012-10-02 2016-04-05 Teradata Us, Inc. Data-temperature-based compression in a database system
JP5868349B2 (ja) * 2013-04-24 2016-02-24 京セラドキュメントソリューションズ株式会社 データ管理システム、画像処理装置、画像復元装置、プログラム、及びデータ管理方法
US10911065B2 (en) * 2015-10-20 2021-02-02 Sinan Karaca Computer system and method including selectively compressing data files and directories based on an operator indication and representing the amount of available free space
US10353632B2 (en) * 2016-11-15 2019-07-16 StorageOS Limited System and method for storing data blocks in a volume of data
US10489350B2 (en) * 2017-02-24 2019-11-26 Advanced Micro Devices, Inc. Data compression with inline compression metadata
CN109669640B (zh) * 2018-12-24 2023-05-23 浙江大华技术股份有限公司 一种数据存储方法、装置、电子设备及介质
CN113728601B (zh) * 2019-04-29 2023-04-25 日立数据管理有限公司 优化压缩数据的存储和获取
US11086821B2 (en) * 2019-06-11 2021-08-10 Dell Products L.P. Identifying file exclusions for write filter overlays
US11442627B2 (en) * 2019-06-13 2022-09-13 International Business Machines Corporation Data compression utilizing low-ratio compression and delayed high-ratio compression
US11533063B2 (en) * 2019-08-01 2022-12-20 EMC IP Holding Company LLC Techniques for determining compression tiers and using collected compression hints
US11294570B2 (en) * 2020-01-15 2022-04-05 EMC IP Holding Company LLC Data compression for having one direct connection between host and port of storage system via internal fabric interface
KR102216841B1 (ko) 2020-05-19 2021-02-18 (주)이스트소프트 유동적인 메모리 사용을 기반으로 하는 고속 압축 해제를 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
CN114328373A (zh) * 2020-09-29 2022-04-12 伊姆西Ip控股有限责任公司 管理文件系统的方法、电子设备和计算机程序产品
US11681659B2 (en) * 2021-05-21 2023-06-20 Red Hat, Inc. Hybrid file compression model

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5438671A (en) * 1991-07-19 1995-08-01 Dell U.S.A., L.P. Method and system for transferring compressed bytes of information between separate hard disk drive units
US5481701A (en) * 1991-09-13 1996-01-02 Salient Software, Inc. Method and apparatus for performing direct read of compressed data file
JPH05165690A (ja) * 1991-12-13 1993-07-02 Nippon Telegr & Teleph Corp <Ntt> ファイル処理装置
US5649095A (en) * 1992-03-30 1997-07-15 Cozza; Paul D. Method and apparatus for detecting computer viruses through the use of a scan information cache
US5442718A (en) * 1992-09-07 1995-08-15 Sony Corporation Apparatus and method for storing and reproducing digital image data yielding high resolution and high quality video image data
JP3517940B2 (ja) * 1994-03-24 2004-04-12 エー・アイ・ソフト株式会社 圧縮データの読出・書込方法および装置
US5838996A (en) * 1994-05-31 1998-11-17 International Business Machines Corporation System for determining presence of hardware decompression, selectively enabling hardware-based and software-based decompression, and conditioning the hardware when hardware decompression is available
US5915129A (en) * 1994-06-27 1999-06-22 Microsoft Corporation Method and system for storing uncompressed data in a memory cache that is destined for a compressed file system
JP3509285B2 (ja) * 1995-05-12 2004-03-22 富士通株式会社 圧縮データ管理方式
US5809295A (en) * 1995-09-26 1998-09-15 Microsoft Corporation Method and apparatus for storing compressed file data on a disk where each MDFAT data structure includes an extra byte
US5699428A (en) * 1996-01-16 1997-12-16 Symantec Corporation System for automatic decryption of file data on a per-use basis and automatic re-encryption within context of multi-threaded operating system under which applications run in real-time
US6192471B1 (en) * 1996-01-26 2001-02-20 Dell Usa, Lp Operating system independent system for running utility programs in a defined environment
US5819296A (en) * 1996-10-31 1998-10-06 Veritas Software Corporation Method and apparatus for moving large numbers of data files between computer systems using import and export processes employing a directory of file handles
KR100242996B1 (ko) * 1996-12-30 2000-02-01 김영환 압축데이타 저장방법
US6108697A (en) * 1997-10-06 2000-08-22 Powerquest Corporation One-to-many disk imaging transfer over a network
US6145069A (en) * 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
EP1192547A4 (en) * 1999-03-15 2003-07-23 Powerquest Corp MANIPULATION OF COMPUTER CONTENT VOLUME SEGMENTS
US7369161B2 (en) * 1999-06-08 2008-05-06 Lightsurf Technologies, Inc. Digital camera device providing improved methodology for rapidly taking successive pictures
JP3871831B2 (ja) * 1999-08-11 2007-01-24 株式会社リコー 再生装置と再生方法
WO2001050612A1 (en) * 2000-01-05 2001-07-12 Realnetworks, Inc. Systems and methods for multiple-file data compression
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6944742B1 (en) * 2000-04-28 2005-09-13 Microsoft Corporation Compressed file system for non-volatile RAM
EP1233522A1 (en) * 2001-02-14 2002-08-21 Siemens Aktiengesellschaft A data compression/decompression method and apparatus
US7072879B2 (en) * 2001-10-22 2006-07-04 Siemens Building Technologies, Inc. Partially embedded database and an embedded database manager for a control system
US7373491B2 (en) * 2002-02-27 2008-05-13 Rockwell Automation Technologies, Inc. Processor with versatile external memory interface
TW591524B (en) * 2002-03-13 2004-06-11 Insyde Software Corp Updating method of keyboard controller in notebook computer
US20030226005A1 (en) * 2002-05-28 2003-12-04 Vincent Wu Bootable CD controller with embedded operating system
US20040054846A1 (en) * 2002-09-16 2004-03-18 Wen-Tsung Liu Backup device with flash memory drive embedded
WO2005103878A2 (en) * 2004-04-26 2005-11-03 Storewiz, Inc. Method and system for compression of files for storage and operation on compressed files

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677658A (zh) * 2013-07-19 2014-03-26 记忆科技(深圳)有限公司 固态硬盘控制器及固态硬盘的数据处理方法
CN107870728A (zh) * 2016-09-23 2018-04-03 伊姆西Ip控股有限责任公司 用于移动数据的方法和设备
CN107870728B (zh) * 2016-09-23 2021-02-09 伊姆西Ip控股有限责任公司 用于移动数据的方法和设备
US10996858B2 (en) 2016-09-23 2021-05-04 EMC IP Holding Company LLC Method and device for migrating data
WO2018165939A1 (en) * 2017-03-16 2018-09-20 Intel Corporation Flash data compression decompression method and apparatus
US10970206B2 (en) 2017-03-16 2021-04-06 Intel Corporation Flash data compression decompression method and apparatus
CN110321330A (zh) * 2019-05-23 2019-10-11 深圳市金泰克半导体有限公司 文件压缩、解压缩方法、装置及计算机设备

Also Published As

Publication number Publication date
US20070208893A1 (en) 2007-09-06
WO2007097832A1 (en) 2007-08-30
EP1999595A1 (en) 2008-12-10
EP1999595A4 (en) 2010-09-15
JP2009527847A (ja) 2009-07-30
RU2008134525A (ru) 2010-02-27
KR20080097196A (ko) 2008-11-04
BRPI0708207A2 (pt) 2011-05-17

Similar Documents

Publication Publication Date Title
CN101390063A (zh) Fat卷上基于文件的压缩
US10915247B2 (en) Efficient data management through compressed data interfaces
KR101359834B1 (ko) 압축 버전을 포함하는 내용을 업데이트하는 방법 및시스템들
CN108170460B (zh) 一种嵌入式系统增量升级的方法及装置
CN102880663B (zh) 部分去重复的文件的优化
US8150890B2 (en) File system that manages files according to content
US8402202B2 (en) Input/output control method and apparatus optimized for flash memory
WO2017054756A1 (zh) 一种数据处理方法、装置及闪存设备
US9116904B2 (en) File system operation on multi-tiered volume
US7970804B2 (en) Journaling FAT file system and accessing method thereof
JP2009530702A (ja) データ記憶管理方法およびデバイス
US20130282997A1 (en) Computer system, storage apparatus and data transfer method
US20140280397A1 (en) Heterogenic volume generation and use system
CN101930387A (zh) 用于更新压缩只读文件系统的改进的容错方法及装置
JP6011349B2 (ja) ストレージ装置、およびデータ圧縮方法
US20120221609A1 (en) Data Storage System and Method
WO2014159424A1 (en) Provisioning of multiple tiers in heterogenic data volume
CN102737205B (zh) 保护包括可编辑元数据的文件
CN110825419B (zh) 一种固件刷新方法、装置及电子设备和存储介质
US8578359B2 (en) Method and apparatus for reliable in-place update
JP5217155B2 (ja) ファイル圧縮自動判定方式および方法、並びに、プログラム
CN101977231A (zh) 映像文件的下载方法
US20070288661A1 (en) Method and media for reducing executable storage requirements in wireless environment
US20160342617A1 (en) File system storage
CN116339793A (zh) 智能物联网操作系统升级方法、装置、计算机设备和介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20090318