从零到一手写操作系统(十、文件系统 1)设计与实现)

image.png

如果追忆会荡起涟漪,那么今天的秋红落叶和晴空万里都归你
https://aeneag.xyz
微信公众号:技术乱舞
艾恩凝

手写操作系统目录

十、文件系统

10.1)设计与实现

从 /(根)目录开始,就能找到每个文件、每个目录和每个目录下的所有文件。文件系统就是对文件进行管理的系统。
100000.png

关于文件系统,最重要的是理解如何组织管理,下面shi文件逻辑块映射
101000.png

超级块与位图
102000.png

文件目录
103000.png

文件管理头
104000.png

关于文件的操作,直接就可以看代码,结构清晰,最大的难度就是多多理解结构体之间的关系,理解文件在内存中的布局。

文件的操作

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、释放缓存

内存一过,一马平川

手写操作系统目录


    


公众号'艾恩凝'
个人公众号
个人微信
个人微信
    吾心信其可行,
          则移山填海之难,
                  终有成功之日!
                                  ——孙文
    评论
    0 评论
avatar

取消