Post by "SmiletotheLife",2006-12-27, 10:42
-----------------------------------------------------
微软在Dos/Windows系列操作系统中共使用了6种不同的文件系统(包括即将在windows的下一个版本中使用的Winfs),它们分别是:FAt12、FAT16、FAT32、NTFS、NTFS5.0和WINFS。FAt12、FAT16、FAT32均是Fat文件系统,是File Allocation Table的简称。
最古老的文件系统FAT12
这是伴随着Dos诞生的“老”文件系统了。它采用12位文件分配表,并因此而得名。而以后的FAT系统都按照这样的方式在命名。在DOS3.0以前使用。但是在现在,我们都还能找得到这个文件系统:用于软盘驱动器。当然,其他地方的确基本上不使用这个文件系统了。Fat12可以管理的磁盘容量是8M。这在当时,没有硬盘的情况下,这个磁盘管理能力是非常大的。
Fat12文件系统的限制:
1)文件名:只能是8.3格式的文件名。
2)磁盘容量:最多8M。(4096clusters×4sectors/clusters×512bytes、sectors)
3)文件碎片严重。(只在磁盘上不存储在不连续的簇内。)
使用时间最长文件系统的Fat16
在Dos2.0的使用过程中,对更大的磁盘的管理能力的需求已经出现了,所以在Dos3.0中,微软推出了新的文件系统Fat16。除了采用了16位字长的分区表之外,Fat16和Fat12在其他地方都非常的相似。实际上,随着字长增加4位,可以使用的簇的总数增加到了65546。在总的簇数在4096之下的时候,应用的还是Fat12的分区表,当实际需要超过4096簇的时候,应用的是Fat16的分区表。刚推出的Fat16文件系统管理磁盘的能力实际上是32M。这在当时是看来是足够大的。1987年,硬盘的发展推动了文件系统的发展,Dos4.0之后的Fat16可以管理128M的磁盘。然后这个数字不断的发展,一直到2G。在整整的10年中,2G的磁盘管理能力都是大大的多于了实际的需要。需要指出的是,在windows95系统中,采用了一种比较独特的技术,叫做VFat来解决长文件名等问题。FAT16分区格式存在严重的缺点:大容量磁盘利用效率低。在微软的DOS和Windows系列中,磁盘文件的分配以簇为单位,一个簇只分配给一个文件使用,不管这个文件占用整个簇容量的多少。这样,即使一个很小的文件也要占用一个簇,剩余的簇空间便全部闲置,造成磁盘空间的浪费。由于分区表容量的限制,FAT16分区创建的越大,磁盘上每个簇的容量也越大,从而造成的浪费也越大。所以,为了解决这个问题,微软推出了一种全新的磁盘分区格式FAT32,并在Windows 95 OSR2及以后的Windows 版本中提供支持。
Volume size | Cluster size | 0 to 32 MB | 512 bytes | 33 to 64 MB | 1 KB | 65 to128 MB | 2 KB | 129 to 256 MB | 4 KB | 257 to 511 MB | 8 KB | 512 to 1023 MB | 16 KB | 1024 to 2047 MB | 32 KB | 2048 to 4095 MB | 64 KB |
最新的Fat32文件系统
Fat32文件系统将是Fat系列文件系统的最后一个产品。和它的前辈一样,这种格式采用32位的文件分配表,磁盘的管理能力大大增强,突破了FAT16 2GB的分区容量的限制。由于现在的硬盘生产成本下降,其容量越来越大,运用FAT32的分区格式后,我们可以将一个大硬盘定义成一个分区,这大大方便了对磁盘的管理。
FAT32推出时,主流硬盘空间并不大,所以微软设计在一个不超过8GB的分区中,FAT32分区格式的每个簇都固定为4KB,与FAT16相比,大大减少了磁盘空间的浪费,这就提高了磁盘的利用率。在其他更大的分区中的簇大小的可以看下表:
Volume size | Cluster size | less than 8GB | 4 KB | less than 16GB | 8 KB | less than 32GB | 16 KB | more than 32gB | 32 KB |
目前,支持这种格式的操作系统有Windows 95、Windows 98、OSR2、Windows 98 SE、Windows Me、Windows 2000和Windows XP,Linux Redhat部分版本也对FAT32提供有限支持,然而,如果Linux安装在FAT32分区下,必须使用软盘进行引导。但是,这种分区格式也有它明显的缺点,首先是由于文件分配表的扩大,运行速度比FAT16格式要慢,特别是在DOS 7.0下,性能差别更明显。
FAT32的限制:
1)最大的限制在于兼容性方面,Fat32不能保持向下兼容。
2)当分区小于512M时,Fat32不会发生作用。
4)单个文件不能大于4G。(精确数据是4G-2bytes)。
NTFS
NTFS是随着Windows NT操作系统而产生的,并随着Windows NT4跨入主力分区格式的行列,它的优点是安全性和稳定性极其出色,在使用中不易产生文件碎片,NTFS分区对用户权限作出了非常严格的限制,同时它还提供了容错结构日志,从而保护了系统的安全。NTFS分区格式的兼容性不好,特别是对使用很广泛的Windows 98 SE/Windows ME系统,它们还需借助第三方软件才能对NTFS分区进行操作。
NTFS的主要特征和优越性:
在NTFS文件系统中,对于不同配置的硬件,实际的文件大小从4GB到64GB。由于NTFS文件系统的开销较大,使用的最小分区应为50MB。
NTFS文件系统与FAT文件系统相比最大的特点是安全性,NTFS提供了服务器或工作站所需的安全保障。在NTFS分区上,支持随机访问控制和拥有权,对共享文件夹无论采用FAT还是NTFS文件系统都可以指定权限,以免受到本地访问或远程访问的影响;对于在计算机上存储文件夹或单个文件,或者是通过连接到共享文件夹访问的用户,都可以指定权限,使每个用户只能按照系统赋予的权限进行操作,充分保护了系统和数据的安全。NTFS使用事务日志自动记录所有文件夹和文件更新,当出现系统损坏和电源故障等问题而引起操作失败后,系统能利用日志文件重做或恢复未成功的操作。主要的作用体现在两个方面:
一、通过NTFS许可保护网络资源
在WindowsNT下,网络资源的本地安全性是通过NTFS许可权限来实现的。在一个格式化为NTFS的分区上,每个文件或者文件夹都可以单独的分配一个许可,这个许可使得这些资源具备更高级别的安全性,用户无论是在本机还是通过远程网络访问设有NTFS许可的资源,都必须具备访问这些资源的权限。
二、使用NTFS对单个文件和文件夹进行压缩
NTFS支持对单个文件或者目录的压缩。这种压缩不同于FAT结构中,对驱动器卷的压缩,其可控性和速度都要比FAT的磁盘压缩要好的多。
除了以上两个主要的特点之外,NTFS文件系统还具有其他的优点,如:对于超过4GB以上的硬盘,使用NTFS分区,可以减少磁盘碎片的数量,大大提高硬盘的利用率;NTFS可以支持的文件大小可以达到64GB,远远大于FAT32下的4GB;支持长文件名等等。
NTFS5.0
Windows2000、Windows XP基于NT技术,提供完善的NTFS分区格式的支持。它们使用NTFS5.0的文件系统。
NTFS 5.0的特点主要体现在以下几个方面:
1. NTFS5.0可以支持的分区(如果采用动态磁盘则称为卷)大小可以达到2TB。而Win2000中的FAT32支持分区的大小最大为32GB。
2.NTFS5.0是一个可恢复的文件系统。在NTFS5.0分区上用户很少需要运行磁盘修复程序。NTFS通过使用标准的事物处理日志和恢复技术来保证分区的一致性。发生系统失败事件时,NTFS使用日志文件和检查点信息自动恢复文件系统的一致性。
3.NTFS5.0支持对分区、文件夹和文件的压缩。任何基于Windows的应用程序对NTFS分区上的压缩文件进行读写时不需要事先由其他程序进行解压缩,当对文件进行读取时,文件将自动进行解压缩;文件关闭或保存时会自动对文件进行压缩。
4. NTFS5.0采用了更小的簇,可以更有效率地管理磁盘空间。在Win 2000的FAT32文件系统的情况下,分区大小在2GB~8GB时簇的大小为4KB;分区大小在8GB~16GB时簇的大小为8KB;分区大小在16GB~32GB时,簇的大小则达到了16KB。而Win 2000的NTFS文件系统,当分区的大小在2GB以下时,簇的大小都比相应的FAT32簇小;当分区的大小在2GB以上时(2GB~2TB),簇的大小都为4KB。相比之下,NTFS可以比FAT32更有效地管理磁盘空间,最大限度地避免了磁盘空间的浪费。
5.在NTFS5.0分区上,可以为共享资源、文件夹以及文件设置访问许可权限。许可的设置包括两方面的内容:一是允许哪些组或用户对文件夹、文件和共享资源进行访问;二是获得访问许可的组或用户可以进行什么级别的访问。访问许可权限的设置不但适用于本地计算机的用户,同样也应用于通过网络的共享文件夹对文件进行访问的网络用户。另外,在采用NTFS格式的Win2000中,应用审核策略可以对文件夹、文件以及活动目录对象进行审核,审核结果记录在安全日志中,通过安全日志就可以查看哪些组或用户对文件夹、文件或活动目录对象进行了什么级别的操作,从而发现系统可能面临的非法访问,通过采取相应的措施,将这种安全隐患减到最低。甚至可能为每一个文件加密。可能有人会说在NT4.0中对用户设置许可就能实现这个功能。Ntfs5.0的加密文件系统其实不是一种文件系统,而是NTFS中的一个新的特性。它用一个随机产生的密钥把一个文件加密,只有文件的所有者和管理员掌握解密的密钥,其它人即使能够登录到系统中,也没有办法读取它。但是在NT4.0中,文件本身是没有加密的,如果一个用户想要读取一个他没有访问权限的文件的话,他只要在硬盘上安装另一套NT就可以了。但是在NTFS5。0下,由于文件是加密存储的,用户即使安装另外一套Windows2000,他也没有办法得到解密的密钥,因此加密文件系统的安全性更高。
6.在Win2000的NTFS文件系统下可以进行磁盘配额管理。磁盘配额就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。设置磁盘配额后,可以对每一个用户的磁盘使用情况进行跟踪和控制,通过监测可以标识出超过配额报警阈值和配额限制的用户,从而采取相应的措施。磁盘配额管理功能的提供,使得管理员可以方便合理地为用户分配存储资源,避免由于磁盘空间使用的失控可能造成的系统崩溃,提高了系统的安全性。
7. NTFS5.0使用一个“变更”日志来跟踪记录文件所发生的变更。
8.NTFS5.0支持动态的分区,也就是可以在线地改变分区的大小,不用退出系统,也不用格式化和重新启动。此外,如果有一个分区包含重要的文件信息,您可以为这个分区动态地创建镜像分区,在这个过程中,用户可以照常地在这个分区中进行文件读写,不会感到有任何的异常。当今后不再需要这个镜像的时候,又可以把这个镜像在线地取消掉。
WINFS
1992年其Cairo计划的提出,最主要的一个目的就是为了解决搜索和管理数据的目的,以让新一代的Windows完全摆脱传统Windows的文件管理体系造成的诸多不便。Microsoft在数年的探索过程中,几经周折和失败,最近又重新捡起了这根难啃的骨头,准备在Windows XP的下一个版本(代号为Longhorn的操作系统)中初步完成Cairo未竟的事业。
Cairo的核心就是采用一种全新的文件系统,这种文件系统在当时被称之为OFS(ObjectFileSystem,对象文件系统),我们也不清楚winfs文件系统是不是就是OFS的成果。在这里简单介绍一下OFS。
操作系统将通过OFS来按照统一方式保存文档、表格、多媒体和其他类型的文件,以让用户不仅能通过文件名,还能通过文件内容来搜索出相关文件,用户可以更快速、更方便并且更准确地搜索和处理各类信息,而不管信息的格式是什么或保存在什么地方。另外,了解该软件计划的一些业界分析家和软件研发人员认为,用更先进的OFS技术将Windows传统的文件系统取而代之,还会使系统避免崩溃或死机等现象,从而变得更加稳定和可靠。
实际上,OFS是一种内建数据库技术,主要引自Microsoft的SQL Server数据库软件技术中的一些思想精华。在当前的Windows体系中,文档、Web页面、E-mail文件、电子表格或其他类型的信息都是彼此独立地保存着,而且打开它们的软件在大多数情况下也是各不相同的。而采用OFS技术的下一代Windows操作系统,将会在其内建的惟一一个数据库中把各种类型的数据按照统一格式进行保存,这样自然会使搜索更方便、系统更稳定、可访问性更强(即能通过企业局域网甚至Internet进行搜索)。
OFS在当时是困难重重的。目前努力解决此类问题的当然不止Microsoft一家,实际上早已有多家软件厂商致力于相关研究。在约2年以前,Oracle公司就已经推出了称之为IFS(Internet File Systme,互联网文件系统)的系统,它可以在Oracle自己的数据库中组织数据存储和数据恢复,事实已证明了它更加方便可靠。这一到目前为止还没有在商业操作系统中实现的梦想,却早已被Oracle的数据库软件所实现。
2000年上半年,Oracle就已经向世人展示了其IFS技术,不过它也是经过多次拖延后才正式问世的。支持Java和XML语言的IFS,能使Oracle的旗舰型数据库软件产品可以存储和管理包括音频、视频、Web页面、E-mail、Microsoft Word和Excel文档等在内的150多种类型的数据,从而极大地拓展其应用领域。IFS成为当时Oracle最新的主要针对Internet应用的8i数据库软件的关键组成部分,并被Oracle认为是一种能在许多场合下取代Windows操作系统的产品。
假如Microsoft的该计划被拖延很久或者未能如设想的那样行之有效,那Microsoft帝国也许会不攻自破,甚至整个业界都受极大影响。
Linux的文件系统
EXT2
Ext2是GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。其单一文件大小与文件系统本身的容量上限与文件系统本身的簇大小有关,在一般常见的 x86 电脑系统中,簇最大为 4KB, 则单一文件大小上限为 2048GB, 而文件系统的容量上限为 16384GB。但由于目前核心 2.4 所能使用的单一分割区最大只有 2048GB,因此实际上能使用的文件系统容量最多也只有 2048GB。
EXT3
Ext3: 顾名思义,它就是 ext2 的下一代,也就是在保有目前 ext2 的格式之下再加上日志功能。目前它离实用阶段还有一段距离,也许在下一版的核心就可以上路了。 ext3是一种日志式文件系统。日志式文件系统的优越性在于:由于文件系统都有快取层参与运作,如不使用时必须将文件系统卸下,以便将快取层的资料写回磁盘中。因此每当系统要关机时,必须将其所有的文件系统全部卸下后才能进行关机。
如果在文件系统尚未卸下前就关机 (如停电) 时,下次重开机后会造成文件系统的资料不一致,故这时必须做文件系统的重整工作,将不一致与错误的地方修复。然而,此一重整的工作是相当耗时的,特别是容量大的文件系统,而且也不能百分之百保证所有的资料都不会流失。故这在大型的伺服器上可能会造成问题。
为了克服此问题,业界经长久的开发,而完成了所谓‘日志式文件系统 (Journal File System) ’。此类文件系统最大的特色是,它会将整个磁盘的写入动作完整记录在磁盘的某个区域上,以便有需要时可以回朔追踪。由于资料的写入动作包含许多的细节,像是改变文件标头资料、搜寻磁盘可写入空间、一个个写入资料区段等等,每一个细节进行到一半若被中断,就会造成文件系统的不一致,因而需要重整。然而,在日志式文件系统中,由于详细纪录了每个细节,故当在某个过程中被中断时,系统可以根据这些记录直接回朔并重整被中断的部分,而不必花时间去检查其他的部分,故重整的工作速度相当快,几乎不需要花时间。
另外Linux中还有一种专门用于交换分区的swap文件系统,Linux使用整个分区来作为交换空间,而不象Windows使用交换文件。一般这个SWAP格式的交换分区是主内存的2倍。
其他操作系统的文件系统
由于操作系统和文件系统的开发和应用数量都非常大,所以,在电脑中还有这样那样的文件系统存在着。恐怕要找齐全部的文件系统是非常困难的。但是大家还是可以来了解一下有些什么样的文件系统。
NFS: NFS 是此类文件系统的代表,它是由 Sun Microsystems 公司设计发表的,现已成为各 UNIX 系统的标准配置之一。
Code: 此文件系统与 NFS 类似,但拥有较 NFS 还先进的特色,例如断线操作、安全性认证等。
SMB: Linux利用此文件系统可以将微软操作系统的网上邻居共享出来的磁盘或文件系统挂上来使用。
NCP: 此文件系统可以将 Novell NetWare 的 IPX 共享出来的磁盘挂上来使用。
hpfs: OS/2 平台的文件系统。
hfs: 苹果电脑的文件系统。
adfs: Acorn Disc 文件系统,用于 ARM Risc PC 的 RiscOS 操作系统上。
affs: 用于 Amiga 的 AmigaOS 操作系统上。
bfs: 用于 SCO UnixWare 操作系统上,在开机时载入核心文件用。
efs: 用于旧的 SGI IRIX 操作系统上。
vxfs: 此为 Veritas VxFS 文件系统,用于 SCO UnixWare,也见于 Solaris、HP-UX 及其他操作系统上。
qnx4fs: 用于 QNX 4 操作系统。
sysv: 用于 SCO, Xenix 及其他商业版 UNIX 操作系统。
其他不多见的文件系统:
cramfs: 这是 Compressed ROM File System,为只读文件系统,其容量上限只有 256MB,用于嵌入式装置。
romfs: 这是非常小的只读文件系统,用于只读的储存设备。
jffs: 这是日志式闪存 (Flash) 文件系统,用于嵚入式装置。
tmpfs: 这个文件系统可以用来将文件暂时保存在主内存(RAM) 中,而且其容量可以随著保存文件的量而增减。
amfs: 这个文件系统也用于将文件暂时保存在主内存中,与 tmpfs 类似。
光盘文件系统
光盘作为目前重要的存储介质,应用之广泛无需我来赘述了,但是,你知道吗?光盘也有类似文件系统的东西,来管理文件在光盘上的存储。光盘存储使用的是一定的标准。
1.ISO-9660光盘文件系统标准
该光盘文件系统标准是于1985年由ISO国际标准化组织发布的,是一种通用的光盘文件系统,支持DOS、Win 9X/NT、OS/2、LINUX、MAC OS等绝大多数计算机操作系统以及所有的刻录软件。这种文件系统有Level 1和Level 2两个标准,前者可兼容DOS操作系统,即支持传统的8.3文件名格式,且所有字符只能包括26个大小写英文字母、10个阿拉伯数字及下划线,后者则允许使用长文件名,但不支持DOS操作系统。该标准的应用范围最为广泛。
2.UDF光盘文件系统标准
该标准是由ISO组织下属的OSTA光学存储技术协会(OpticalStorageTechnologyAssociation)于1996年制定的通用光盘文件系统,采用包刻录方式(PacketWriting),允许在CD-R/RW光盘上任意追加数据,为刻录机提供了类似于硬盘的随机读写特性,该标准进行数据刻录时不会出现因为缓存欠载或数据传输速度低于刻录速度而中断刻录过程,使盘片报废,但UDF格式的光盘只能在具有MultiRead功能的CD-ROM上读取。该标准支持Win 9X/NT、MAC OS等操作系统,应用已越来越广泛。
3.Joliet光盘文件系统标准
这是由Microsoft公司制定的光盘文件系统,该文件系统对ISO-9660标准进行了扩展,可以支持64个字符的长文件名和中文文件名,同时也记录相应的DOS文件名,以便能够被DOS或低版本的Windows操作系统读取,该标准支持DOS、Win9X/NT等操作系统,应用范围很广泛。
4.ROMEO光盘文件系统标准
由Adaptec公司制定的光盘文件系统标准,文件名最多达128个字符,支持中文文件名。但该标准只支持Win 9X/NT,不支持DOS、OS/2、LINUX、MAC OS等操作系统,其应用范围较小。
各文件系统所支持的操作系统列表
操作系统 | FAT12 | Fat16 | Fat32 | NTFS | NTFS5.0 | WinFS | DOS3.0以下 | 是 | | | | | 支
持
末
来
的
操
作
系
统
| Dos3.0 | | 是 | | | | DOS4.0 | | 是 | | | | Windows 3.X | | 是 | | | | Windows 95 | | 是 | | | | Windows 95 OSR2 | | 是 | 是 | | | Windows 98 | | 是 | 是 | | | Windows 98 SE | | | 是 | | | Windows Me | | 是 | 是 | | | Windows NT | | 是 | | 是 | | Windows 2000 | | 是 | 是 | 是 | 是 | Windows XP | | 是 | 是 | 是 | 是 | Windows 2003 | | 是 | 是 | 是 | 是 | Unix | | 是 | | | | Linux | | 是 | 是(必须使用软盘进行引导) | | | 文件大小限制 | 最大支持8M | 最大支持2G | 不能大于4G | 单文件最大64GB | 单文件最大2TB |
|