|
|
|
经过相关资料的调研和对比赛题目的分析,我们得出下列结论:
|
|
|
|
|
|
|
|
# 一、无需自行实现 FAT32 格式化工具
|
|
|
|
|
|
|
|
阅读《操作系统设计与实现——基于LoongArch架构》书中《第 8 章:xtfs 文件系统》,8.2节对格式化 xtfs 文件系统的说明和8.3.6节的复制实例,我们小组发现:无论是从使用 `dd` 命令生成硬盘镜像文件 `xtfs.img`,到使用 `gcc` 命令编译链接 `format.c` 文件生成的 `format` 可执行文件对硬盘镜像文件 `xtfs.img`进行格式化的整个流程,还是复制常规文件 `hello` 到 `xtfs.img`,都是在 GNU/Linux 上完成的。
|
|
|
|
|
|
|
|
参照这种方式,我们认为无需自行在 MaQueOS 上实现用户态 FAT32 文件系统格式化工具。
|
|
|
|
|
|
|
|
# 二、需要修改当前的系统调用,以支持 FAT32
|
|
|
|
|
|
|
|
## 分析 MaQueOS 对 xtfs 的实现
|
|
|
|
|
|
|
|
《操作系统设计与实现——基于LoongArch架构》书中《第 9 章:进程 1 加载可执行文件》在第 8 章的工作之上,实现了:
|
|
|
|
|
|
|
|
1. 通过调用 `mount`系统调用挂载 xtfs 文件系统
|
|
|
|
2. 通过调用 `exe` 系统调用加载运行 xtsh 应用程序的 xt 格式的可执行文件
|
|
|
|
|
|
|
|
两个功能;
|
|
|
|
|
|
|
|
《操作系统设计与实现——基于LoongArch架构》书中《第 12 章:文件操作》中包含`create`、`destroy`、`open`、`close`、`write`和`read` 六个分别用于创建、删除、打开、关闭和读写的系统调用,外加一个将内存缓冲区的内容写回硬盘对应的数据块中的`sync`系统调用。
|
|
|
|
|
|
|
|
### 总结
|
|
|
|
|
|
|
|
综上所述,我们计划修改上面提到的总共 `9` 个系统调用来使MaQueOS支持FAT32。 |
|
|
|
\ No newline at end of file |