从零到一手写操作系统(十、文件系统 1)设计与实现)
如果追忆会荡起涟漪,那么今天的秋红落叶和晴空万里都归你
https://aeneag.xyz
微信公众号:技术乱舞
艾恩凝
手写操作系统目录
十、文件系统
10.1)设计与实现
从 /(根)目录开始,就能找到每个文件、每个目录和每个目录下的所有文件。文件系统就是对文件进行管理的系统。
关于文件系统,最重要的是理解如何组织管理,下面shi文件逻辑块映射
超级块与位图
文件目录
文件管理头
关于文件的操作,直接就可以看代码,结构清晰,最大的难度就是多多理解结构体之间的关系,理解文件在内存中的布局。
文件的操作
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 评论