1 Star 0 Fork 0

WHC/xv6-course

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
61-fs-overview.org 3.29 KB
一键复制 编辑 原始数据 按行查看 历史
殊蕤 提交于 2023-12-03 13:10 . add

文件系统概览

文件系统

  1. 解决 on-disk 存储结构
    • 树形结构
    • 文件/目录
  2. crash recovery 崩溃恢复
    • 突然断电后重启后依然可以正常工作
    • xv6
  3. 多进程同时读写
    • 协调并发操作问题
  4. 解决读写磁盘速度慢的问题
    • 通过 in-memory cache 来提高系统的读写效率
lsblk -f

xv6 文件系统逻辑结构

./img/fs-arch.png

  1. xv6-fs 七层逻辑结构
    • File descriptor
    • Pathname
    • Directory
    • inode
    • Logging
    • Buffer cache
    • Disk
  2. 读代码/研究
    • 自底而上 / 选这个
    • 自顶而下
  3. Disk 读写磁盘, 直接操作磁盘, ide.c
  4. Buffer Cache 管理 buf 结构
    • 与磁盘同步数据
    • 确保多进程同时只能有一个进程进行操作
  5. Logging 允许多个 block 同时操作
    • 多个 block 同时操作形成 transaction
  6. inode 提供文件操作, 每个 inode 有唯一编号 inum
    • 一个 inode 保护多个 block
    • 这样的 inode 可表示一个文件
    • unix
  7. Directory 实现目录结构 dirent
    • 它可以表示一个目录
    • 本质上是 inode 序列
    • name 记录目录名称
  8. Pathname 表示一个文件路径 /etc/my.cnf
  9. File descriptor 是文件描述符
    • read(fd,…)
      • stdin(0), stdout(1), stderr(2)
    • 标记操作系统的资源: pipe/device/files 等

xv6 文件系统物理结构

./img/fs-phy.png

  1. boot 没有使用,一般用于装启动引导
    • 扇区 sector 512/ boot / MBR
  2. super 时 superblock 记录文件的元信息
  3. 接着是第 2 个扇区, 记录了若干 log
    • nlog
  4. 然后 inode, bitmap
  5. data
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/whc_softHardware/xv6-course.git
git@gitee.com:whc_softHardware/xv6-course.git
whc_softHardware
xv6-course
xv6-course
master

搜索帮助

D67c1975 1850385 1daf7b77 1850385