Windows的文件系统
一.Windows磁盘管理
1. Windows的文件系统是以设备驱动的形式来实现的
2. 操作系统将信息以文件的形式存储在外存(如磁盘上),文件系统驱动和磁盘驱动共同构建了Windows的文件系统
3. Windows将磁盘分为固定大小的“扇区”,扇区的大小取决于不同的存储设备
4. 相邻的扇区集合组成“分区”,Windows通过分区表来存储每个分区的开始扇区,大小和其他相关特性
5. Windows通过“卷”来抽象一个或几个分区,它是文件系统操作磁盘的逻辑单位
6. 文件系统是构建在磁盘管理之上
7. 系统通过分区管理器和卷管理器与磁盘设备进行交互,为文件系统提供一个以卷为单位的逻辑视图
8. 文件系统在卷管理器的基础之上构建文件系统的格式,并为I/O管理器提供操作文件的接口
二.Windows文件系统格式
1. Windows支持多种文件系统格式:CDFS,UDF,FAT12,FAT16,FAT32和NTFS
2. CDFS是一个支持CD-ROM文件的只读文件系统,最大支持的文件大小为4GB,最多支持65535个目录
3. UDF(通用磁盘格式文件系统)主要提供了对DVD文件的支持
4. FAT(文件分配表文件系统)是一个简单的文件系统,它最初是为DOS操作系统设计的。它适用于小容量的磁盘,文件目录也比较简单
5. FAT文件系统是根据其组织形式(文件分配表)而命名的,文件分配表位于卷的开头。为了防止文件系统遭到破坏,FAT文件系统保存了两个文件分配表。文件分配表和根目录必须放在磁盘的一个固定位置,这样系统在启动时才可以找到需要的文件
6. NTFS是Windows操作系统主流文件系统,NTFS的每个卷可以支持2^32-1个文件,一个文件最大可到达16TB
7. NTFS具有许多优秀的性能,如文件和目录的安全机制,磁盘配额,文件压缩以及加密,而且当系统不正常中止后,文件系统可用自动恢复目录和文件的结构信息
三.Windows文件系统驱动
1. Windows通过文件系统驱动来管理不同格式的文件,它运行在核心态
2. 作为设备管理的一部分,文件驱动程序需要在I/O管理器中注册
3. 为了提高文件操作的效率,文件系统驱动程序和内存管理器交互的非常密切。为了提高吞吐量,它还和高速缓存管理器直接交互
4. 文件系统驱动程序在I/O管理器中注册后,I/O管理器可以通过他来识别卷
5. 每一个Windows文件的第一个扇区都被预留为卷的根扇区,通过根扇区,文件系统驱动程序可以找到相对应的文件系统所需要的数据信息
6. 当文件系统驱动识别一个卷后,它会创建一个设备对象来表示文件系统。相应的存储设备管理器也创建一个设备对象来表示具体的存储设备。通过这两个设备对象,I/O管理器将传递到卷设备管理器的I/O请求转发到存储管理器的设备对象
7. 应用可以通过两种方式来访问文件:一种是直接通过文件访问函数来进行文件操作如:ReadFile和WriteFile等,它通过磁盘驱动的I/O处理来操作磁盘。另外一种是通过读写映射文件地址空间来完成文件操作,它通过映射文件来操作磁盘