1.inode
上老沙的课记得讲过inode,但有些记不清了,这里重新梳理一下。
一个inode对应一个文件,一个文件包含多个数据块,数据块不需要连续存储。
给定一个分区,该分区的inode数量是确定的。
为什么呢?先看下图再解释
文件系统是针对各个分区来管理磁盘空间的,而分区容量是固定的,而x、y是变量,分区容量=x+y,所以x和y必须先确定一个,Linux的实现是先确定x,即给定一个分区,先算出inode数,所以对于一个分区inode的数量是确定的。
df -i 看inode利用率
df 看disk利用率
------------------------------------------------------------------------------------------------------------------------
文件类型
文件有很多种,ext2文件系统的文件类型有下图这些
enum FILE_TYPE{
EXT2_FT_UNKNOWN, //1.未知文件类型
EXT2_FT_REG_FILE, //2.普通文件
EXT2_FT_DIR, //3.目录文件
EXT2_FT_CHRDEV, //4.字符设备文件
EXT2_FT_BLKDEV, //5.块设备文件
EXT2_FT_FIFO, //6.命名管道文件
EXT2_FT_SOCK, //7.套接字文件
EXT2_FT_SYMLINK, //8.符号链接文件
EXT2_FT_MAX; //9.文件类型的最大个数
}
文件类型为目录文件时,数据块中是目录项。
文件类型为普通文件时,数据块中是文件的内容。
我们知道目录中可以有许多文件。所以目录文件中需要用目录项来索引这些文件的位置,每个目录项对应目录中的一个文件,存储inode编号、文件名、文件类型等信息,如下图。文件/lib的文件类型是目录文件,目录下有4个文件
文件组织形式:
1.链式结构 如Windows操作系统的FAT文件系统
文件由链式结构的数据块组成。弊端:访问某个数据块必须要从头遍历数据块,效率低。
2.索引结构 如Unix操作系统的inode
避免了访问某一数据块需要从头遍历数据块的缺点。采用多级索引表实现
------------------------------------------------------------------------------------------------------------------------
挂载分区
挂载分区的实质是把该分区文件系统的元信息从硬盘上读出来加载到内存中,这样硬盘