文章目录
- UNIX文件管理
-
- Unix6种类型的文件
- 索引节点
-
- 一、概述
- 二、FreeBSD索引节点和文件的结构
- 三、练习
-
- 1. 第一题
- 2. 第二题
- 四、UNIX目录和索引节点
- 文件系统的布局
- 5.7.4 UNIX中的路径解析——/programs/pong.c
UNIX文件管理
Unix6种类型的文件
索引节点
一、概述
- 所有类型的UNIX文件都是由操作系统通过索引节点(Inode)来管理的
- 索引节点是一个控制结构,包含操作系统所需的关于某个文件的关键信息
- 多个文件名能与一个索引节点相关联
二、FreeBSD索引节点和文件的结构
-
文件分配是以块为基础完成的
-
按需动态分配,而非预定义分配
-
系统为了知道每个文件,采用一种索引方法,索引的一部分保存在该文件的索引节点中
索引的一部分:指的是直接索引那一部分
-
在所有的UNIX实现中,索引节点都包含一些直接指针和三个间接指针(一级、二级、三级)
-
块大小为4KB时的FreeBSD文件容量
- 每个地址项长度为8字节
- 文件最大可以超过500G
三、练习
1. 第一题
2. 第二题
- 分析:
纠正:是从266到65801
-
第一题:
-
第二题:
-
第三题:
四、UNIX目录和索引节点
文件系统的布局
-
UNIX文件系统驻留在单个逻辑磁盘或磁盘分区
- 引导块(Boot block):包含引导操作系统的代码
- 超级块(Superblock):包含有关文件系统的属性和信息,如分区大小、索引节点表的大小
- 索引节点表(Inode table):所有文件的索引节点集
- 数据块(Data blocks):数据文件和子目录文件所需的存储空间
-
文件系统布局
5.7.4 UNIX中的路径解析——/programs/pong.c
在inode table里存放了每个文件的inode,所以查找inode是关键
索引节点表里存的是某目录文件存储的物理块号,
通过inode将文件和索引表项联系起来
步骤:
-
找到索引节点表里第1个表项,记录了根目录文件的存储位置,第一个块为14块
在14块里看到了programs
-
找到14块,看到programs文件的inode号为7
-
在索引节点表里找第7个表项,记录了programs目录文件的存放位置,第一个块为23块
-
找到23块,看到pong.c文件的inode号为9
-
在索引节点表里找第9个表项,记录了pong.c文件的存放位置,第一个块为61块
-
依次访问61,44,15块,可得到Pong.c文件的内容