NTFS文件系统:结构、驱动与操作解析
1. NTFS文件系统驱动概述
在Windows I/O系统框架中,NTFS和其他文件系统属于可加载的设备驱动程序,它们在内核模式下运行。应用程序通过使用Windows或其他I/O API(如POSIX)间接调用这些驱动。
Windows环境子系统调用Windows系统服务,系统服务会定位并调用相应的已加载驱动。分层驱动程序通过调用Windows执行体的I/O管理器来相互传递I/O请求。借助I/O管理器作为中介,每个驱动程序能保持独立性,可在不影响其他驱动的情况下加载或卸载。
此外,NTFS驱动还与另外三个与文件系统密切相关的Windows执行体组件进行交互,具体如下:
-日志文件服务(LFS):负责维护磁盘写入日志,该日志用于在系统故障时恢复NTFS格式的卷。
-缓存管理器:为NTFS和其他文件系统驱动(包括网络文件系统驱动)提供系统范围的缓存服务。它通过将文件映射到系统地址空间并访问虚拟内存,为Windows内存管理器提供专门的文件系统接口。当程序访问未加载到缓存中的文件部分(缓存未命中)时,内存管理器会调用NTFS访问磁盘驱动以获取文件内容。缓存管理器还利用其延迟写入线程,将缓存内容异步刷新到磁盘,优化磁盘I/O操作。
-对象管理器:NTFS通过将文件实现为对象参与Windows对象模型,使文件能够被对象管理器共享和保护。
下面是Windows I/O系统组件的交互流程:
gra