6 NTFS文件系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第4讲NTFS文件系统概述NTFS文件系统驱动程序NTFS的磁盘结构NTFS的文件组织NTFS目录组织与索引NTFS数据压缩NTFS可恢复性NTFS安全性1.概述NTFS为改进的多级目录结构,支持文件别名NTFS文件由多个文件属性构成,每个属性由属性名和属性流(stream,简单字节队列)组成NTFS支持用户权限管理NTFS文件支持数据压缩功能NTFS卷结构支持容错功能概述NTFS具有众多优点,这主要是因为它在磁盘上独特的实现方法如何划分磁盘如何组织文件与目录如何存储文件属性与数据如何压缩文件数据等2.NTFS文件驱动程序对NTFS的访问是通过I/O管理器来完成的此过程与高速缓存管理器,内存管理器,日志文件服务器,卷管理器,磁盘驱动程序等协同完成I/O操作日志文件服务器高速缓存管理器虚拟内存管理器I/O管理器NTFSFSD卷管理器磁盘驱动物理磁盘核心态3.NTFS的磁盘结构3.1卷3.2簇3.1卷卷是建立在磁盘分区上一个磁盘可以有多个卷,一个卷也可以有多个磁盘组成(已格式化过的)卷上的数据可分为:元数据和用户数据3.2簇簇作为磁盘空间分配和回收的基本单位簇的大小是用户在使用Format命令或其他的格式化程序格式化卷时确定的NTFS使用LCN(LogicalClusterNumber,逻辑簇号)和VCN(VirtualClusterNumber,虚拟簇号)来进行簇的定位4.NTFS文件组织4.1文件名称4.2主控文件表4.3文件记录4.4常驻属性与非常驻属性4.1文件名称NTFS路径名中的每个文件名/目录名的长度可达255个字节,可以包含Unicode字符、多个空格及句点NTFS卷上的每个文件都有一个64位的,称为文件引用号的唯一标识文件引用号的组成文件号文件顺序号MS-DOS子系统,Win32子系统与POSIX子系统的名字空间texttextMS—DOSWindows子系统Win32子系统POSIX子系统4.2主控文件表MFT(MasterFileTable,主控文件表)是NTFS卷结构的核心,是NTFS中昀重要的系统文件,包含了卷中所有文件的信息MFT是以文件记录数组来实现的MFT开始的16个元数据文件是保留的主控文件表的元数据文件记录0:$Mft:MFT本身1:$MftMirr:MFT镜像2:$LogFile:日志文件3:$Volume:卷文件4:$AttrDef:属性定义表5:$\:根目录6:$Bitmap:位图文件7:$Boot:引导文件8:$BadClus:坏簇文件9:$Secure:安全文件10:$UpCase:大写文件11:$Extendedmetadatadirectory:扩展元数据目录12,13,14,15:预留15:其他用户文件和目录主控文件表空间分配文件存储区文件存储区MFT分配空间MFT元数据文件MFT前16个元数据文件备份4.3文件记录NTFS文件是属性/属性值的集合每个属性由单个的流(stream)组成NTFS提供对属性流的各种操作读写操作一般是针对文件的未命名属性的,对于已命名的属性则可以通过已命名的数据流句法来进行操作文件记录NTFS文件是属性的集合,通常所说的文件内容是指未命名数据属性流例:我们定义两个数据属性:ntfile(数据)和ntfile:data(自定义数据)。在向FAT复制时,自定义属性会丢失echotest....datantfileechotest....userdefineddatantfile:datamorentfilemorentfile:datacopyntfilee:ntfile(E:为NTFS文件系统)copyntfilec:ntfile(C:为FAT文件系统)moree:ntfilemoree:ntfile:datamorec:ntfilemorec:ntfile:data文件记录NTFS卷上文件的常用属性(并不是所有文件都有所有这些属性)$VOLUME_INFORMATION$VOLUME_NAME$STANDARD_INFORMATION$FILE_NAME$SECURITY_DESCRIPTOR$DATA$INDEX_ROOT$INDEX_ALLOCATION$BITMAP$ATTRIBUTE_LIST$OBJECT_ID$REPARSE_POINT$EA$EA_INFORMATION$LOGGED_UTILITY_STREAM观察与体验5-2:观察流目的:查看流的活动Echo和more命令可以和可替换的命名数据流工作,一个简单的查看流的活动的方法是用echo创建一个命名流,然后用more显示。下面的命令创建了一个名为text的文本文件c:\echohellotest.txtc:\moretest.txt运行过程及结果如下图所示:4.4常驻属性与非常驻属性当属性值能直接存放在MFT中时,该属性就称为常驻属性(residentattribute)。如果属性值能直接存放在MFT中,那么NTFS对它的访问时间就将大大缩短标准信息文件名文件索引文件1空文件2文件3常驻属性与非常驻属性如果一个属性(如文件数据属性)太大而不能存放在只有1KB的MFT文件记录中,那么NTFS将从MFT之外分配区域。这些区域通常称为一个延展(run)或一个延伸(extent),它们可用来存储属性值,如文件数据。如果以后属性值又增加,那么NTFS将会再分配一个延展,以便用来存储额外的数据。值存储在延展中而不是在MFT文件记录中的属性称为非常驻属性(nonresidentattributes)在标准属性中,只有可以增长的属性才是非常驻的。对文件来说,可增长的属性有数据、属性列表等。标准信息和文件名属性总是常驻的常驻属性与非常驻属性标准信息文件名数据VCN03214LCN12781279130013011280567128113021303数据数据标准信息文件名索引根索引分配位图文件3文件1文件2文件7...文件4文件5文件6索引缓冲区NTFS目录组织与索引索引根属性将相应目录中的文件名和子目录名进行排序索引分配属性包含了索引缓冲区的VCN到LCN映射位图属性跟踪在索引缓冲区中哪些VCN是在使用而哪些是空闲的标准信息文件名“\”文件0文件1VCN032145LCN135513561588158910491590索引根索引分配位图文件4文件9文件14其他文件VCN到LCN转换...6789文件313571358文件5文件7文件10文件11文件12105010516.NTFS数据压缩压缩稀疏文件:稀疏文件是指相对于文件大小而言只有少量非零数据的文件NTFS只给那些包含非零数据的延展分配磁盘空间当程序从压缩文件中读取数据时,NTFS通过检测该位置是否有VCN到LCN的映射来决定该数据是不是零数据标准信息文件名开始的VCN开始的LCN簇数012001632128016641356168096716NTFS数据压缩压缩非稀疏文件NTFS是以16个簇为压缩单元来进行一般文件的压缩的当NTFS向压缩文件写数据时,它确保每个延展都以一个虚拟16簇边界开始。因此每个延展中VCN都是以16的倍数开始的,并且延展的长度不大于16标准信息文件名开始的VCN开始的LCN簇数0120041612808321356948967167.NTFS可恢复性通过日志记录来实现子操作在磁盘运行之前,记录在日志文件中系统恢复阶段,NTFS根据日志文件中的文件操作信息,对部分完成的事务进行重做或者撤销,保证磁盘文件系统的一致性NTFS可恢复性日志文件服务:一组NTFS驱动程序内的核心态程序日志记录更新记录检查点记录恢复过程维护两张表:事务表和脏页表日志文件进行三次扫描分析扫描重做扫描撤销扫描NTFS坏簇恢复支持8.NTFS安全性NTFS文件加密系统结构加密文件系统(EFS)可将加密的NTFS文件存储在磁盘上EFS使用基于RSA的公共密钥算法进行加密文件加密解密文件备份加密文件EFS工作流程图EFS驱动程序4NTFS请求EFS驱动加密文件内容NTFS文件系统驱动程序5NTFS将已加密的文件写入磁盘3高速缓存管理器将数据经NTFS延迟写入磁盘缓存管理器2NTFS将数据存入文件系统高速缓存1应用程序向一个加密文件写数据应用程序卷用户态内核态磁盘设备实验5-1-快速文件系统快速文件系统编写一个程序测试大文件随机访问时无文件缓冲模式,文件缓冲模式和异步模式这三种访问模式的效率产生一个50M的大文件dummy,作为测试的数据文件测试程序基本过程如下每一个测试循环节非读即写,设读发生的概率为Q1随机选取文件位置p,读/写n字节的内容(注意遇到文件结尾的处理)若是读数据,调用函数f1对读入的数据作一系列操作或者调用f2做一些无关的操作,设f1调用的概率为Q2。f1和f2可以用循环来模拟,循环的次数可以是一个随机值,要在一个合理的范围之内重复以上三步,模拟随即文件读写访问快速文件系统(续)提示:三种参数下程序略有不同,主要是使用异步模式时对读取的文件内容操作之前要检查数据是否已真的读完测试程序中各处随机数的大小要具有合理的值计量:读取数据的总量和写数据的总量数据读/写总时间(注意异步模式下的计量方法)f1和f2各自的操作时间……当然也可以在内存里面做全部访问的日志,不过要注意的是这个内容可能非常多快速文件系统(续)回答问题:设定Q1,Q2作如下测试定时测试:对每种模式,运行你的程序10分钟,分析或取得结果定次数测试:对每种模式,设定循环的次数为104次,分析取得的结果适当变换Q1,Q2的值,再测,看看它们对结果有什么影响查阅文献了解Linux的文件缓冲机制,说明在常规的ext2文件系统以及某种日志文件系统例如ext3/jfs/raiserFS中缓冲机制有什么不同快速文件系统(续)提示三种模式的框架可以参考《Windows内核实验教程》p109-p129,在产生文件对象的时候使用不同的模式相关知识可以查阅《Windows操作系统原理》实验5-2-文件系统目录目标:了解基本的目录操作文件系统和目录要求:设计函数,使其实现基本的目录操作,并编程实现之。具体要求如下:1·设计一个可以提供目录列表的函数,函数原型为:intfdListDir();2·设计一个函数,使得该函数在当前目录下可以更改到上层目录,或者更改到下层子目录。函数原型为:intfdChangeDir(char*directory);文件系统和目录(续)3·设计一个函数,它的功能是删除一个文件,函数原型为:IntfdEraseFile(char*name);4·设计一个函数,使得该函数可以复制一个已存在的文件到一个新的文件中。函数原型为:intfdCopyFile(char*source,char*destination);5·设计并实现一个驱动程序来检测各个函数文件系统和目录(续)提示:目录列表函数只需提供基本功能即可,不必支持很多选项相关背景知识参看《操作系统教程》相关函数和参数含义参阅《Windows内核实验教程》p129-p136和MSDN小测验NTFS恢复过程需要维护两张表,分别是A.事件表B.事务表C.脏页表D.恢复表在NTFS恢复过程中,日志文件需要做几次扫描?A.1B.2C.3D.4NTFS文件系统不支持文件别名(对/错)EFS使用基于RSA的公共密钥算法进行加密(对/错)NTFS文件系统中采用了B+树(对/错)习题NTFS中的主控文件表有什么作用?请解释常驻属性和非常驻属性。WindowsServer2003中的EFS的基本流程是什么样的?NTFS中如何实现可恢复性?

1 / 40
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功