1 文件系统结构概述
磁盘在使用前,需要分区和格式化,格式化的主要作用就是在磁盘分区中创建文件系统,以此来确定文件的存储方式和索引方法,确定磁盘空间的分配和回收算法。
UNIX文件系统的存储方式有<目录-i节点-数据块>三级构成,其中目录存储了文件的层次结构,数据块存储了文件的具体信息,i节点是连接文件层次结构与数据内容的桥梁。
UNIX文件系统将磁盘空间划分为一系列大小的相同的块,划分为引导块,超级快,i节点区和数据区四部分。
文件系统通过节点i对文件进行管理和控制。其中,每个文件对应一个i节点,每个i节点具有唯一的节点号,记录了文件的属性和关联内容在磁盘上的存储位置。但文件名并不记录在i节点里,而是存储在目录文件中。
2 磁盘文件如何存储?
文件系统通过目录记载文件名及其对应的i节点编号,通过i节点记录文件的信息和内容。事实上,i节点直接记录的只是文件的属性,文件的具体内容存储在数据的数据块中,i节点中仅保留了一个<磁盘地址表>来记录文件内容存储的位置。
<磁盘文件表>由13个块号组成,每个块号占用4个字节,代表了数据区中的一个数据块编号。UNIX文件系统采用三级索引结构存储文件,它把< 磁盘地址表>分为直接索引地址, 一级索引地址,二级索引地址和三级索引地址等四部分。其中前10项为直接索引地址,直接指向文件数据所在磁盘块的块号,第11/12/13项分别为一级/二级/三级所以地址。一级间接索引的含义在于其存储的并非文件数据所在磁盘块的块号,而是先指向一个<磁盘块号表>然后再指向具体磁盘的块号。同理,二级/三级间接索引则是先间接指向了两次<磁盘块号表>才指向具体的磁盘块号。
如果文件系统的数据块大小为1kb, 每个<磁盘块号表>能够记录256个数据项,那么,直接索引能管辖10个