|
楼主 |
发表于 2009-2-11 10:17:20
|
显示全部楼层
UFS文件系统
概述
UFS文件系统来源于伯克利的快速文件系统(Fast File System-FFS)。在UFS中,重要数据结构的拷贝贯穿于整个文件系统,并且数据做到了局部化,因此在读取文件的时候,磁头的运动量大大降低。UFS使用“柱面组”对数据进行分段组织,每个柱面组的大小与磁盘的几何特性关联。
提示:柱面组类似于ExtX的块组。
 UFS在文件系统的起始处有一个称为“超级块”的数据结构,包含基本的布局信息。
 每个文件的内容被保存在“块”中,“块”是一组连续的扇区。
 块通常又被分成若干个“片段”,用以保存文件尾部的少量数据,从而不必为其分配一个整块,这样就减少了空间的浪费。
 每个文件和目录的元数据(存储文件或目录的描述信息)被存放在称为“i-节点(i-node)”的数据结构中。文件的名字保存在目录项中,目录项则位于为目录分配的块内。目录项结构是基本的数据结构,它包含文件的文件名和一个指向该文件i-节点的指针。
UFS1文件系统是OpenBSD和Solaris的默认文件系统。UFS1也曾是NetBSD和FreeBSD的默认文件系统,但NetBSD2.0和FreeBSD5.0以后版本开始使用UFS2做默认的文件系统。UFS2增加了对大文件和大容量磁盘的支持和一些先进的特性。目前似乎还只有FreeBSD和NetBSD支持UFS2。Apple OS X和Linux也支持UFS1,但并不做为它们的默认文件系统。
。。。
提示:UFS之所以对数据使用两种类型的存储单元是了为在为大文件分配连续空间时,可以尽可能避免在为其分配的最后一个块中浪费空间。如果一个文件可以占用一个整块,则为其分配一个完整的块。而文件尾部不够一个块的剩余数据,则只为其分配足够的片段。当文件增大可以占用整个块时,如果需要则会将其移动到另一个块中。如图6.2所示,假设一个文件系统的每个块大小为8,192字节,每个片段的大小为1,024字节。一个大小为11,260字节的文件需要1个块和3个片段进行存储。为其分配的块为40号块,包含40~47号片段,可以存储8,192个字节。剩余的3,086个字节则存放在50~52号这3个片段中。这3个片段位于48号块中,该块中的其它片段可以分配给另外的文件使用。
。。。。 |
|