操作系统UNIX文件管理

文章目录

  • 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. 找到索引节点表里第1个表项,记录了根目录文件的存储位置,第一个块为14块

    在14块里看到了programs

  2. 找到14块,看到programs文件的inode号为7

  3. 在索引节点表里找第7个表项,记录了programs目录文件的存放位置,第一个块为23块

  4. 找到23块,看到pong.c文件的inode号为9

  5. 在索引节点表里找第9个表项,记录了pong.c文件的存放位置,第一个块为61块

  6. 依次访问61,44,15块,可得到Pong.c文件的内容