6 NTFS文件系统

上传人:枫** 文档编号:571476514 上传时间:2024-08-11 格式:PDF 页数:40 大小:392.58KB
返回 下载 相关 举报
6 NTFS文件系统_第1页
第1页 / 共40页
6 NTFS文件系统_第2页
第2页 / 共40页
6 NTFS文件系统_第3页
第3页 / 共40页
6 NTFS文件系统_第4页
第4页 / 共40页
6 NTFS文件系统_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《6 NTFS文件系统》由会员分享,可在线阅读,更多相关《6 NTFS文件系统(40页珍藏版)》请在金锄头文库上搜索。

1、第4讲 NTFS文件系统第4讲 NTFS文件系统概述概述NTFS文件系统驱动程序NTFS文件系统驱动程序NTFS的磁盘结构NTFS的磁盘结构NTFS的文件组织NTFS的文件组织NTFS目录组织与索引NTFS目录组织与索引NTFS数据压缩NTFS数据压缩NTFS可恢复性NTFS可恢复性NTFS安全性NTFS安全性1. 概述1. 概述NTFS为改进的多级目录结构,支持文件别名NTFS为改进的多级目录结构,支持文件别名NTFS文件由多个文件属性构成,每个属性由属性名和属性流(stream, 简单字节队列)组成NTFS文件由多个文件属性构成,每个属性由属性名和属性流(stream, 简单字节队列)组成

2、NTFS支持用户权限管理NTFS支持用户权限管理NTFS文件支持数据压缩功能NTFS文件支持数据压缩功能NTFS卷结构支持容错功能NTFS卷结构支持容错功能概述概述NTFS具有众多优点,这主要是因为它在磁盘上独特的实现方法NTFS具有众多优点,这主要是因为它在磁盘上独特的实现方法如何划分磁盘如何划分磁盘如何组织文件与目录如何组织文件与目录如何存储文件属性与数据如何存储文件属性与数据如何压缩文件数据等如何压缩文件数据等2. NTFS文件驱动程序2. NTFS文件驱动程序对NTFS的访问是通过I/O管理器来完成的对NTFS的访问是通过I/O管理器来完成的此过程与高速缓存管理器,内存管理器,日志文件

3、服务器,卷管理器,磁盘驱动程序等协同完成I/O操作此过程与高速缓存管理器,内存管理器,日志文件服务器,卷管理器,磁盘驱动程序等协同完成I/O操作日志文件服务器高速缓存管理器虚拟内存管理器I/O管理器NTFS FSD卷管理器磁盘驱动物理磁盘核心态核心态3. NTFS的磁盘结构3. NTFS的磁盘结构3.1 卷3.1 卷3.2 簇3.2 簇3.1 卷3.1 卷卷是建立在磁盘分区上卷是建立在磁盘分区上一个磁盘可以有多个卷,一个卷也可以有多个磁盘组成一个磁盘可以有多个卷,一个卷也可以有多个磁盘组成(已格式化过的)卷上的数据可分为:元数据和用户数据(已格式化过的)卷上的数据可分为:元数据和用户数据3.2

4、 簇3.2 簇簇作为磁盘空间分配和回收的基本单位簇作为磁盘空间分配和回收的基本单位簇的大小是用户在使用Format命令或其他的格式化程序格式化卷时确定的簇的大小是用户在使用Format命令或其他的格式化程序格式化卷时确定的NTFS使用LCN(Logical Cluster Number,逻辑簇号)和VCN(Virtual Cluster Number,虚拟簇号)来进行簇的定位NTFS使用LCN(Logical Cluster Number,逻辑簇号)和VCN(Virtual Cluster Number,虚拟簇号)来进行簇的定位4. NTFS文件组织4. NTFS文件组织4.1 文件名称4.1

5、 文件名称4.2 主控文件表4.2 主控文件表4.3 文件记录4.3 文件记录4.4 常驻属性与非常驻属性4.4 常驻属性与非常驻属性4.1 文件名称4.1 文件名称NTFS路径名中的每个文件名/目录名的长度可达255个字节,可以包含Unicode字符、 多个空格及句点NTFS路径名中的每个文件名/目录名的长度可达255个字节,可以包含Unicode字符、 多个空格及句点NTFS卷上的每个文件都有一个64位的,称为文件引用号的唯一标识NTFS卷上的每个文件都有一个64位的,称为文件引用号的唯一标识文件引用号的组成文件引用号的组成文件号文件号文件顺序号文件顺序号MSDOS子系统,Win32子系统

