OS 文件系统组成

OS 文件系统组成

Linux 文件系统为每个文件分配两个数据结构 :

  • 索引节点 (index node) : 文件唯一标识 , 记录文件的元信息,如 : inode 编号、文件大小、访问权限、创建时间、修改时间、数据在磁盘的位置
  • 目录项 (directory entry) : 记录文件的名字、索引节点指针、与其他目录项的层级关联关系

存储位置 :

  • 索引节点 : 存储在硬盘
  • 目录项 : 缓存在内存

目录项/索引节点的关系 :

  • 一个文件 (索引) 有多个别名 (目录项)

image.png

文件系统 : 把多个扇区 组成一个逻辑块 (数据块)

  • Linux : 扇区 : 512 B , 逻辑块 : 4KB

磁盘分三个存储区域 :

  • 超级块 : 存储文件系统的详细信息,如 : 块个数、块大小、空闲块
  • 索引节点区 : 存储索引节点
  • 数据块区 : 存储文件或目录数据

加载内存的时机 :

  • 超级块 : 当文件系统挂载时 , 进入内存
  • 索引节点区 : 当文件被访问时 , 进入内存

虚拟文件系统

虚拟文件系统 (Virtual File System,VFS) : 统一用户层访问文件系统的接口

image.png

根据存储位置不同 , 文件系统分三类 :

  • 磁盘的文件系统 : 数据存储在磁盘中,如 : Ext 2/3/4、XFS
  • 内存的文件系统 : 数据用内存空间,如 : /proc , /sys
  • 网络的文件系统 : 访问其他主机的文件系统,如 : NFS、SMB

文件表

操作系统会记录每个进程的打开文件表

  • 表中的每项是 : 文件描述符

image.png

文件表维护打开文件信息 :

  • 文件指针 : 上次读写文件位置
  • 文件打开计数器 : 当计数 = 0 ,系统关闭文件,删除该条目
  • 文件磁盘位置 : 保存在内存中,提高效率
  • 访问权限:创建、只读、读写、添加状态 , 判断 I/O 请求权限

猜你喜欢

转载自blog.csdn.net/qq_44226094/article/details/131750242