2025-05-04
Status: #idea
Tags: OS Camp Stage 2
rCore ch6
本章介绍文件系统及简单的文件系统实现
内容还是比较多的,但相比页表机制来说要容易理解.
调用流程
应用程序进行文件操作时,首先调用操作系统引用的文件系统,即easyfs,然后easyfs经过层层抽象,最终调用的是操作系统实现的块设备接口函数(read_block, write_block)
文件系统的结构
自顶向下依次是:
- 索引节点层 - vfs
- 块管理器层 - 实际的文件系统结构
- 磁盘数据结构层 - 定义了超级块/位图/索引节点等数据结构
- 块缓存层 - 将部分块的内容存储到内存中,提高性能
- 设备接口层 - 对实际设备的操作
TuLoongOS
文件系统的部分和rCore类似,但是由于无法使用virtio-blk-device,于是就采用了PCI的方式来添加块设备.
由于没有相关知识,所以设置驱动卡了几天时间
不过好在最后是成功加载上了.
解决方案
采用了virtio-drivers提供的数据结构,通过扫描总线来查找VirtIO块设备,然后进行配置,就是设置bar