Linux世界驰骋四——文件系统和设备管理

豆豆网   技术应用频道   2007年03月12日  【字号: 收藏本文

本文详细介绍Linux世界驰骋四——文件系统和设备管理

  3.索引节点(Inode)

  索引节点又被称为I节点,每个文件都有惟一一个索引节点。ext2文件系统的索引节点起着文件控制块的作用,利用这种数据结构可对文件进行控制和管理。每个数据块组中的索引节点都保存在索引节点表中。数据块组中还有一个索引节点位示图,它用来记录系统中索引节点的分配情况——哪些节点已经分配出去了,哪些节点尚未分配。

  索引节点有盘索引节点(如ext2_inode)和内存索引节点(如inode) 有两种形式。盘索引节点存放在磁盘的索引节点表中,内存索引节点存放在系统专门开设的索引节点区中。

  所有文件在创建时就分配一个盘索引节点。当一个文件被打开,或者一个目录成为当前工作目录时,系统内核就把相应的盘索引节点复制到内存索引节点中;当文件被关闭时,就释放其内存索引节点。

  盘索引节点和内存索引节点的基本内容是相同的,但二者存在很大差别。盘索引节点包括文件模式、描述文件属性和类型主要内容。

  ◆文件属主信息,包括文件主标识号和同组用户标识号。

  ◆文件大小,即文件的字节大小。

  ◆时间戳,包括索引节点建立的时间、最近访问时间、最后修改时间等。

  ◆文件链接计数。

  ◆数据块索引表。利用多重索引表的结构存放指向文件数据块的指针。

  内存索引节点除了具有盘索引节点的主要信息外,还增添了反映该文件动态状态的项目,例如,共享访问计数(i_count),表示在某一时刻该文件被打开以后进行访问的次数。

  当它为0时,该索引节点被放到自由链中,表示它是空闲的;队列结构,通过几个list_head结构可以动态地链入到内存中的若干队列中,可加快检索索引节点的速度。

  4.多重索引结构

  普通文件和目录文件都要占用盘块存放其数据。为了用户使用方便,系统一般不应限制文件的大小。如果文件很大,那么不仅存放文件信息需要大量盘块,而且相应的索引表也必然很大。在这种情况下,把索引表整个放在内存是不合适的,而且不同文件的大小不同,文件在使用过程中很可能需要扩充空间。

作者:孟庆昌    责编:豆豆技术应用

正在加载评论...