从Windows系统操作系统的发展来看,微软一方面注重于功能和界面的改观,而另一方面则紧盯着安全与稳定性不放。Windows XP便是这种策略的产物,而从NTFS的诞生及新特性的不断加入来看,无疑也符合这一策略。在安全性与稳定性方面,除上述的系统文件多重备份及文件存储采取的索引方式之外,NTFS还有另外的核心设计。这些设计集中于MFT之中——第2到第16条记录
1、MFT的第2条记录的名字为$LogFile,也就是说这是一个相当于日志文件的记录,这条记录包含了一系列处理步骤,用于实现NTFS的可恢复特性。记录的尺寸与磁盘分区尺寸有关,可能达到4MB之多,当系统失败后(如意外断电), NTFS在下次启动时都会根据日志对自身内容及结构进行检查,以保持与上次关闭后的一致性。相信有过体验的朋友对这一功能的意义定是深有感触。
2、MFT的第4条记录的名字为$AttrDef ,这是一个属性定义(Attribute definitions)记录,这条记录包含了所有文件和目录的属性名称、属性编号及对属性描述的表格。由于NTFS将每个文件都看作由一套属性构成,所有与文件相关的信息都会被视作某种属性类型,也就是说属性类型也会决定文件的某些特性,比如说安全描述符(Security Descriptor)属性就决定了多用户环境下文件的归属。因此NTFS在任意文件操作时都会根据属性定义对该操作实施判别。
3、MFT的第9条记录的名字为$Secure,这是一个保密文件(Security file)记录,该记录包含了分区上所有文件的安全性描述。它配合文件属性来实现NT系列操作系统中权限分配等安全性功能。
4、MFT的第10条记录的名字为$Upcase,这是一个字符表(Upcase table)记录,这条记录的作用是将小写字符转化为与Unicode相匹配的大写字符,NTFS对Unicode的支持就是通过它实现的。
5、MFT的第11条记录的名字为$Extend ,这是一个NTFS功能扩展文件(NTFS extension file)记录,这条记录被多个NTFS扩展功能所共用,比如磁盘配额、重装入点、目标标志符等。NTFS 5.0相对于以前版本的多处更新就是通过修改这条记录来实现的。
6、MFT的第12条记录到第16条记录为系统保留,以便于在将来添加更多的文件系统特性,也就是说NTFS还有很大的提升空间。
NTFS正是利用主文件表中的这些记录信息来实现诸多特性的,这些特性都是基于文件系统的,并与操作系统紧密结合,因此具备唯一相关性。举例来说,我们在电脑A的NTFS分区上对某个目录限制了访问权限,那么即使把硬盘拆下来装到电脑B上,那么对于电脑B的操作者来说这种限制依然存在。同理,我们在电脑A上重装系统之后,原先对该目录设置的访问权限也依然存在。因为这些信息都被记录在NTFS文件系统的主文件表中,要访问受限目录,就必须通过文件系统,而文件系统又会通过主文件表得到受访目录的相关信息,所以只要文件系统不变,就永远不会出现被“绕过”的现象,这就是NTFS文件系统的环境一致性、由此我们也可以看出,NTFS 所具备的本地安全性远远胜过FAT。同时,在NTFS的发展过程中,有一个事实让不少人迷惑不解:微软总可以在NTFS中加入新特性并保持兼容性,不像FAT那样从一开始到现在都是一成不变的。那么NTFS是如何做到不断更新特性的呢?如上面所说,很多与文件系统特性相关的内容都放在MFT的第2 条到第16条记录中,所以只要修改其中的某条记录就可以完成特性的更新了。