6、与POSIX子系统的名字空间MSDOS子系统,Win32子系统与POSIX子系统的名字空间texttextMSDOS Windows子系统Win32子系统POSIX子系统4.2 主控文件表4.2 主控文件表MFT(Master File Table,主控文件表)是NTFS卷结构的核心,是NTFS中最重要的系统文件,包含了卷中所有文件的信息MFT(Master File Table,主控文件表)是NTFS卷结构的核心,是NTFS中最重要的系统文件,包含了卷中所有文件的信息MFT是以文件记录数组来实现的MFT是以文件记录数组来实现的MFT开始的16个元数据文件是保留的MFT开始的16个元数据文件是

7、保留的主控文件表的元数据文件记录主控文件表的元数据文件记录0:$Mft:MFT本身0:$Mft:MFT本身1:$MftMirr:MFT镜像1:$MftMirr:MFT镜像2:$LogFile:日志文件2:$LogFile:日志文件3:$Volume:卷文件3:$Volume:卷文件4:$AttrDef:属性定义表4:$AttrDef:属性定义表5:$:根目录5:$:根目录6:$Bitmap:位图文件6:$Bitmap:位图文件7:$Boot:引导文件7:$Boot:引导文件8:$BadClus:坏簇文件8:$BadClus:坏簇文件9:$Secure:安全文件9:$Secure:安全文件10:

8、$UpCase:大写文件10:$UpCase:大写文件11:$Extended metadata directory:扩展元数据目录11:$Extended metadata directory:扩展元数据目录12,13,14,15:预留12,13,14,15:预留15:其他用户文件和目录15:其他用户文件和目录主控文件表空间分配主控文件表空间分配文件存储区文件存储区MFT分配空间MFT元数据文件MFT前16个元数据文件备份4.3 文件记录4.3 文件记录NTFS文件是属性/属性值的集合NTFS文件是属性/属性值的集合每个属性由单个的流(stream)组成每个属性由单个的流(stream)组成

9、NTFS提供对属性流的各种操作NTFS提供对属性流的各种操作读写操作一般是针对文件的未命名属性的,对于已命名的属性则可以通过已命名的数据流句法来进行操作读写操作一般是针对文件的未命名属性的,对于已命名的属性则可以通过已命名的数据流句法来进行操作文件记录文件记录NTFS文件是属性的集合,通常所说的文件内容是指未命名数据属性流NTFS文件是属性的集合,通常所说的文件内容是指未命名数据属性流例:我们定义两个数据属性:ntfile(数据)和ntfile:data(自定义数据)。在向FAT复制时,自定义属性会丢失例:我们定义两个数据属性:ntfile(数据)和ntfile:data(自定义数据)。在向F

10、AT复制时,自定义属性会丢失echo test.data ntfileecho test.data ntfileecho test.user defined data ntfile:dataecho test.user defined data ntfile:datamore ntfilemore ntfilemore ntfile:datamore ntfile:datacopy ntfile e:ntfile (E:为NTFS文件系统)copy ntfile e:ntfile (E:为NTFS文件系统)copy ntfile c:ntfile (C:为FAT文件系统)copy ntfile

11、 c:ntfile (C:为FAT文件系统)more e:ntfilemore e:ntfilemore e:ntfile:datamore e:ntfile:datamore c:ntfilemore c:ntfilemore c:ntfile:datamore echo hello test.txtc:echo hello test.txtc:more test.txtc:more test.txt运行过程及结果如下图所示:运行过程及结果如下图所示:4.4 常驻属性与非常驻属性4.4 常驻属性与非常驻属性当属性值能直接存放在MFT中时,该属性就称为常驻属性(resident attribu

12、te)。当属性值能直接存放在MFT中时,该属性就称为常驻属性(resident attribute)。如果属性值能直接存放在MFT中,那么NTFS对它的访问时间就将大大缩短如果属性值能直接存放在MFT中,那么NTFS对它的访问时间就将大大缩短标准信息文件名文件索引文件1空文件2文件3常驻属性与非常驻属性常驻属性与非常驻属性如果一个属性(如文件数据属性)太大而不能存放在只有1KB的MFT文件记录中,那么NTFS将从MFT之外分配区域。这些区域通常称为一个延展(run)或一个延伸(extent),它们可用来存储属性值,如文件数据。如果以后属性值又增加,那么NTFS将会再分配一个延展,以便用来存储额

