• neohope
    置顶
    2021-08-07
    四、文件系统使用【1、只有一级目录;2、文件管理结构+文件大小<=4K】 1、判断文件是否存在 计算得到文件名 找到根目录文件块 跳过管理结构,遍历全部rfsdir_t目录结构,如果有重名的就返回,没有就失败 2、新建文件 A、确认文件并不存在,存在就报错 B、找到根目录文件块 C、申请一个逻辑块 D、跳过管理结构,新增一个rfsdir_t目录结构,并指向新申请的逻辑块 E、在逻辑块开始建立新的fimgrhd_t文件管理结构 3、删除文件 A、找到根目录文件快 B、跳过管理结构,遍历全部rfsdir_t目录结构,如果没有就失败 C、将rfsdir_t标识为删除 D、回收逻辑块 4、打开文件 A、找到根目录文件快 B、跳过管理结构,遍历全部rfsdir_t目录结构,如果没有就失败 C、读取逻辑块,返回 5、读取文件 A、判断文件已打开 B、根据文件偏移及读取长度,返回数据 6、写入文件 A、判断文件已打开 B、数据追加到缓存中 C、缓存写入到设备中 7、关闭设备 A、判断文件已打开 B、缓存写入到设备中 C、释放缓存

    作者回复: 总结到位

    
    3
  • pedro
    2021-07-26
    限制1:不可持久化,不支持crash恢复,应加入磁盘块的写入,内存中有一定文件块的缓存,支持日志,防止系统崩溃,文件数据丢失。 限制2:缺少抽象层,无法支持多种格式的文件。 限制3:小量内存式文件系统,没有使用磁盘,不支持 mount 等骚操作。 等等……

    作者回复: 哈哈是的,你有能力可以写个硬盘驱动,在rfs这个驱动中,将IO包继续下发给硬盘驱动,让硬盘驱动写入到硬盘,由此,有层层驱动堆叠的IO栈就形成了

    
    3
  • LDxy
    2021-07-26
    好像还缺少seek操作

    作者回复: 对,没有实现

    
    2
  • Kinco.
    2021-10-20
    1. 不支持多种格式的文件; 2. 不支持多层目录; 3. 不支持seek操作。

    作者回复: 是的 是的

    
    1
  • 艾恩凝
    2022-05-12
    打卡,果然不支持多级目录,更多的是体会一下,os中的文件操作

    作者回复: 是的 支持多级 目录 代码会更加复杂

    
    
  • MONKEYG
    2022-05-07
    我想请问下,这个try_entry是谁在调用的😂😂

    作者回复: 没有这个函数啊

    
    
  • ifelse
    2022-02-22
    文件查询

    作者回复: 嗯嗯

    
    
  • kocgockohgoh王裒
    2022-01-06
    请问删除文件的时候 是不是在根目录文件产生空洞啊 新建文件总是从根目录文件末尾操作

    作者回复: 是的

    
    
  • al_培龙
    2021-08-03
    好像不支持多级目录吧

    作者回复: 对 对 对

    共 2 条评论
    