windows文件系统调研报告.docx
《windows文件系统调研报告.docx》由会员分享,可在线阅读,更多相关《windows文件系统调研报告.docx(18页珍藏版)》请在冰豆网上搜索。
windows文件系统调研报告
鲁东大学
(2013—2014学年第二学期)
论文题目:
windows文件系统课程名称:
操作系统内核分析授课教师:
刘飞
姓名:
马振磊彭陆于洋
论文得分
批阅人签字
学号201122124652011221246620112212480
年级:
2011级评语:
专业:
计算机科学
学院(部):
信息与电气工程学院
注意事项:
1、以上各项由学生认真填写。
2、课程论文应符合一般学术规范,且具有一定学术价值;凡学校检查或抽查不合格者,一律取消该门课程成绩和学分。
3、论文作者要严格遵守学术道德规范,如发现学术不端行为,将按照学校有关规定严肃处理。
4、论文得分由批阅人填写,并签字确认;批阅人应根据作业质量客观、公正得在文后签写批阅意见;
5、所有课程论文均须用A4纸打印,加装本封面,左侧装订。
6、课程论文由各学院(部)统一保存,以备查用。
(注:
页面不足请在背面续写)
Windows文件系统
一.什么是文件系统
文件系统又被称作文件管理系统,它是指操作系统中负责管理和存储文件信息的软件机构。
文件系统由与文件管理有关的软件、被管理的文件以及实施文件管理所需的数据结构这三部分构成。
从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件的存储并对存入的文件进行保护和检索的系统。
具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
二.常见的文件系统类型
MicrosoftWindows系列操作系统中共使用了5种不同的文件系统,它们分别是:
FAt12、FAT16、FAT32、NTFS和HPFS。
下面将对这5种文件系统的特点和规则做详细介绍,其中FAt12、FAT16、FAT32均是Fat文件系统,是FileAllocationTable的简称。
FAT12文件系统
FAT12文件系统是伴随着DOS操作系统放下的最古老的FAT文件系统。
1.FAT12文件系统的特点
FAT12文件系统采用12位文件分配表,它被使用在DOS3.0以前,并因此而得名。
目前这种文件系统仍然在软盘驱动器中使用,其他介质中基本已经不再使用这种文件系统了。
Fat12文件系统可管理的磁盘容量是8M,在当时没有硬盘的情况下,这个磁盘管理能力是非常大的。
2.FAT12文件系统的限制
Ø文件名:
只能是8.3格式的文件名。
Ø磁盘容量:
最多8M(4096clusters×4sectors/clusters×512bytes、sectors)
Ø文件碎片严重(只在磁盘上不存储在不连续的簇内)
FAT16文件系统
在DOS2.0的使用过程中,对更大的磁盘的管理能力的需求已经出现,因此在DOS3.0中,微软推出了FAT16文件系统。
3.FAT16文件系统的特点
FAT16文件系统采用16位字长的分区表,可使用的簇的总数增加到2的16次幂(65536)个。
Fat16文件系统在刚推出时可管理磁盘的能力为32M。
随着硬盘技术的发展,DOS4.0之后的Fat16文件系统可管理128M的磁盘。
这个数字不断的发展,直至发展至2G。
4.FAT16文件系统的限制
Ø磁盘分区最大只能到2GB
FAT16文件系统限于65,525个簇,簇大小必须为2的次方且小于65,536字节,即最大簇大小为32,768字节(32K),将最大簇数(65,525)乘以最大簇大小(32,768)等于2GB。
Ø磁盘利用效率低
在微软的DOS和Windows系列中,磁盘文件的分配以簇为单位,一个簇只分配给一个文件使用,不管这个文件占用整个簇容量的多少。
这样,即使一个很小的文件也要占用一个簇,剩余的簇空间便全部闲置,造成磁盘空间的浪费。
FAT16文件系统分区大小与簇大小对应关系如下表所示:
FAT32文件系统
1.FAT32文件系统是FAT系列文件系统的最后一个产品,它采用32位的文件分配表,磁盘的管理能力大大增强,突破了FAT162GB的分区容量的限制。
FAT32文件系统的特点
ØFAT32文件系统可支持的磁盘分区的大小最大为32GB,但不支持小512MB的分区;支持的最大单个文件的大小为2GB;
ØFAT32文件系统采用大小为4KB的簇,磁盘利用效率高,可更有效地保存信息;
ØFAT32文件系统的启动记录被包含在一个含有关键数据的结构中,减少了计算机文件系统崩溃的可能性;
2.FAT32文件系统的限制
FAT32文件系统分区大小与簇大小对应关系如下表所示:
NTFS文件系统
NTFS文件系统是一个基于安全性的文件系统,是WindowsNT所采用的独特的文件系统结构,它是建立在保护文件和目录数据基础上,同时照顾节省存储资源、减少磁盘占用量的一种先进的文件系统。
5.NTFS文件系统的特点
ØNTFS可以支持的分区(如果采用动态磁盘则称为卷)最大大小可以达到2TB;
ØNTFS是一个可恢复的文件系统。
NTFS通过使用标准的事物处理日志和恢复技术来保证分区的一致性。
发生系统失败事件时,NTFS使用日志文件和检查点信息自动恢复文件系统的一致性。
ØNTFS支持对分区、文件夹和文件的压缩。
任何基于Windows的应用程序对NTFS分区上的压缩文件进行读写时不需要事先由其他程序进行解压缩,当对文件进行读取时,文件将自动进行解压缩;文件关闭或保存时会自动对文件进行压缩。
ØNTFS采用了更小的簇,可以更有效率地管理磁盘空间。
Ø基于Win2000的NTFS文件系统下可以进行磁盘配额管理。
6.NTFS文件系统的优点
Ø具备错误预警的文件系统
在NTFS分区中,最开始的16个扇区是分区引导扇区,其中保存着分区引导代码,接着就是主文件表(MasterFileTable,以下简称MFT),但如果它所在的磁盘扇区恰好出现损坏,NTFS文件系统会比较智能地将MFT换到硬盘的其他扇区,保证了文件系统的正常使用。
而以前的FAT16和FAT32的FAT(文件分配表)则只能固定在分区引导扇区的后面,一旦遇到扇区损坏,那么整个文件系统就要瘫痪。
Ø文件读取速度更高效
NTFS文件系统中如果文件或文件夹小于1500字节(电脑中有相当多这样大小的文件或文件夹),那么它们的所有属性,包括内容都会常驻在MFT中,而MFT是Windows一启动就会载入到内存中的,这样当你查看这些文件或文件夹时,其实它们的内容早已在缓存中了,自然大大提高了文件和文件夹的访问速度。
Ø磁盘自我修复功能
NTFS利用一种“自我疗伤”的系统,可以对硬盘上的逻辑错误和物理错误进行自动侦测和修复。
在FAT16和FAT32时代,我们需要借助Scandisk这个程序来标记磁盘上的坏扇区,但当发现错误时,数据往往已经被写在了坏的扇区上了,损失已经造成。
Ø“防灾赈灾”的事件日志功能
在NTFS文件系统中,任何操作都可以被看成是一个“事件”。
事件日志的作用不在于它能挽回损失,而在于它监督所有事件,从而让系统永远知道完成了哪些任务,那些任务还没有完成,保证系统不会因为断电等突发事件发生紊乱,最大程度降低了破坏性。
ØNTFS动态磁盘功能
动态磁盘提供了基本磁盘不具备的一些特性,例如创建可跨越多个磁盘的卷(跨区卷和带区卷)和创建具有容错能力的卷(镜像卷和RAID-5卷)的能力,动态磁盘上的所有卷都是动态卷。
7.NTFS文件系统的限制
NTFS文件系统的分区大小与簇大小的对应关系如下表所示:
HPFS文件系统
HPFS(HighPerformanceFileSystem)高性能文件系统是IBMOS/2操作系统的一种文件系统。
HPFS文件系统用来在多个硬盘(最大支持2T)间处理大文件(最大支持2G),同时支持长文件名(多达256个比特)。
HPFS应用一个中央定位的根目录以及B树来增加文件访问速度,可以与MS-DOS、FAT同时运行或者各自独立运行。
1.HPFS文件系统的优点
Ø利用支持邻域存储的扩展属性避免了MS-DOS的EADATASF档案问题
Ø不产生文件碎片
Ø文件簇大小比DOS要小
Ø支持大容量驱动器(高达512GB)
Ø支持快速磁盘操作
1.HPFS文件系统的限制
Ø占用内存较大
Ø在MS-DOS下无法看到HPFS驱动器,因此不能用软盘启动来DOS系统对HPFS驱动器进行操作
Ø需要第三方软件(比如PQ分区魔术师)才可以在DOS下访问HPFS驱动器
二.NTFS内部格局
NTFS文件系统与以前的FAT文件系统完全不同, 他采取了不同的方式对文件系统的数据及进行管理,甚至包括文件系统管理数据本身; 因此在NTFS 中引入了一些全新的 概念和结构。
1、 MFT (Master File Table)
MFT(MasterFileTable)主文件表 的简称, 它是 NTFS 文件系统的核心; MFT 表由 若干个“(1024字节大小的)MFT 项” 构成。
·大小:
系统刚刚创建时, 内部只包含17个 MFT 项, MFT 文件 大小为 32Kb
MFT项:
·大小:
1024 字节 ; 每个MFT 项 最多包含 65536 个属性。
·作用:
描述所对应的文件或目录的信息(每个文件或目录都会有一个与之对应的MFT 项)。
·结构:
MFT 项分为2部分(MFT 头 、 MFT 属性(MFT 属性又分为:
MFT 属性头、属性内容))
>>MFT头:
·大小:
MFT 项中的前 “数十字节” 为MFT 头。
·作用:
描述该MFT 项的类型(即指明其所拥有者的类型,目录后者文件类型)、文件起始簇号、大小等等信息。
注意:
每个文件或目录都必须至少有一个MFT 项, 而MFT 项是在超找文件/目录时,除了引导扇区外 必须首先查找的。
通过MFT 表获取目标的对应MFT 项, 便可通过MFT 项获取数据。
NTFS磁盘结构
1.卷
NTFS是以卷为基础的。
卷建立在磁盘分区之上。
分区是磁盘的基本组成部分,是一个能够被格式化和单独使用的逻辑单元。
当以NTFS格式来格式化磁盘分区时就创建了NTFS卷。
一个磁盘可以有多个卷,一个卷也可以由多个磁盘组成。
Windows2000/XP常使用FAT卷和NTFS卷。
一个36GB硬盘的三种磁盘配置的实例如下:
2.簇
NTFS与FAT一样,使用簇作为磁盘空间分配和回收的基本单位。
即一个文件占用若干个整簇,而最后一簇的剩余空间不再使用。
在内部,NTFS仅引用簇,而不知道磁盘扇区的大小。
这样使NTFS保持了与物理扇区大小的独立性,能够为不同大小的磁盘选择合适的簇。
卷上簇的大小(称为簇因子)是用户使用Format命令或其他格式化程序格式化卷时确定的,它随着卷的大小而不同,但都为物理扇区的整数倍。
簇的定位可使用逻辑簇号(LCN)和虚拟簇号(VCN)
——LCN对卷中所有的簇从头到尾进行简单编号。
簇因子乘以LCN可获得卷上的物理字节偏移量,从而得到物理磁盘地址。
——VCN对属于特定文件的簇从0到m编号,以便引用文件中的数据。
VCN不要求在物理上连续,可以映射到卷上任何号码的LCN。
3.主控文件表(MFT)
在NTFS中,卷中存放的所有数据,包括用于定位和恢复文件的数据结构、引导程序数据和记录整个卷的分配状态的位图(NTFS元数据),都包含在一个称为主控文件表(MFT)的文件中。
MFT是NTFS卷结构的核心,是NTFS最重要的系统文件。
MFT以文件记录数组实现,每个文件大小为1KB,卷上每个文件(包括MFT本身)都有一行MFT记录。
4.文件引用号
NTFS卷中的文件是通过称为“文件引用号”的64位值来标识的。
文件引用号由文件号(低48位)和文件顺序号(高16位)组成。
——文件号对应文件在MFT中的位置
——顺序号随文件记录的重用而增加,从而使得NTFS能完成内部的一致性检查。
5.文件记录
NTFS不是将文件仅仅视为一个文本库或二进制数据,而是将文件作为许多属性/属性值的集合来处理。
除数据属性外,其他文件属性包括文件名、文件时间标记、文件拥有者等。
6.文件名
NTFS和FAT路径中的每个文件名/目录名长度可达255个字节,可以包含Unicode字符、多个句点和空格。
MS-DOS不能正确识别Win32的文件名,因此NTFS自动生成8字符(加3字符扩展名)以内的MS-DOS文件名。
POSIX子系统需要WindowsNT支持的所有应用程序环境中最大的名字空间,因此,NTFS的名字空间等于POSIX的名字空间。
POSIX子系统可以创建在Win32和MS-DOS中不可见的名称。
7.常驻属性和非常驻属性
若文件的属性值能直接存放在MFT中时,该属性称为常驻属性。
小文件或小目录的所有属性均可在MFT中常驻。
如果属性值直接存放在MFT中,则NTFS只需访问磁盘一次即可获得数据;而FAT文件系统必须先在FAT表中查找文件,再读出连续分配的单元,才能找到文件数据。
8.文件名索引
在NTFS中,文件目录仅仅是文件名的一个索引。
即为了便于快速访问而用一种特殊的方式组织起来的文件名的集合。
要创建一个目录,NTFS应对目录中文件的文件名属性进行索引。
9.数据压缩
NTFS压缩功能可以对单个文件、整个目录或卷上的整个目录树进行压缩。
NTFS压缩只能在用户数据上执行,而不能在文件系统元数据上执行。
Win32中的GetVolumeInformation函数可以判断一个卷是否已被压缩;GetCompressedFileSize函数可得到一个文件的实际压缩大小;DeviceIoControl函数可检查或改变一个文件或目录的压缩设置。
数据压缩可减少磁盘使用空间,但每次解压缩需要大量数据运算。
如果要拷贝一个压缩文件,过程是解压缩、拷贝、重新压缩拷贝的文件。
四可恢复性
文件系统的可恢复性是NTFS设计的目标之一,文件系统的要求是速度快和可恢复性
,速度快=>读写操作快=>使用缓存=>可恢复性降低,文件系统的可恢复性取决于文件系统的写入操作方式,谨慎写(carefulwrite)文件系统
•例如FAT文件系统的“写通”技术。
速度性能差
–延迟写(lazy-write)文件系统
•例如UNIX文件系统的“写回”高速缓存技术。
可恢复性差
–事务日志(transactionlog)文件系统
•试图既超越谨慎写文件系统的安全性,也达到延迟写文件系统的速度性能。
•例如NTFS通过基于事务处理模式的日志记录技术,成功保证了NTFS卷的一致性,实现了文件系统的可恢复性。
当然,采用这种措施会付出代价,但是,代价可以通过高速缓存的延迟写技术来弥补,甚至可以增加高速缓存刷新之间的时间间隔。
这样做不仅弥补了进行记录活动的系统耗费,有时甚至有所超越。
五.安全性
文件系统的安全性也是NTFS设计的目标之一,主要包括:
•一是对文件和目录的进行权限设置
•对文件和目录的进行权限设置
•只有用户在被赋予权限或是属于拥有这种权限的组,才能对文件或目录进行访问。
•权限是累积的。
当组A用户对一个文件拥有“写入“权限,而组B用户则只有“读取”权限。
用户C同属两个组,则C也将获得“写入”权限。
•拒绝访问”权限优先级高于其他所有权限。
如果组A的权限是“写入”,而组B则是“拒绝访问”,那么同属两个组的用户C也不能读写该文件。
•文件权限始终优先于目录权限。
•当用户在相应权限的目录中创建新的文件和子目录时,创建的文件和子目录继承该目录的权限。
•创建文件或目录的拥有者,总是可以随时更改对文件或目录的权限设置来控制其他用户对该文件或目录的访问。
•
•二是对文件和目录进行加密。
•文件加密是对文件中的内容,按照一定的变换规则进行重新编码,从而得到新的无法正常可读的加密文件。
•当今流行的加密算法有置换表算法、对称密钥算法、以及非对称密钥算法等
六卷管理和容量
NTFS是以卷为基础的。
卷建立在磁盘分区之上。
分区是磁盘的基本组成部分,是一个能够被格式化和单独使用的逻辑单元。
当以NTFS格式来格式化磁盘分区时就创建了NTFS卷。
一个磁盘可以有多个卷,一个卷也可以由多个磁盘组成。
Windows2000/XP常使用FAT卷和NTFS卷。
一个36GB硬盘的三种磁盘配置的实例如下:
七压缩与加密
NTFS高级特性:
文件压缩
•NTFS支持文件数据的压缩。
因为NTFS可以透明地执行压缩和解压缩,应用程序不必修改就可利用这一特点。
目录也可以压缩,这指该目录中以后所建文件均会被压缩。
–文件压缩能将文本性质的应用程序代码和数据文件压缩大约50%,将可执行文件压缩大约40%。
•应用程序通过向DeviceIoControl
–传递FSCTL_SET_COMPRESSION文件控制代码来压缩或解压缩;
–通过传递FSCTL_GET_COMPRESSION文件系统控制代码来获取文件和目录的压缩状态。
–另外,应用程序也可以通过GetFileAttributes来确定文件和目录的压缩属性,这是因为压缩文件或目录的属性FILE_ATTRIBUTE_COMPRESSED会被置位。
•NTFS压缩功能的使用将会引起NTFS卷的性能下降,原因是每次访问被压缩的文件时,都需要对它进行解压缩。
–如果要拷贝一个压缩文件,其过程是:
解压缩、拷贝、重新对拷贝的文件进行压缩,大大增加了CPU的处理时间。
–
•压缩的另外一种形式称为稀疏文件。
如果一个文件被标记为稀疏,那么NTFS不会为被应用程序设置为0的部分分配空间。
当应用程序从稀疏文件的空白区域读数据时,NTFS将返回用0填充的缓冲区。
与压缩文件一样,NTFS透明地管理稀疏文件。
•应用程序通过向DeviceIOControl传递FSCTL_SET_SPARSE文件系统控制代码来指定文件的稀疏状态。
•应用程序可以通过使用FSCTL_SET_ZERO_DATA控制代码来将文件某部分设置为空,
•通过使用FSCTL_QUERY_ALLOCATED_RANGES控制代码来获取文件的哪些区域为空。
稀疏文件的应用之一就是NTFS的日志文件。
NTFS磁盘结构:
数据压缩
•对稀疏文件解压缩:
–NTFS只给那些包含非零数据的运行分配磁盘空间
–当程序从压缩文件中读取数据时,NTFS通过检测该位置是否有VCN到LCN的映射来决定该数据是不是零数据。
•若有映射,则为非零数据,需要从磁盘上读取;
•若没有映射即存在尚未分配的“空洞”(unallocatedhole),则为零数据,就直接返回零数据。
•对非稀疏文件的解压缩
–NTFS是以16个簇为压缩单元来进行一般文件的压缩的。
–当NTFS向压缩文件写数据时,它确保每个运行都以一个虚拟16簇边界开始。
因此每个运行中VCN都是以16的倍数开始的,并且运行的长度不大于16。
NTFS高级特性:
加密
•NTFS文件权限许可并不能完全保护数据。
•NTFS包含有一个称为EFS(EncrpytingFileSystem)的工具,可以用来加密数据。
EFS操作如同文件压缩一样,对应用程序而言是透明的。
也就是说,当受权用户的程序需要读数据时,数据自动解密;当需要改变数据时,数据自动加密。
•EFS依赖于Windows2000/XP所提供的处于用户态的加密服务。
安全验证子系统)通信的DLL和加密DLL
•加密文件只能通过一个账号的EFS私有/公共密钥对的私有密钥来访问,而私有密钥用账号的口令加锁。
因此,没有受权账号的口令,不能用其他方法访问EFS加密文件。
•应用程序可以用Win32APIEncryptFile和DecryptFile来加密或解密文件,可以用FileEncrpytionStatus来获得有关文件和目录的EFS有关属性,如文件和目录是否已加密。
八安装点
Windows根文件系统的安装是系统初始化的关键部分。
这是一个相当复杂的过程,因为windows内核允许根文件系统存放在很多不同的地方,比如硬盘分区、软盘、通过NFS共享的远程文件系统
安装根文件系统分两个阶段:
(1)内核安装特殊rootfs文件系统,该文件系统仅提供一个作为初始安装点的空目录。
(2)内核在空目录上安装实际根文件系统。
九变更日志
NTFS高级特性:
日志记录
•许多类型的应用需要监视卷上文件或目录的改变。
•方法一:
对卷进行扫描以记录文件和目录的状态,在以后的扫描时记录变化情况。
•方法二:
让应用程序通过Win32函数FindFirstChangeNotification或ReadDirectoryChangesW来注册目录通知。
•方法三:
应用程序可以向函数DeviceIOControl传递文件系统控制代码FSCTL_CREATE_USN_JOURNAL,来配置NTFS日志记录,这样NTFS将文件和目录改变记录到一个内部日志文件中。
日志文件足够大,几乎可以保证应用程序能有机会来处理记录。
应用程序可以使用FSCTL_QUERY_USN_JOURNAL文件控制代码来读日志文件,也可以指定只有新记录时DeviceIOControl才完成。
十卷影子副本
卷影副本,也称为快照,是存储在DataProtectionManager(DPM)服务器上的副本的时间点副本。
副本是上单个卷的受保护共享、文件夹和文件的完整时间点副本。
概述
要开始数据保护,必须先将所选数据的完整副本复制到DPM服务器的中。
之后,将定期使用对受保护数据的更改使副本同步。
DPM按照指定的计划为中的每个副本创建卷影副本。
如果出现数据丢失或损坏,您可以访问卷影副本以恢复以前版本的文件。
您可以恢复数据,也可以启用最终用户恢复以便最终用户能够独立恢复他们自己的数据。
如果DPM服务器具有足够的,DPM可为每个存储最多64个卷影副本。
如果已经达到存储区域限制且创建了新的卷影副本,则最旧的卷影副本会被自动删除且不能被还原。
在选择卷影复制时间时,DPM向您提供恢复范围和最大数据丢失预估。
这些预估将帮您指定可提供足够数据保护并达到您的恢复目标的卷影复制计划。
每日可安排最多8次卷影复制。
卷影副本备份可确保:
应用程序在备份过程中向卷中继续写入数据。
打开的文件在备份时不再被遗漏。
任何时候都可以执行备份而不会封锁用户。
某些应用程序在文件打开时管理存储一致性的方式不同,这可能影响备份中文件的一致性。
对于关键应用程序,请参阅应用程序文档或向提供商咨询,以便获取有关的建议。
如有疑问,请在执行备份前关闭应用程序。
2.12启用卷影副本服务
“卷影副本”只能针对或卷进行设置,而不能针对特定的文件夹来设置。
该服务支持文档、、图形图像以及副本的创建,但不支持应用程序的升级前版本以及E-mail数据副本的创建。
以在WindowsServer2003系统中启用“卷影副本”服务为例介绍方法:
第1步,在“”窗口中右键单击所在的NTFS分区(如H区),选择“属性”命令。
在打开的“(H)属性”对话框中切换到“卷影副本”选项卡,然后单击“启用”按钮。