13、外的数据。值存储在延展中而不是在MFT文件记录中的属性称为非常驻属性(nonresident attributes)如果一个属性(如文件数据属性)太大而不能存放在只有1KB的MFT文件记录中,那么NTFS将从MFT之外分配区域。这些区域通常称为一个延展(run)或一个延伸(extent),它们可用来存储属性值,如文件数据。如果以后属性值又增加,那么NTFS将会再分配一个延展,以便用来存储额外的数据。值存储在延展中而不是在MFT文件记录中的属性称为非常驻属性(nonresident attributes)在标准属性中,只有可以增长的属性才是非常驻的。对文件来说,可增长的属性有数据、属性列表等。标

14、准信息和文件名属性总是常驻的在标准属性中,只有可以增长的属性才是非常驻的。对文件来说,可增长的属性有数据、属性列表等。标准信息和文件名属性总是常驻的常驻属性与非常驻属性常驻属性与非常驻属性标准信息文件名数据V C N03214L C N1 2 7 81 2 7 91 3 0 01 3 0 11 2 8 05671 2 8 11 3 0 21 3 0 3数 据数 据标准信息文件名索引根索引分配位图文件3文件1 文件2文件7. . .文件4 文件5 文件6索引缓冲区NTFS目录组织与索引NTFS目录组织与索引索引根属性将相应目录中的文件名和子目录名进行排序索引根属性将相应目录中的文件名和子目录名进

15、行排序索引分配属性包含了索引缓冲区的VCN到LCN映射索引分配属性包含了索引缓冲区的VCN到LCN映射位图属性跟踪在索引缓冲区中哪些VCN是在使用而哪些是空闲的位图属性跟踪在索引缓冲区中哪些VCN是在使用而哪些是空闲的标准信息文件名“”文件0文件1VCN032145LCN135513561588158910491590索引根索引分配位图文件4文件9文件14其他文件VCN到LCN转换.6789文件313571358文件5文件7文件10文件11文件12105010516. NTFS数据压缩6. NTFS数据压缩压缩稀疏文件:压缩稀疏文件:稀疏文件是指相对于文件大小而言只有少量非零数据的文件稀疏文件

16、是指相对于文件大小而言只有少量非零数据的文件NTFS只给那些包含非零数据的延展分配磁盘空间NTFS只给那些包含非零数据的延展分配磁盘空间当程序从压缩文件中读取数据时,NTFS通过检测该位置是否有VCN到LCN的映射来决定该数据是不是零数据当程序从压缩文件中读取数据时,NTFS通过检测该位置是否有VCN到LCN的映射来决定该数据是不是零数据标准信息文件名开始的VCN开始的LCN簇数 0 1200 1632 1280 1664 1356 1680 967 16NTFS数据压缩NTFS数据压缩压缩非稀疏文件压缩非稀疏文件NTFS是以16个簇为压缩单元来进行一般文件的压缩的NTFS是以16个簇为压缩单

17、元来进行一般文件的压缩的当NTFS向压缩文件写数据时,它确保每个延展都以一个虚拟16簇边界开始。因此每个延展中VCN都是以16的倍数开始的,并且延展的长度不大于16当NTFS向压缩文件写数据时,它确保每个延展都以一个虚拟16簇边界开始。因此每个延展中VCN都是以16的倍数开始的,并且延展的长度不大于16标 准 信 息文 件 名开 始 的VCN开 始 的LCN簇 数 0 1200 416 1280 832 1356 948 967 167. NTFS可恢复性7. NTFS可恢复性通过日志记录来实现通过日志记录来实现子操作在磁盘运行之前,记录在日志文件中子操作在磁盘运行之前,记录在日志文件中系统恢

