NTFS文件系统的论述设计论文.doc

上传人:教**** 文档编号:88290497 上传时间:2023-04-24 格式:DOC 页数:20 大小:219KB
返回 下载 相关 举报
NTFS文件系统的论述设计论文.doc_第1页
第1页 / 共20页
NTFS文件系统的论述设计论文.doc_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《NTFS文件系统的论述设计论文.doc》由会员分享,可在线阅读,更多相关《NTFS文件系统的论述设计论文.doc(20页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 操作系统 题目: NTFS文件系统的论述姓 名 xx 学 号 xx 年级专业 xx 指导教师 xx 2014年5月26日NTFSNTFS(英语:New Technology File System),是Windows NT及之后的基于NT内核发展的Windows标准文件系统。4NTFS取代了文件分配表(FAT)文件系统,为目前 Microsoft 的 Windows 系列操作系统的主要文件系统。NTFS 在 FAT 和 HPFS(高性能文件系统)的基础上作了一系列改进(如支持元数据)并且使用了更复杂的数据结构(B+树)以便于提升性能、改善可靠性并降低磁盘空间利用率。NTFS 还同时提供了若干

2、附加的扩展功能,如访问控制列表和文件系统日志。NTFS 的详细设计规范属于商业秘密567 ,Microsoft已经将其注册为知识产权产品。89目录 1 历史 2 版本 3 功能 o 3.1 NTFS 日志o 3.2 USN 日志o 3.3 硬链接和短文件名o 3.4 可选数据流(ADS)o 3.5 限额o 3.6 稀疏文件o 3.7 重解析点o 3.8 卷加载点o 3.9 目录连接o 3.10 符号链接o 3.11 分层存储管理(HSM)o 3.12 本机结构存储(NSS)o 3.13 卷影复制o 3.14 文件压缩o 3.15 分布链接跟踪(DLT)o 3.16 单实例存储(SIS)o 3.

3、17 加密文件系统(EFS)o 3.18 事务 NTFS 4 互操作性 o 4.1 Microsoft Windowso 4.2 Mac OS Xo 4.3 Linuxo 4.4 其他o 4.5 从其它文件系统转换o 4.6 调整大小o 4.7 协调时间 5 内部实现 o 5.1 主文件表(MFT)o 5.2 元文件o 5.3 从 MFT 到属性、属性表和流o 5.4 常驻文件和非常驻文件o 5.5 机会锁 6 限制 7 开发者 8 另请参阅 9 参考文献历史1990年代早期,微软(Microsoft)和 IBM 组建了一个联合计划,目标是创建新一代的操作系统。该项目诞生了 OS/2,但由于

4、Microsoft 和 IBM 在很多重要问题上无法达成共识,最后合作被终止,目前 OS/2 至今仍属于 IBM,而 Microsoft 从此后开始研究 Windows NT。OS/2 的文件系统 HPFS 包含了许多重要功能,当 Microsoft 开始创建他们自己的新操作系统时,NTFS 文件系统的很多功能正是从 HPFS 中借鉴改善的。10 可能正是因为他们来自于同一个项目,HPFS 和 NTFS 使用相同的磁盘分区标识代码(0x07)。这是一种特例情况,因为可用的标识码并不匮乏,其它每个文件系统具有自己的标识码,例如,FAT 拥有超过九个编号(FAT12、FAT16、FAT32 等等各

5、自都拥有不同的标识码)。这种特例也导致之后用于区分文件系统的算法当遇到代码 0x07 时候不得不进行额外的检测。版本NTFS 有五个正式发布的版本: v1.0,随 NT 3.1 在 1993 年中旬发布来源请求 v1.1,随 NT 3.5 在 1994 年秋季发布来源请求 v1.2,附随于 NT 3.51(1995 年中旬)和 NT 4(1996 年中旬)。此版本有时候也被称为“NTFS 4.0”,因为操作系统版本是 4.0 v3.0,附随于 Windows 2000。此版本有时称作“NTFS 5.0”,原因同上 v3.1 附随于Windows XP(2001 年秋季,有时称作“NTFS 5.

6、1”),Windows Server 2003(2003 年春季,有时称作“NTFS 5.2”), Windows Vista(2005 年中旬,有时称作“NTFS 6.0”),Windows Server 2008(2008 年初),Windows Server 2008 R2(有时称作“NTFS 6.1”)以及 Windows 7V1.0 和 V1.1 和之后的所有版本不兼容。也即使用 NT 3.5x 写入的卷无法被 NT 3.1 读取。该问题的一个解决方案是使用 NT 3.5x 光盘更新 NT 3.1,并添加对 FAT 系统的长文件名支持。11 V1.2 支持压缩文件、命名流、基于 AC

7、L(访问控制列表)的安全性等功能。1V3.0 支持磁盘限额、加密、稀疏文件、重解析点来源请求,更新串行数(USN)日志、$Extend 文件夹(及其中的文件),并改进了安全描述符设计方案,允许使用同样的安全设置的多个文件共享一个安全描述符。1V3.1 在 MFT 中提供了冗余 MFT 记录数扩展项,此项目可用于恢复受损的 MFT 文件Windows Vista 提供了事务 NTFS、NTFS 符号链接、收缩卷以及自我恢复功能,12但这些附加功能由操作系统提供,而非文件系统自身的功能。注意很多人会将 NTFS.sys 文件版本(如 Windows 2000 中引入的 NTFS v5.0)和 NT

8、FS 磁盘格式版本(如 Windows XP 开始的 v3.1)相混淆。13需要强调的是,NTFS v3.1 磁盘格式自从 Windows XP 开始就已经固定保持不变,也一直用于之后的 Windows Server 2003、Windows Server 2008、Windows Vista 以及 Windows 7 系统。NTFS.sys 驱动程序的新功能(应用程序编程接口)来自于 Windows 操作系统,而非 NTFS 磁盘格式。Microsoft 曾经在推出 Windows 2000 时详细列举了 NTFS 文件系统的新功能,并且将其称为 NTFS v5.0,但事实上这个版本号指的是

9、 NTFS.sys 文件的版本,而磁盘格式版本应当是 v3.0。14功能相对于之前的版本,NTFS v3.0 包含若干新功能:磁盘使用限额、稀疏文件支持、重解析点、分布链接跟踪,以及文件级加密(也即“加密文件系统(EFS)”)。NTFS 日志NTFS 是一个日志文件系统,使用 NTFS 日志($Logfile)记录卷更改元数据。这是 NTFS 一个非常关键的功能(FAT/FAT32 不提供此项功能),可确保其内部的复杂数据结构(如比较重要的如卷分配图、磁盘碎片整理 API 产生的数据转移操作、MFT(主文件表)记录的更改情况(包括移动 MFT 记录中存储的变长属性和属性表等)和索引(在目录和安

10、全描述符中使用)即使在系统崩溃后仍然能保证一致性,而当在卷被重新加载后,可以非常容易地回滚这些关键数据的意外修改。USN 日志USN 日志(更新串行数日志)是一项系统管理功能,用于记录卷中所有文件、数据流、目录的内容、属性以及各项安全设置的更改情况。应用程序可以利用日志追踪卷的更改。15对于非系统卷,可以选择打开或关闭日志。16当添加一个新卷后,默认情况下日志功能处于打开状态。硬链接和短文件名硬链接原本用于支持 Windows NT 的 POSIX 子系统17,该功能类似于目录链接,不过作用目标是文件而非目录。硬链接只能作用到同一个卷的文件中,因为它需要在文件的 MTF 记录中增加一个额外的文

11、件名记录。短(8.3)文件名也同样使用额外文件名实现,以便于实现同步更新。当更改文件的大小或其它属性时,对应的目录或者链接不会立即更新,直到打开它们的时候才会体现相应的变化。18可选数据流(ADS)可选数据流使单个文件可以关联到多个数据流。NTFS 数据流的表述方式为“文件名:流名”,例如“text.txt:extrastream”。可选数据流不会显示在 Windows 资源管理器中,也不会算入查看文件属性时显示的文件大小。如果将文件复制到 FAT 格式的磁盘、附加到电子邮件、上传到网站,或者移动到任何其它不支持可选流的位置上时,则只有主数据流会被保留下来,其它可选流将被全部丢弃,因此使用可选

12、流来保存重要数据很可能会发生意外。NTFS 流从 Windows NT 3.1 开始被引入,起初设计目的是为了 Services for Macintosh(SFM)能够正确存储 Macintosh 的资源分岔。现在的 Windows 服务器已经不再包含此功能,但很多第三方的Apple 归档服务(AFP)产品(例如 Group Logic 的 ExtremeZ-IP)仍然会继续使用可选数据流。有些恶意软件会使用可选数据流来隐藏程序代码,19不过不少恶意软件扫描程序和特殊工具现在已经能够检查可选数据流中的内容。 Microsoft 也提供了一个叫作 Streams20 的工具,用户可以使用这个工

13、具查看卷中的可选流。Internet Explorer 和其它一些浏览器会在从网络上下载的文件中添加一个非常小的可选数据流,用于标记它们来自于外部网站(表示可能会存在安全风险),用户在打开这些文件前系统将会显示一个确认提示。21当用户表示不希望再次看到这个确认对话框的时候,这个可选流将会从下载的文件中被直接删除。有些媒体播放器也尝试使用可选数据流记录多媒体文件的自定义元数据,用于管理媒体文件。MPEG、OGG 等格式通常在文件内签入信息标签记录媒体信息,但不是所有格式都支持这种设计,而使用可选数据流的好处正是他不会影响文件本身的内容。在 Windows 中注册外壳扩展程序后,系统就可以解析这些

14、数据,然后可以在 Windows 资源管理器的信息栏中显示它们。但大部分媒体播放器还是选择使用独立数据库而非可选数据流来保存这些信息,因为可选数据流可能带来一些其它问题,一个典型问题是文件上的信息对于所有用户都可见并且是共享的,因此使用可选数据流将无法根据不同用户的安全设置和喜好进行分别管理和保护。限额磁盘限额是 NTFS v3 开始提供的功能。此功能允许计算机管理员在受支持的 Windows 操作系统上为每个用户分别设定允许使用的磁盘空间阈值,或者跟踪查看每个用户使用的磁盘空间使用量。管理员可以设定当某个用户使用了特定量的磁盘空间后收到“磁盘空间超限”的警告,甚至拒绝他们继续占用更多空间。如

15、果有文件或者目录使用了 NTFS 文件压缩,则磁盘限额管理的尺寸以压缩后的实际尺寸为准。如果应用程序通过操作系统接口查询用户可用的剩余磁盘空间大小,开启限额后程序得到的大小将是在限额范围内的剩余空间,而不再是磁盘的总剩余空间。Basic、Home 和 MediaCenter 版本的 Windows 不支持磁盘限额功能。要使用这个功能,必须安装 Professional、Ultimate 或者服务器版本的 Windows,或者使用 Windows 域中的企业部署工具进行部署。稀疏文件稀疏文件是包含稀疏数据集的文件,稀疏文件只储存文件中各个有意义的片段,而片段之间的空白将被忽略,这种设计特别适合实

16、际数据非常少、大部分区域空白的文件。读取文件时,对任何被忽略的位置,文件系统程序都会返回数据 0,因此文件内容看起来几乎全是零。很多数据库和科学程序使用稀疏文件22。Microsoft 实现了对稀疏文件的高效存储支持,允许应用程序指定文件的空(零)数据区域。读取稀疏文件的应用程序不需要做单独处理,可以继续使用常规方法读取数据,操作系统将根据读取的位置决定返回零或者实际数据。和压缩文件类似,磁盘限额对稀疏文件的尺寸判断也以实际占用尺寸为准。2324重解析点该功能从 NTFS v3 开始可用。该功能可以在用户空间中为文件或目录添加一个关联的重解析点属性。当对象管理器(请参见Windows NT 线

17、执行)解析文件系统名称并遇到重解析点属性时,它将“重新解析”名称,具体做法是:Windows 会将需要重解析的名称传递给已经加载的所有文件过滤驱动程序,每个过滤驱动程序都会检查重解析数据并判断自己是否和该重解析点相关联。如果某个过滤驱动程序判定自己匹配该重解析点,则它将拦截这次文件系统调用,然后执行对应的特定功能。重解析点是实现卷加载点、目录连接、分层存储管理、本机结构存储,以及单实例存储等功能的基础。卷加载点类似于 Unix 加载点,可以将一个卷的根目录附加到另一个文件系统的某个目录下。这项功能可以让驱动器不需要单独的卷标(如 C: 或 D:)就可以被访问。当卷被加载到另一个卷的某个目录时,

18、该目录原来的内容将无法访问,而被新加载的卷中的内容所代替。被加载的卷仍然可以继续拥有独立的卷标。NTFS 文件系统不允许卷之间相互加载。卷加载点可以是永久的,也可以是非永久的。前者在系统重启后会自动加载,而后者需要手动重新加载。被加载的卷可以使用 NTFS 外的其它文件系统。一个常见的例子是,被加载的卷一个远程共享的目录,该目录拥有自己的权限设置,并且能够根据实际文件系统的策略为当前操作系统设定特定的访问权限。目录连接类似于卷加载点,但 目录连接的连接目标是文件系统中的某个其它目录。例如,目录 C:exampledir 带有一个目录连接属性,连接到 D:linkeddir。当用户级别的应用程序

19、访问时,NTFS 将自动把所有引用重定向到 D:linkeddir。1目录连接功能在概念上类似于 Unix 的目录符号链接,但符号链接可以连接到任何目标,而 NTFS 目录连接只允许连接到目录。目录连接可以在控制台中通过命令 MKLINK /J 连接名 目标目录 创建,使用 RMDIR 连接名 删除。目录连接是永久性的,如果在客户端访问服务器的目录连接,则操作系统会使用被链接的目录所属的系统(或域)的安全设置。但连接本身可能拥有独立的安全设置,并且删除一个目录连接不会同时删除目标目录。有些目录连接是 Windows Vista 系统创建的,用于保持和早期版本的 Windows 的兼容性,例如系

20、统驱动器中的 Documents and Settings 文件夹会被连接到同一个卷中的 Users 物理目录上。这些目录默认情况下是隐藏的,并且进行了相关的安全设置,因此 Windows 资源管理器不允许外壳或者大部分应用程序直接打开它们,这样的设置可能是为了防止用户发现两个看上去相同的文件夹,然后错误地删除其中的某一个。默认情况下只有本机的 SYSTEM 账户或者的 Administrators 用户组成员可以访问这些目录,这是考虑到这些账户安装软件的权限,而安装时可能会产生兼容性问题。目录连接属于软链接(即使目标目录已经被删除,他们也仍然存在),使用一种类似符号链接的方式工作(只不过对于

21、目标位置和类型有额外的限制),但 NTFS 文件系统对它们进行了特殊优化,解析更快,相比于之后提出的 NTFS 符号链接,目录连接的开销更小,且可以在服务器端解析,因此可以在远程共享目录中使用它们。符号链接参见:NTFS符号链接符号链接(或称软链接)从 Windows Vista 开始引入。25符号链接在客户端解析,因此如果服务器上共享了一个符号链接,则客户端访问时将服从本机而非服务器端的访问限制。符号链接可以链接到文件(使用 MKLINK 符号链接 目标文件名 创建),也可以链接到目录(使用 MKLINK /D 符号链接 目标目录 创建)。和 Unix 符号链接不同的一点是,NTFS 符号链

22、接在创建的时候就要决定目标类型(目录或文件),但创建符号链接的时候并不需要目标已经存在或可以访问,在访问时才会实际检查可访问性。NTFS 在访问符号链接时也会检查目标的类型,由于 NTFS 不允许在任何位置有目录和文件同名,因此如果目标名称存在但是类型不正确,系统也会返回一个找不到目标的错误。符号链接也可以引用远程主机上的共享文件夹或者其中的文件、子文件夹。但目标并不会被立即加载,而是在应用程序使用 OpenFile() 或者 CreateFile() API 请求打开目标的时候才加载到系统中。符号链接是永久的(重新启动后仍然保留在对应的卷上),可以在命令行或者脚本中使用 DEL 符号链接 删

23、除它们。分层存储管理(HSM)分层存储管理是一种转移一定时间不用的文件到价值更低的储存介质中的方法。当文件再次被访问时,文件上的重解析点将判定文件需要被使用,并将文件从储存介质中恢复出来。 分层存储不但可以节省存储开销,也可以提高操作系统的数据读写和运行效率。本机结构存储(NSS)本机结构存储是一种已经被 Microsoft 终止使用的 ActiveX 文档存储技术。这项技术允许 ActiveX 文档 使用和 ActiveX 内部的多流格式相同的方式进行储存。操作系统会加载一个 NSS 文件过滤驱动程序,可以在应用程序使用文件时透明地处理多流格式。当 NSS 文件被传输到非 NTFS 格式的磁

24、盘卷上时,文件内部的多个流将被合并转换为一个流。26卷影复制卷影复制(VSC)服务通过将新改写的数据复制到卷影(写入时复制)来保存 NTFS 卷上的文件和文件夹的历史版本。当用户请求恢复文件的早期版本时,旧的文件数据将会覆盖新数据。该功能也使得数据备份程序可以存档当前系统正在使用的文件。对于负载较重的系统,Microsoft 建议将卷影副本设置到单独的磁盘上,以减小系统主要卷的 I/O 负载。文件压缩NTFS 能够使用 LZNT1 算法(LZ77 算法的一种变种)压缩文件。27 文件压缩以 16 个簇为一个区块进行,也即如果簇大小为 4KB,则压缩时单个区块的大小为 64KB。如果压缩可以将

25、64KB 数据压缩到 60KB 或者更小,则 NTFS 会将多余的 4KB 页面视为稀疏文件簇,认为他们未经写入。对此类簇的随机访问的性能是可以接受的,操作系统只需跟踪碎片链接即可。但如果处理大型可压缩文件,则会产生大量碎片,因为 NTFS 会将每个小于 64KB 的区块都看成一个碎片区域。2829 硬盘空间受限的单用户系统可以使用 NTFS 压缩在处理小文件(4KB 到 64KB,或者更大尺寸,具体范围取决于压缩比)时受益。小于 900 字节的文件将被直接存储在 MFT 的目录项中。30闪存设备(如固态硬盘)没有传统硬盘的磁头移动延迟,因此对此类设备,磁盘碎片的影响非常有限。具有快速多处理器

26、系统的用户可以通过压缩应用程序文件和数据以提升速度并降低磁盘空间使用率。31请注意,使用 Sandforce 控制器的 SSD 本身也会压缩数据,但由于传输的数据量变少,I/O 负载负载也会降低。数据压缩的最佳目标是内容具有重复性、很少写入、通常顺序访问,并且尚未被压缩过的文件。例如,日志文件就是一种理想的压缩目标。压缩系统引导时需要使用的文件,如驱动程序、NTLDR、winload.exe,或者 BOOTMGR,会导致系统无法正确启动。32不过在较新版本的 Windows 系统中,压缩重要的系统文件操作会被直接禁止。当在驱动器或目录的“高级设置”中更改“将文件进行压缩”的设置时,每个文件将被

27、独立进行压缩或者解压缩。对于压缩文件的读写绝大部分时候是透明的33,但 Microsoft 建议避免对服务器系统或者通过网络共享的远程配置文件进行压缩,因为这可能增加处理器的负担。34Microsoft 建议不要压缩超过 30MB 的文件,因为这可能会产生性能问题。来源请求由于压缩文件会产生很多碎片,因此磁盘碎片整理过程通常需要花费更长时间。计算机系统中最慢的设备通常不是 CPU 而是硬盘,因此 NTFS 压缩通常可以更有效地利用慢速的非 RAM 存储系统,节省空间和时间(前提是假设压缩文件的碎片不会连续存放) 。35如果一个程序(如下载管理器)无法将没有内容的文件创建为稀疏文件,NTFS 压

28、缩也可以作为稀疏文件的替代技术。来源请求分布链接跟踪(DLT)参见:文件快捷方式分布链接跟踪功能允许应用程序跟踪被重命名或者移动到同一计算机、域或工作组的其它卷中的文件、快捷方式和 OLE 链接。36 跟踪功能由一个系统服务提供,使用存储在元文件中的对象标识符(OID)索引实现。37当应用程序请求跟踪某个文件或目录后,跟踪服务将会创建对象的 OID 项并指向目标。在一个 NTFS v3 上执行文件重命名、复制或移动操作时,也会同时复制对象的 OID,这样跟踪服务就可以有效地寻找到目标。单实例存储(SIS)当若干个不同目录中存有内容相同的文件时,单实例存储允许将相同文件归并到一个单一文件中,并将

29、所有文件引用到实际的文件上。单实例存储功能包含一个用于管理复制、修改和归并文件的文件系统过滤器和一个用于搜索需要归并的相同文件的用户空间服务(“groveler”)。单实例存储提出时的主要针对目标是远程安装服务器,这些服务器上往往拥有若干个包含大量相同文件的安装镜像,单实例存储可以将它们统一起来,因而节省需要占用的总尺寸。和硬链接不同的一点是,在 SIS 下,每个文件在逻辑上仍然是独立的,更改被合并为单个文件的任意其中一个文件都不会影响其它文件,而是会取消对该文件的合并并产生一个新的副本。不过新文件不会立即写入到硬盘,NTFS 使用类似于写入时复制的技术,在文件最终需要保存时才执行复制。38加

30、密文件系统(EFS)加密文件系统(EFS)提供对 NTFS 卷上任意文件和文件夹的用户透明的强保护。 加密文件系统需要与 EFS 服务、Microsoft 的加密应用程序接口(CryptoAPI)以及 EFS 文件运行时库(FSRTL)联合工作。 EFS 使用对称密钥(也被称为“文件加密密钥(FEK)”)加密文件,这比起使用非对称密钥加密在加密和解密大量数据时消耗的时间较少。该对称密钥使用一个和请求加密文件的用户相关的公钥加密文件的内容,加密后的数据储存在被加密文件的可选数据流中。当需要解密文件时,文件系统使用用户的密钥解密储存在文件头中的对称密钥,然后使用该对称密钥解密文件。这些操作在文件系

31、统级别完成,因此对用户来说是透明的。39 为了处理用户丢失密钥的情况,加密文件系统中还支持多个附加解密密钥,因此除用户外,授权过的恢复代理也能访问数据。NTFS 提供的加密和压缩功能是互相排斥的如果同时希望加密和压缩,则 NTFS 文件系统级别只能打开其中一种功能,另一种功能需要使用其它第三方工具完成。Basic、Home 和 MediaCenter 版本的 Windows 上不支持 EFS 功能。要使用这个功能,必须安装 Professional、Ultimate 或者服务器版本的 Windows,或者使用 Windows 域中的企业部署工具进行部署。事务 NTFS在 Windows Vis

32、ta 中,应用程序可以使用事务 NTFS(Transactional NTFS)将一系列对文件的更改归组到一个事务中。事务能够确保所有更改要么同时生效,要么同时作废,并能确保在事务提交完成前,其它应用程序无法无法检测到其中的更改。40该技术使用和卷影复制类似的技术,用以确保在事务不成功时,被改写的数据可以安全地回滚。通用日志文件系统的日志将记录下尚未成功提交或者已经提交但尚未完全生效的事务(常见原因是事务的某个参与者在提交过程中系统意外崩溃)。事务 NTFS 并不要求事务是本机 NTFS 卷的文件操作,可以包含在其它位置的任意事务数据或操作,例如对其它卷、本地注册表、 SQL 数据库中、系统服

33、务或者远程服务中的事务修改。所有这些事务使用 Windows 系统中的“分布事务协调器(DTC)”服务在网络级别协调所有参与者,以确保所有参与者都能接收到同样的提交状态,并传输所有经过确认的更改。分布式 NTFS 事务的一个典型例子是可以以事务方式创建一个网络级别的分布式文件系统,并且每个客户端都保留每个文件的准确的脱机缓存。互操作性NTFS 具体的内部实现细节属于商业秘密,这给第三方开发者制作 NTFS 文件系统处理程序带来了很大的困难。Microsoft Windows尽管绝大多数 NTFS 版本的绝大部分都完全向前以及向后兼容,但在旧版本的 Microsoft Windows 加载新版本

34、的 NTFS 卷仍然会产生不少技术问题。这种问题往往来自于同一台计算机的多重启动功能,或者使用移动硬盘设备传输文件。例如,在不支持的操作系统上尝试使用带有“先前版本”(严格的说称为卷影副本)的 NTFS 分区,会导致先前版本数据丢失。41Mac OS XMac OS X 10.3 及后续版本包含了对 NTFS 格式分区的只读支持。基于 GPL 授权的 NTFS-3G 也可以通过用户空间文件系统在 Mac OS X 上使用并读写 NTFS 分区。NTFS-3G 的开发团队还提供了一个性能更好的商业版本,名称为“Tuxera NTFS for Mac”。42 Paragon Software Gr

35、oup 也出售可执行读写操作的驱动程序,名称为“NTFS for Mac OS X”,43部分希捷(Seagate)硬盘包含了该组件。44Mac OS X 10.6 和后续版本中包含有本机 NTFS 的写入支持,默认情况下此功能未激活,可以通过特定方法打开。但有用户报告此功能不稳定并会导致内核错误,可能这也是该功能未启动或者被声明的原因之一。45Linux完整并安全的对 NTFS 的读写功能由 NTFS-3G 驱动程序提供。该驱动程序包含在绝大多数Linux发行版中。同时也存在过时的,大部分仅只读的解决方案: Linux 内核 2.2:从版本 2.2.0 开始,可以读取 NTFS 分区。 Li

36、nux 内核 2.6:包含一个由 Anton Altaparmakov(来自剑桥大学)和 Richard Russon 编写的驱动程序,该驱动程序支持读取文件以及在部分情况下的改写文件和调整文件大小。 NTFSMount:使用 ntfsmount 可以通过一个用户级驱动程序对文件和目录进行有限的读写操作。46 Tuxera NTFS: 高性能可读写上业内核驱动, 主要是针对嵌入式设备, 他还开发了开源的 NTFS-3G 驱动. NTFS for Linux:由 Paragon Software Group 提供的对 NTFS 提供完整读写支持的商用驱动程序,桌面版可免费下载,嵌入式 Linux

37、 版本则需要收费。 Captive NTFS(已停止维护):一个使用 Windows 自身的驱动程序“ntfs.sys”并进行简单封装的驱动程序。请注意,上面所有三个用户级别驱动程序(NTFSMount、NTFS-3G 以及 Captive NTFS)都基于用户空间文件系统(FUSE),该系统是一个用于在用户空间和内核代码间通讯以获取或保存数据的 Linux 内核模块。技术上面所有的驱动程序(除了 Tuxera NTFS 和 Paragon NTFS for Linux)都是开源(使用 GPL 授权)的。由于 NTFS 内部结构非常复杂,内置的 2.6.14 内核驱动程序和 FUSE 都不允许

38、修改被认为是不安全的卷,以避免发生损坏事故。其他ComStation 和 FreeBSD 都提供对 NTFS 的只读访问支持(eComStation 有一个测试版本的驱动程序允许写入删除操作,但通常认为该驱动程序还不安全)。BeOS 有一个基于 NTFS-3G 的的第三方工具,允许完整的 NTFS 读写操作。除了 Linux, NTFS-3G 也能工作在 Mac OS X、FreeBSD、NetBSD、Solaris 以及 Haiku 上。同时,也有一个称为“NTFS4DOS”的商用驱动程序允许在 DOS 下进行读写。47 Ahead Software 曾经在 2002 至 2004 年间开发

39、了一个名为 “NTFSREAD”的驱动程序(版本 1.200),可用于 DR-DOS,并曾包含在他们的 Nero Burning ROM 软件中。OpenBSD 在 2011年5月1日 发布的 4.9 版本中提供了针对 i386 和 amd64 体系结构的 NTFS 只读支持。48从其它文件系统转换Microsoft 当前提供了一个工具(convert.exe),可以将HPFS(仅 Windows NT 3)、FAT16 以及在 Windows2000 以上的 FAT32 卷转换为 NTFS。49调整大小有许多第三方工具可以安全地重新调整 NTFS 分区的大小。在 Windows Vista

40、中,Microsoft 添加了收缩和扩展分区的功能,但该功能非常有限,因为该功能无法整理页面文件碎片或者标记为不可移动的文件,因此限制了对分区的收缩能力。取消页面文件重新启动或使用第三方的工具进行磁盘碎片整理也许能改善收缩效果。协调时间由于历史原因,所有不支持 NTFS 的 Windows 系统内部都将时间记录为本地时区时间,而 Windows NT 以及由此派生的系统使用通用协调时间(UTC)记录内部时间戳(在操作系统显示文件时间时,系统会预先转换为当前用户对应的时区)。这意味着当在 NTFS 和非 NTFS 分区间移动或复制文件时,操作系统需要转换时间戳。但如果被移动的部分文件使用了夏时制

41、,而其他文件使用了标准时间,则转换会导致不能确定结果。特别是当在本地时区时间正好处于夏时制和标准时制切换的过渡期时,文件的时间可能会错开一小时。由于夏时制在南北半球的实现不一致,严格来说,时间转换操作可能会导致在任意 12 个月中产生最多 4 个小时的时间戳错误。50内部实现File:NTPermissions.png Windows Vista 系统上的 NTFS 文件权限设置对话框。在内部,NTFS 使用 B+树索引文件系统数据。这种数据结构的方式实现比较复杂,但能够在大多数情况下提高文件的查找速度。文件系统日志用于确保文件的元数据完整,不存在孤立的文件内容。相比于 FAT 文件系统,NT

42、FS 文件系统的可靠性更高。51NTFS 允许对名称(包括文件名称、流名称、索引名称等)使用除了 0x0000 以外的任意 16 位值串行进行编码。这意味着支持 NTFS 支持 UTF-16 码位,但文件系统并不会检查某个 UTF-16 串行是否有效(也即允许 NTFS 内部任意 16 位整数串行,不受 Unicode 标准的限制)。主文件表(MFT)在 NTFS 中,所有文件数据文件名、创建日期、访问权限(使用访问控制列表(ACL)实现),以及内容都作为元数据储存在主文件表中。这种抽象的实现方式能够大大简化为文件系统添加功能的成本。例如,Active Directory(活动目录) 服务可以

43、很容易在文件系统中为文件添加索引字段。这种设计方式也使得 Everything 或者 Ultrasearch52 一类的软件可以不依赖于 Windows 索引服务实现对文件和文件夹名称的实时搜索。MFT 结构支持最小化磁盘碎片的算法。53一个目录项同时包含“文件名”和“文件 ID”,后者是用于在主文件表中标识文件的记录编号。文件 ID 也包含“重用次数”信息,可用于检测对文件的过期引用。这点设计非常类似于 Files-11 文件系统的 W_FID,和 NTFS 的其他部分迥然不同。元文件NTFS 包含若干用于定义和组织文件系统的文件。总体来说,这些文件中的绝大多数结构和其它用户文件类似(只有“

44、$Volume”比较特殊),但不能被文件系统客户端直接访问。这些元文件为定义文件、备份文件系统的关键数据、缓存文件系统的更改、管理空闲空间的分配、满足 BIOS 的要求、跟踪坏扇区单元,以及储存安全信息和磁盘空间使用情况等等多种不同需求提供支持。区段编号文件名作用0$MFT描述卷上的所有文件,包括文件名、时间戳、流名称和数据流所在的簇的编号列表、索引、安全标识符,以及文件属性(如“只读”、“压缩”、“加密”等)。1$MFTMirr$MFT 的最开始的几个关键项的副本,通常是 4 项(4KiB)。2$LogFile文件系统更改的事务日志,用于保护元数据的稳定性。3$Volume卷的相关信息,如卷

45、对象标识符、卷标、文件系统版本,以及若干卷标志(包括:“正在加载”、“需要扫描”、“需要调整 $LogFile 大小”、“在 NT4 上加载”、“正在更新卷串行号”、“需要升级结构”等)。卷串行号储存在 $Boot 文件中。4$AttrDef所有 NTFS 项目使用到的属性的定义表,包含属性名称、属性编号和属性描述等。5.根目录。6$Bitmap一个位图,每一位按顺序指示卷上的对应簇正在被使用(1)或空闲(0)。7$Boot卷引导记录,该文件始终位于卷的第一个簇,其中包含引导代码(用于定位并启动 NTLDR/BOOTMGR)、BIOS 参数块(其中包含卷串行号),以及 $MFT 和 $MFTM

46、irr 所在的簇编号。8$BadClus包含所有标记为“有坏扇区”的簇的一个文件。该文件通常被 chksdk(磁盘扫描)工具使用,用于管理所有簇状态,记录坏扇区,以及标记空白簇。9$Secure访问控制列表(ACL)数据库,NTFS 将所有 ACL 信息集中存储于该数据库(而非每个文件独立存储各自的 ACL)以节省磁盘占用并提高执行效率。此部分包含两个索引,分别是:“$SII”可能是来源请求安全 ID 索引,以及“$SDH”安全描述符哈希。注意大部分 ACL 列表通常都很长,因此这个部分只是索引,记录的是实际存储 ACL 数据的 $SDS 流的位置。110$UpCaseUnicode 大写字母

47、表,用于确保在 Win32 和 DOS 命名空间下大小写不敏感。11$Extend文件系统目录,用于包含若干操作系统或其它软件所需要的扩展数据,如 $Quota、$ObjId、$Reparse、$UsnJrnl 等。12 . 23保留。通常是 24$Extend$Quota磁盘限额设置。通常是 25$Extend$ObjId分布链接跟踪数据。通常是 26$Extend$Reparse卷上所有重解析点(如符号链接)的反引用,用于跟踪文件系统对象被引用的情况。27 .file.ext常规文件系统项目的起始位置。这些元文件会被 NTFS 文件系统程序进行特殊处理,无法直接查看,需要使用专门为此设计的工具完成实现查看其中的内容(例如 WinHex)。从 MFT 到属性、属性表和流对于每个 MFT 记录锁描述的文件或目录,都有一个线性存放的流描述符(也即属性)存储区,被打包后存放在一个变长记录(也即属性表)中,然后使用额外的填充符填充以满足 MFT 记录的 1Kib 对齐要求。这部分数据完整地描述了和文件相关联的所有数据流。注意此处的“流”和文件数据流不是一个概念,而是

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com