windows 操作系统之文件管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本地FSD
• 本地FSD负责向I/O管理器注册自己,当开始访问某个卷 时,I/O管理器将调用FSD来进行卷识别。当完成卷识别 后本地FSD还创建一个设备对象以表示所装载的文件系统。 I/O管理器也通过卷参数块为由存储器所创建的卷设备对 象和由FSD所创建的设备对象之间进行连接,该VPB连接 将I/O管理器的有关卷的I/O请求转交给FSD设备对象。 本地FSD常用高速缓存管理器来缓存文件系统的数据以提 高性能,他与内存管理器一起实现内存文件的映射。本地 FSD还支持文件系统卸载操作,以便提供对卷的直接访问。
日志文件服务是NTFS为保证磁盘读写操作的安全性所 提供的一组服务。日志文件服务写的日志文件在系统发生崩 溃时用来恢复NTFS格式卷 高速缓存管理器提供NTFS系统范围的高速缓冲服务和 其他的文件系统驱动程序,通过将高速缓冲文件映射到系统 地址空间来访问他们,然后访问虚拟内存。高速缓冲管理器 通过使用延迟书写器调用内存管理器,将高速缓存区的内容 刷新到磁盘。 NTFS通过跟踪一些指针从文件对象获得磁盘上文件的、 位置。如下图,一个文件对象代表对于打开文件系统服务的 单一调用,它指向调用程序试图去读或写的文件属性的流控 制块,在下图中进程已经打开了文件无名的数据属性,又打
windows 文件系统模型解析
• 过滤驱动程序:可以位于设备驱动程序和中间驱动程序之 间,也可以位于中间驱动程序与文件系统驱动程序之间, 还可以位于文件系统驱动程序与I/O管理器API之间。例如, 一个网络重定向过滤驱动程序可以截取有关对远程文件的 操作,并重定向到远程文件服务器上。
本地FSD
为了将LCN转换为一个物理磁盘地址,NTFS用簇因子乘 以LCN获得卷上的物理字节偏移量。NTFS用虚拟簇号引 用文件数据,VCN对于基于特定文件的簇从0~n进行编码, VCN在物理上不必是连续的,然而他们可以被映射问卷上 的任意LCN编码。
NTFS卷上的文件
记录号 0 1 2 $Mft $MftMirr $LogFile 文件名 MFT自身 MFT镜像 日志文件 含义
远程FSD
远程FSD
• 远程FSD由两部分组成:客户端FSD和服务器端FSD。前 者允许应用程序访问远程的文件和目录,客户端FSD首先 接收来自应用程序的I/O请求,接着转换为网络文件系统 协议命令,再通过网络发送到服务器端的FSD。服务器端 FSD监听网络命令,接收网络文件系统协议命令,并转交 给本地FSD去执行。在这里重定向器通过端口/小端口驱 动程序的组合实现。而重定向器与服务器的通信则通过通 用互联网文件系统协议进行。
大文件或大目录的所有属性.就不可能都常驻在MFT,因为 MFT中的每个文件记录只有1KB大小。因此,NTFS将在文 件存存储区中分配区域,这些区域称之为一个运行(run)或一 个盘区(extent),它们可用来存储属件值.如文件数据当属性 再增加时.NTFS将会再分配一个运行、以便用来存储额外 的数据。只存储在运行中的属性称为非常驻属性。 在标准属性中,只有可增长的属性才是非常驻的,对文、 件来说,可增长的属性有数据和属性列表。一定要注意的是 标准信息和文件名属性总是常驻的
开了文件已命名的流。SCB代表单个文件属性,并包含关于 在文件中如何找到具体属性的信息,一个文件的所有SCB指 向一个被称为文件控制块的通用数据结构,文件控制块包含 一个指向基于磁盘的主控文件表的文件记录指针。NTFS通 过该指针获得文件的访问权限。
NTFS数据结构
NTFS的卷和簇
NTFS是以卷为基础,而卷是建立在磁盘分区上的。当以 NTFS格式来格式化分区时就创建了NTFS卷。分区包括基 本分区和扩展分区,扩展分区可由逻辑分区组成。分区的 主要目的是初始化磁盘,以便格式化和存储数据,磁盘可 以有一个或多个卷。NTFS独立地处理每个卷。 在NTFS卷上,簇的大小或者簇因子是当用户用格式化命令 或磁盘管理程序MMC插件格式化卷时建立的,默认簇的 因子随着卷的大小不同而改变,但他是物理扇区的整数倍, 总是2的幂次。 NTFS 通过逻辑簇号指定磁盘上的物理位置,LCN是所有的 簇从开始到结尾的简单编号。当磁盘驱动程序接口需要时,
可恢复性支持
NTFS通过日志记录来实现文件系统的可恢复性。所有改变 文件系统的子操作在磁盘上运行以前,首先被记录在日志文 件中。在系统崩溃后的恢复阶段,NTFS根据记录在日志 文件中的文件操作信息,对那些部分完成的事务进行重做或 是撤销,从而保证了磁盘上文件系统的一致性。这种技术称 为“预写日志记录” NTFS不会直接从日志文件中读取记录而是通过LFS来读写 记录的 LFS提供了许多操作来处理日志文件、包括打开、写 入、向前、向后、更新等。 以下是NTFS为实现卷的可恢复性而执行的操作步骤:
FFF8~FFFFH XXXXH
FFFFFFF0~FFFF 保留簇 FFF6H FFFFFFF7H 坏簇,不在任 何文件链上 FFFFFFF8~FFFF 文件的最后一 FFFFH 个簇 XXXXXXXXH 文件的下一 个簇
簇号链
NTFS
• NTFS的特点: 1.可恢复性 NTFS基于原子事务的概念实现文件系统的可恢复性 2.安全性 NTFS可以指定谁能访问哪些文件夹和目录及对它进行什 么操作 3.数据冗余和容错 4.基于Unicode字符号来存储文件、目录和卷名称 5.通用索引机制 可以索引文件属性,从而大大提高了文件管理的效率
NTFS
6.动态坏簇重映射 即具有热修复重定向功能,将受损簇的信息写入其他簇, 并标记坏簇地址,以防止以后再使用它。 7.POSIX(可移植操作系统接口)支持 8.文件压缩 9.日志记录 通过监视卷上文件或目录的改变,实现文件的可恢复性 10.磁盘限额 11.硬链接 硬链接允许从多个路径来指向同一文件和目录。
3
4 5
$Volume
$AttrDef $\
卷文件
属性定义表 根目录
记录号 6 7 8
文件名 $Bitmap $Boot $BadClus
含义 位图文件 引导文件 坏簇文件
9
10 11
$Secure
$UpCase $Extended metadata directtory
安全文件
大写文件 扩展元数据目录
分类组织形式,因此使查找一个项时所需的磁盘访问次数减 到最少,根索引属性包含B+树的第一级(根子目录)并指向包 含下一级(大多数是子目录,也可能是文件)的索引缓冲区 索引中的每一项还包括了位于MFT中的描述文件所在位置的 文件引用以及文件时间和文件大小等情息。NTFS根据文件 的MFT记录来复制时间标记和文件大小信息。这种技术需要 将更新信息写在两个地方,因此比较麻烦。但是,这仍是一 个提高目录浏览速度的好方法,冈为它可以在文件系统不打 开目录中仟何文件的情况下显示每个文件的时间标记和大小。 索引分配属件包含了索引缓冲区的VCN到LCN映射.而位图 属性跟踪在索引缓冲区中哪些VCN是在使用而哪些是空闲 的,每个文件项占有一个VCN,而实际上多个文件项被包装 在同一个簇中,每个4KB大小的索引缓冲区可以容纳20到30 个文件项。
由于MFT中的前16个元数据文件记录非常重要,因 此为了防止丢失NTFS系统在该卷上的文件存储区 的中央保留了前16个元数据文件记录 如下图
文件引用号 NTFS卷上的每个文件都有一个64位称为文件引用号的 唯一标识,文件引用号由两部分组成:一是文件号,二是文 件顺序号。文件号为48位(bit),对应于该文件在MFT中的位 置。文件顺序号随着每次文件记录的重用而增加,这是为了 让NTFS进行内部一致件检查而设计的。 文件属性 NTFS将文件作为属性属性值的集合来处理,这一点与 其他文件系统不一样。文件属性分为常驻属性和非常驻属性。 当属性值能直接存放在MFT中时,则属性称为常驻属性,非 常驻属性属性流的存放不在主文件夹中。
数据压缩
数据压缩是NTFS文件系统的一个重要特征。虽然FAT文件 系统也支持数据压缩.但是NTFS压缩功能可以对单个文件、 整个目录或NTFS卷上的整个目录树进行压缩(NTFS压缩只 在用户数据上进行,而不能在文件系统元数据上进行)。数据 压缩可以减少磁盘使用空间.但是由于每次解压缩需要大量 的数据运算,所以使用压缩功能将会导致NTFS卷的性能下 降。例如要拷贝一个压缩文件.其过程是:解压缩、拷贝、 重新对拷贝的文件进行压缩.这些都大大增加了CPU的处理 时间。
FSD与文件系统操作
FSD与文件系统操作
• 显式文件I/O:应用程序通过Win32I/O函数如CreateFile、 ReadFile和WriteFile等来访问文件。 • 高速缓存延迟写:高速缓存管理器的延迟写线程定期对高 速缓存中已被修改过的页面进行写操作。 • 高速缓存提前读:高速缓存管理器的提前读线程负责提前 读数据,提前读线程通过分析已做的读操作来决定提前读 多少,它依赖于缺页中断来完成这一任务。 • 内存脏页写:内存脏页写线程定期清洗缓冲区。
索引
在NTFS系统中,文件目录仅仅是文件名的一个索引。NTFS 使用了一种特殊的方式把文件名组织起来.以便于快速访问。 当创建一个日录时、NTFS必须对目录中的文件名属性进行 索引。 一个目录的MFT记录将目录中的文件名利子目录名进行排 序,并保存在索引根属性中。然而,对于一个大目录,文件 名实际存储在组织文件名的固定4KB大小的索引缓冲区中。 索引缓冲区是通过B+树数据结构实现的,B+树是平衡树的 一种,对于存储在磁盘上的数据来说.平衡树是一种理想的
如果属性值能真接存放在MFT中,那NTFS对它的 访问时间就将大大缩短,NTFS只要访问磁盘一 次.就可立即获得数据;而不必像FAT文件系统那 样、先在FAT表中查找文件、再读出连续分配的单 元,最店找到文件的数据。 小文件或小目录的所有属性,均可以在MFT中 常驻,小文件的未命名属件可以包括所有文件数 据,小目录的索引根属性可以包括其中所有文件和 子目录的索引。
NTFS如何通过MFT访问卷? 首先,当NTFS访问某个卷时,它必须,“装载”该卷: NTFS 会查看引导文件,找到MFT的物理磁盘地址,然它就从文件 记录的数据属性中获得VCN到LCN的映射信息,并存储在内 存中。这个映射信息定位了MFT的运行(run或extent)在磁盘 上的位置。接着,NTFS再打开几个元数据文件的MFT记录 并打开这些文件。如有必要NTFS开始执行它的文件系统恢 复操作。最后,NTFS打开剩余的元数据文件后,用户就可 以开始访问该卷了。
NTFS
12.加密 NTFS提供了一个EFS工具对数据进行加密和解密 13.碎片整理 14.多数据流 文件的实际内容被当作字符流进行处理。在NTFS中可 以为一个文件定义多个数据流,文件的属性,包括文件名、 文件的拥有者、文件的时间标记。文件的内容等都可以作 为一个数据流来存储。
NTFS的文件驱动程序
windows 文件管理
文件系统
在windows系统中,文件管理是通过目录来完成的,而目录 又是建立在分区或卷的基础上。操作系统中与文件和目录相 关的子系统称为文件系统。
windows 文件系统模型
windows 文件系统模型解析
• HAL:硬件抽象层,是将操作系统的其余部分表示为抽象 的硬件设备,特别是去除了真正硬件所富含的瑕疵和特质。 这些设备表现为操作系统的其它部分和设备可以使用的独 立于机器的服务的形式(函数调用和宏)。 • 设备驱动程序:位于I/O管理器的最底层,直接对I/O设备 进行操作。 • 中间驱动程序:与低层设备驱动程序一起提供增强功能。 例如,当发现I/O失败,设备驱动程序可能简单地返回出 错信息,而中间驱动程序却可能在收到出错信息后,向设 备驱动程序发出再试请求。 • 文件驱动程序(FSD):扩展低层驱动程序的功能,以实 现特定的文件系统,如NTFS。
文件系统
CDFS:1988为CDROM介质的只读光盘所制定的标准格式。 其特点如下:文件和目录名的长度必须少于32个字符;目录 树的深度不能超过八层。 UDF:通用磁盘格式,其优点如下:文件名可长达255个字 符;最大路径长度为1023个字符;文件名区分大小写
文源自文库系统
FAT中簇项值的意义
簇项值(12) 簇项值(16) 000H FF0~FF6H FF7H FF8~FFFH XXXH FFF0~FFF6H FFF7H 0000H 簇项值(32) 00000000H 含义 可用簇