18、复阶段,NTFS根据日志文件中的文件操作信息,对部分完成的事务进行重做或者撤销,保证磁盘文件系统的一致性系统恢复阶段,NTFS根据日志文件中的文件操作信息,对部分完成的事务进行重做或者撤销,保证磁盘文件系统的一致性NTFS可恢复性NTFS可恢复性日志文件服务:一组NTFS驱动程序内的核心态程序日志文件服务:一组NTFS驱动程序内的核心态程序日志记录日志记录更新记录更新记录检查点记录检查点记录恢复过程恢复过程维护两张表:事务表和脏页表维护两张表:事务表和脏页表日志文件进行三次扫描日志文件进行三次扫描分析扫描分析扫描重做扫描重做扫描撤销扫描撤销扫描NTFS坏簇恢复支持NTFS坏簇恢复支持8. NT

19、FS安全性8. NTFS安全性NTFS文件加密系统结构NTFS文件加密系统结构加密文件系统(EFS)可将加密的NTFS文件存储在磁盘上加密文件系统(EFS)可将加密的NTFS文件存储在磁盘上EFS使用基于RSA的公共密钥算法进行加密EFS使用基于RSA的公共密钥算法进行加密文件加密文件加密解密文件解密文件备份加密文件备份加密文件EFS工作流程图EFS工作流程图EFS驱动程序EFS驱动程序4 NTFS请求EFS驱动加密文件内容4 NTFS请求EFS驱动加密文件内容NTFS文件系统驱动程序NTFS文件系统驱动程序5 NTFS将已加密的文件写入磁盘5 NTFS将已加密的文件写入磁盘3 高速缓存管理器

20、将数据经NTFS延迟写入磁盘3 高速缓存管理器将数据经NTFS延迟写入磁盘缓存管理器缓存管理器2 NTFS将数据存入文件系统高速缓存2 NTFS将数据存入文件系统高速缓存1 应用程序向一个加密文件写数据1 应用程序向一个加密文件写数据应用程序应用程序卷卷用户态内核态磁盘设备实验5-1快速文件系统实验5-1快速文件系统快速文件系统快速文件系统编写一个程序测试大文件随机访问时无文件缓冲模式,文件缓冲模式和异步模式这三种访问模式的效率编写一个程序测试大文件随机访问时无文件缓冲模式,文件缓冲模式和异步模式这三种访问模式的效率产生一个50M的大文件dummy,作为测试的数据文件产生一个50M的大文件du

21、mmy,作为测试的数据文件测试程序基本过程如下测试程序基本过程如下每一个测试循环节非读即写,设读发生的概率为Q1每一个测试循环节非读即写,设读发生的概率为Q1随机选取文件位置p,读/写n字节的内容(注意遇到文件结尾的处理)随机选取文件位置p,读/写n字节的内容(注意遇到文件结尾的处理)若是读数据,调用函数f1对读入的数据作一系列操作或者调用f2做一些无关的操作,设f1调用的概率为Q2。f1和f2可以用循环来模拟,循环的次数可以是一个随机值,要在一个合理的范围之内若是读数据,调用函数f1对读入的数据作一系列操作或者调用f2做一些无关的操作,设f1调用的概率为Q2。f1和f2可以用循环来模拟,循环

22、的次数可以是一个随机值,要在一个合理的范围之内重复以上三步,模拟随即文件读写访问重复以上三步,模拟随即文件读写访问快速文件系统(续)快速文件系统(续)提示:提示:三种参数下程序略有不同,主要是使用异步模式时对读取的文件内容操作之前要检查数据是否已真的读完三种参数下程序略有不同,主要是使用异步模式时对读取的文件内容操作之前要检查数据是否已真的读完测试程序中各处随机数的大小要具有合理的值测试程序中各处随机数的大小要具有合理的值计量:计量:读取数据的总量和写数据的总量读取数据的总量和写数据的总量数据读/写总时间(注意异步模式下的计量方法)数据读/写总时间(注意异步模式下的计量方法)f1和f2各自的操

23、作时间f1和f2各自的操作时间当然也可以在内存里面做全部访问的日志,不过要注意的是这个内容可能非常多当然也可以在内存里面做全部访问的日志,不过要注意的是这个内容可能非常多快速文件系统(续)快速文件系统(续)回答问题:回答问题:设定Q1,Q2作如下测试设定Q1,Q2作如下测试定时测试:对每种模式,运行你的程序10分钟,分析或取得结果定时测试:对每种模式,运行你的程序10分钟,分析或取得结果定次数测试:对每种模式,设定循环的次数为10定次数测试:对每种模式,设定循环的次数为104 4次,分析取得的结果次,分析取得的结果适当变换Q1,Q2的值,再测,看看它们对结果有什么影响适当变换Q1,Q2的值,再

