Chinaunix首页 | 论坛 | 博客
  • 博客访问: 318807
  • 博文数量: 30
  • 博客积分: 3020
  • 博客等级: 中校
  • 技术积分: 1391
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-03 13:21
文章存档

2011年(2)

2010年(4)

2009年(23)

2008年(1)

我的朋友

分类: 嵌入式

2009-08-29 12:43:54

微软在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)。

阅读(863) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~