WINDOWS文件系统(涂老师)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NTFS文件系统
$LogFile日志 文件中记载着 一个修改文件 名的实例
原子操作的 实现依赖于日志 文件。
NTFS文件系统
Volume 文 件
该文件60H属性中 记录着卷标
NTFS文件系统
$AttrDef 文 件
记录所有属性定义 的列表
NTFS文件系统
$AttrDef 文 件内容
0CH 0EH~0FH 10H~11H 12H~13H 14H~15H 16H~17H
18H~19H
1AH~1BH 1CH~1FH
FAT文件系统
FAT卷树型目录的实现 假设FAT卷中有条如下文件路径: X:\123\456\kingsoft.txt 文件系统访问过程可能如下: 1、从引导扇区获取根目录起始簇 2、在根目录中,找到123目录的目录项(访问FAT表) 3、根据123目录项信息,定位123目录在卷中的位置(访问FAT表) 4、在123目录中找到456的目录项 5、根据456目录项信息,定位456目录在卷中的位置(访问FAT表) 6、在456目录中找到kingsoft.txt文件的目录项 7、根据kingsof.txt目录项信息访问该文件(访问FAT表)
NTFS文件系统
文件
NTFS文件系统文件可以分两种 元数据文件:构造文件系统的文件,任何权限用户不可访问,不可 修改, 用户文件:用户数据
NTFS文件系统
NTFS元数据文件
元文件 $MFT $MFTMirr $LogFile $Volume $AttrDef $Root $Bitmap $Boot $BadClus $Quota(NTFS4) $Secure $UpCase $Extend metadata directory $Extend\$Reparse $Extend\$UsnJrnl $Extend\$Quota $Extend\$ObjId 功能 主控文件表本身 主控文件表的部分镜像 日志文件 卷文件 属性定义列表文件 根目录 位图文件,记录了卷种簇的分配情况 引导文件,记录了用于系统引导的数据情况 卷的坏簇列表文件 在早期的NT系统中此文件为磁盘配额信息 安全文件 大小写字符转换表文件 扩展元数据目录 重解析点文件 加密日志文件 配额管理文件 对象ID文件
FAT文件系统
BPB参数(FAT16)
偏移 0DH 0EH 10H 11H 16H 1CH 20H 27H 36H 字节数 1 2 1 2 2 4 4 4 8 说明 每簇扇区数 保留扇区数 FAT区的个数 引导记录数,根目录所能容纳的目录项的个数 每FAT扇区数 隐含扇区数 分区的总扇区数 卷序列号(GetVolumeInformation可获取) 文件系统标识,以明码形式显示的文件系统格式
FAT文件系统
FAT32中目录项描述
目录项(FDT)的结 构
FAT卷中每个文件都有一个目录 项,其中包含了该文件的一些重要信 息,比如文件名、扩展名、文件大小、 文件在磁盘上的起始簇号、文件的一 些时间信息(文件建立时间,创建时 间,修改时间,访问时间等)、文件 属性等 。要注意的是目录在FAT卷中 也被认为是一种文件,其文件属性会 被定义为目录,其起始簇号所指向的 簇是一个包含若干个目录项目的目录。
NTFS文件系统
普通文件的MFT分析 MFT头 10H类型属性(标 准属性信息) 30H类型属性(文 件名属性) 80H类型属性(数 据属性) MFT结束标志
NTFS文件系统
常驻属性与非常驻属性 常驻属性将数据存放在 文件存储区 非常驻属性将数据存放 在MFT中,适合小文件, 可以节省磁盘空间(右 图为一非常驻80H类型 属性的例子)
FAT文件系统
文件 BPB参数
FAT文件系统 访问文件的过 程
得到文件簇链信息
FAT链
FAT区
文件目录项
FAT分区
确定首簇位置
确定FAT区位置
NTFS文件系统
NTFS卷总体结构
NTFS文件系统
主控文件表(MFT) MFT是NTFS卷结构的核心,系统通过MFT来确定文 件在磁盘上的位置以及文件的所有属性,其实在NTFS 系统中所有与文件相关的数据均被认为是属性,包括文 件的内容。MFT是一个与文件相对应的文件属性数据库, 它记录了除文件数据外的所有属性,甚至有的小文件的 数据本身也包含在MFT当中。MFT由许多文件记录 (File Record)组成,在NTFS卷中每个文件至少有一个 MFT,有些文件的文件属性如果在一个MFT中不能完全 容纳则可能有多个MFT。可以看出MFT是NTFS中最为 重要的系统文件,它包含了NTFS分区中所有文件的信 息。
记录所有属性定义 的列表
NTFS文件系统
“.” 文件(根 目录)
是目录的树型结构 的根节点
NTFS文件系统
什么是文件系统?
完善文件系统需要提供的功能: 1 实现目录结构(树型目录) 2 文件系统的可恢复性 3 文件系统安全性(权限设置、文件加密) 4 坏块管理 5 磁盘配额 6 ……
什么是文件系统?
文件命名
文件命名空间(Name Sapace)
1、POSIX(Portalbe Operating System Interface,可移植操作系统接口)。 Windwos 20000、Windows XP完全支持可移植操作系统接口POSIX 1003.1。在文 件系统方面,NTFS实现了POSIX 1003.1的所有要求。如: (1)大小写敏感。 (2)通过许可。当判定一个用户是否可以访问一个文件或者目录时,需要考虑路径 上的所有目录的安全许可。 (3)文件改变时间。提供文件最后被访问的时间标记。 (4)硬链接。在不同的目录下不同文件名的两个文件指向相同的数据时,两个文件 发生硬链接。 POSIX是最大的文件命名空间,它允许除了空字符(00H)和向前的斜线 “/” 以外所有的Uniconde字符集,最大的文件名长度为255, 但是有一些特例,比如 冒号 “:”, 在NTFS文件系统中是有效,但在Windows操作系统是不允许的。 2、Win32。Win32是POSIX命名空间的一个子集,它使用除“"*/:<>?\|”之外的所有 Unicode字符集,但注意名字不能够以“.”或空隔结束。 3、DOS。DOS是Win32命名空间的一个子集,只允许用大写字符,不能用空格,而且 排除“"*+,/:;<=>?\”等字符作为文件名,注意其文件名一定是这样的:1到8个字 符的文件名, 然后是一个点“.”,然后是0到3个字符的扩展名。
引导扇区
引导扇区
FAT区
FAT区
根目录区
用户数据区
用户数据区
FAT文件系统
引导扇区 1 引导代码 2 BPB参数
FAT文件系统
引导扇区 引导扇区在文件组织结构中起着至少2个作用, 一是在操作系统的引导过程起到定位操作系统系统 文件,并转交执行权限从而使系统引导成功;二是 其中的BPB参数确定分区大小、定位分区中其他数 据的位置(如根目录(FAT12/16)、FAT区)、同时 确定用户数据区的起始位置。 该扇区遭受破坏,分区将因为不能正常定位FAT 区、根目录区、用户数据区而造成不可访问。
WINDOWS文件系统
金山软件股份有限公司 金山毒霸事业部 涂彦晖
提
纲
1 2 3 4
什么是文件系统 FAT文件系统 NTFS文件系统 文件系统相关程序设计
什么是文件系统?
如果没有文件系统…… 操作系统中与文件和目录相关的子系统被 称为文件系统。
什么是文件系统?
文件系统基本功能: 1 文件命名 2 文件储存(磁盘空间管理等) 3 文件访问(创建、读、写、删除等)
偏移 00H~07H 08H~0AH 0BH 文件的文件名 文件的扩展名
数据含义
文件属性, 8位文件属性字节含义如下: B7~B6未用 ;B5归档位; B4子目录; B3卷标 ;B2系统 文件 ;B1隐藏文件 ;B0只读文件 保留未用 文件创建时间 文件最后访问日期 文件创建日期 文件起始簇号的高16位 系统最后修改时间,其中: 16H字节的0~4位是以2秒为增量的秒 16H字节的5~7位和17H字节的0~2位是分钟 17H字节的3~7位是小时 文件最后修改的日期,其中: 18H字节0~4位是天号 18H字节5~7位和19H字节0位是月份 19H字节的1~7位为年号,0~119分别代表1 980~2 099 文件的起始簇号的低16位 文件的长度(单位为字节)
簇链
从2~N个FAT项分别对应2~N个簇,在用户 对文件进行访问时,总是先访问文件的目录项, 找到首簇簇号,再找到该簇号对应的FAT项,在 其中得到下一簇的簇号,再在下一簇对应的FAT 项中得到再下一簇的簇号……一直到在FAT项中 找到有文件最后一簇的标志,对该文件的访问 才结束。这样就形成了一个链,称为盘簇链。
什么是文件系统?
树型目录 1、FAT文件系统通过目录项实现树型结构 2、NTFS文件系统通过索引(INDEX)来实现
FAT文件系统
FAT分区的组织结构一般如 左图(适用于FAT32分区) 或者右图(适用于FAT12或 者FAT16分区),其不同之 处在于FAT32分区已经将用 户的根目录解释成一个普通 文件,可以用访问普通文件 的形式来访问根目录,而 FAT12、FAT16分区的根目 录的位置与大小是固定不变 的,因此FAT12、FAT16的 根目录的文件个数是有限的。 当然这仅仅是FAT12、 FAT16与FAT32文件系统许 多个不同点中的一个。
FAT文件系统
FAT区
每个FAT卷都有至少一个FAT表(一般有2相同的FAT表) 构成FAT区,每个FAT表由若干个FAT项构成,每个 FAT项对应着卷中每个簇的使用情况(FAT 文件系统首 簇号为2)
FAT12的表项值
000H 001Hபைடு நூலகம்FEFH FF0H~FF6H FF7H FF8H~FFFH
NTFS文件系统
$MFT 该元数据用于 管理文件的主 控文件表
NTFS文件系统
$LogFile 的 MFT
日志文件的结 构非常复杂,目 前其具体结构未 知。 原子操作的 实现依赖于日志 文件。
NTFS文件系统
$LogFile日志 文件内容
日志文件的结 构非常复杂,目 前其具体结构未 知。只知道它被 分成了4K大小的 块,每块以RCRD 为开始标志
FAT16的表项值
0000H 0001H~FFEFH FFF0H~FFF6H FFF7H FFF8H~FFFFH
FAT32的表项值
00000000H 00000001H~0FFFFFEFH 0FFFFFF0H~0FFFFFF6H 0FFFFFF7H 0FFFFFF8H~0FFFFFFFH
值的含义
未用的空簇 文件已使用的簇 系统保留簇 坏簇 文件的最后一簇
FAT文件系统
簇(Cluster) 是文件数据区被划分成的具有大小相等的 区域,用于磁盘文件的计量分配单位。一 个簇可能有1、2、4、8、16、32、64或 128(必须是2的幂)个扇区构成,但系统 对分区进行格式化时往往会根据分区的大 小、文件系统类型,对簇的大小赋予一定 的值。
FAT文件系统
FAT文件系统
BPB参数(FAT32)
0BH~0CH 0EH~0FH 10H 1CH~1FH 20H~23H 24H~27H 2CH~2FH 52H~59H 43H~46H 每扇字节数0DH每簇扇区数 保留扇区数 磁盘FAT的个数 隐含扇区数 该分区占用的扇区数 每个FAT占用的扇区数 引导目录的第一簇,即根目录的起始簇 文件系统标识(“FAT32”字符串) 序列号(GetVolumeInformation可获取)
什么是文件系统?
文件储存(磁盘空间管理) 1、FAT文件系统以FAT表的形式对磁盘空间 进行管理; 2、NTFS文件系统以位图文件的形式对磁盘空 间进行管理;
什么是文件系统?
文件系统的可恢复性 1、非日志文件系统 谨慎写:文件修改立即写入,其数据立即写入磁盘。(牺 牲速度) 延迟写:数据并不马上写入磁盘(速度快,但不安全) 2、事务日志文件系统 基于事务日志处理模式,保证数据的一致性