24、测,看看它们对结果有什么影响查阅文献了解Linux的文件缓冲机制,说明在常规的ext2文件系统以及某种日志文件系统例如ext3/jfs/raiserFS中缓冲机制有什么不同查阅文献了解Linux的文件缓冲机制,说明在常规的ext2文件系统以及某种日志文件系统例如ext3/jfs/raiserFS中缓冲机制有什么不同快速文件系统(续)快速文件系统(续)提示提示三种模式的框架可以参考Windows内核实验教程p109p129,在产生文件对象的时候使用不同的模式三种模式的框架可以参考Windows内核实验教程p109p129,在产生文件对象的时候使用不同的模式相关知识可以查阅 Windows操作系统

25、原理相关知识可以查阅 Windows操作系统原理实验5-2文件系统目录实验5-2文件系统目录目标:了解基本的目录操作目标:了解基本的目录操作文件系统和目录文件系统和目录要求:要求:设计函数,使其实现基本的目录操作,并编程实现之。具体要求如下:设计函数,使其实现基本的目录操作,并编程实现之。具体要求如下:1 设计一个可以提供目录列表的函数,函数原型为:int fdListDir();1 设计一个可以提供目录列表的函数,函数原型为:int fdListDir();2 设计一个函数,使得该函数在当前目录下可以更改到上层目录,或者更改到下层子目录。函数原型为:int fdChangeDir(char*

26、directory);2 设计一个函数,使得该函数在当前目录下可以更改到上层目录,或者更改到下层子目录。函数原型为:int fdChangeDir(char*directory);文件系统和目录(续)文件系统和目录(续)3 设计一个函数,它的功能是删除一个文件,函数原型为:Int fdEraseFile(char *name);3 设计一个函数,它的功能是删除一个文件,函数原型为:Int fdEraseFile(char *name);4 设计一个函数,使得该函数可以复制一个已存在的文件到一个新的文件中。函数原型为:int fdCopyFile(char *source,char*destin

27、ation);4 设计一个函数,使得该函数可以复制一个已存在的文件到一个新的文件中。函数原型为:int fdCopyFile(char *source,char*destination);5 设计并实现一个驱动程序来检测各个函数5 设计并实现一个驱动程序来检测各个函数文件系统和目录(续)文件系统和目录(续)提示:提示:目录列表函数只需提供基本功能即可,不必支持很多选项目录列表函数只需提供基本功能即可,不必支持很多选项相关背景知识参看操作系统教程相关背景知识参看操作系统教程相关函数和参数含义参阅Windows 内核实验教程p129p136和MSDN相关函数和参数含义参阅Windows 内核实验教

28、程p129p136和MSDN小测验小测验NTFS恢复过程需要维护两张表,分别是NTFS恢复过程需要维护两张表,分别是A. 事件表 B.事务表 C. 脏页表 D. 恢复表A. 事件表 B.事务表 C. 脏页表 D. 恢复表在NTFS恢复过程中,日志文件需要做几次扫描?在NTFS恢复过程中,日志文件需要做几次扫描?A. 1 B. 2 C. 3 D. 4 A. 1 B. 2 C. 3 D. 4 NTFS文件系统不支持文件别名(对/错)NTFS文件系统不支持文件别名(对/错)EFS使用基于RSA的公共密钥算法进行加密EFS使用基于RSA的公共密钥算法进行加密(对/错)(对/错)NTFS文件系统中采用了B+树(对/错)NTFS文件系统中采用了B+树(对/错)习题习题NTFS中的主控文件表有什么作用?NTFS中的主控文件表有什么作用?请解释常驻属性和非常驻属性。请解释常驻属性和非常驻属性。Windows Server 2003中的EFS的基本流程是什么样的?Windows Server 2003中的EFS的基本流程是什么样的?NTFS中如何实现可恢复性?NTFS中如何实现可恢复性?

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号