Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • P proj5-FAT32onMaQueOS
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • CrewUnionProblemKill
  • proj5-FAT32onMaQueOS
  • Wiki
  • 比赛题目分析和相关资料调研

比赛题目分析和相关资料调研 · Changes

Page history
Update 比赛题目分析和相关资料调研,添加“FAT32的一些限制一节”,并修改中文序号为数字序号 authored Jun 14, 2024 by Little Leaf's avatar Little Leaf
Hide whitespace changes
Inline Side-by-side
比赛题目分析和相关资料调研.md
View page @ 911d9dd4
经过相关资料的调研和对比赛题目的分析,我们得出下列结论:
# 一、无需自行实现 FAT32 格式化工具
# 1. 无需自行实现 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
# 2. FAT32 的一些限制
## 分析 MaQueOS 对 xtfs 的实现
>这有助于设计正确的测试用例
- 引导扇区只使用4B来记录磁盘的扇区总数,即最多只支持2^32个扇区,每个扇区512B,因此**支持的磁盘容量最大值为2TB**;
- FAT32 卷(volume,也被称为分区)必须至少包含65537个簇(cluster),**不支持容量小于512MB的分区**;
- FAT32 表项中的高4位不用,因此表项数最多为2^28个,**在簇的大小为4KB时,支持的最大分区大小为1TB**
- **单个文件的长度不能大于4GB**
# 3. 需要修改当前的系统调用,以支持 FAT32
## 3.1 分析 MaQueOS 对 xtfs 的实现
《操作系统设计与实现——基于LoongArch架构》书中《第 9 章:进程 1 加载可执行文件》在第 8 章的工作之上,实现了:
......@@ -19,11 +29,11 @@
《操作系统设计与实现——基于LoongArch架构》书中《第 12 章:文件操作》中包含`create`、`destroy`、`open`、`close`、`write`和`read` 六个分别用于创建、删除、打开、关闭和读写的系统调用,外加一个将内存缓冲区的内容写回硬盘对应的数据块中的`sync`系统调用。
### 总结
### 3.1.1 总结
综上所述,我们计划修改上面提到的总共 `9` 个系统调用来使MaQueOS支持FAT32。
# 三、Linux 对文件系统的支持的实现
# 4. Linux 对文件系统的支持的实现
```
+--------------------+
......
Clone repository
  • Home
  • uploads
    • 0bc768dbb7fc0582616552f906240a99
      • Readme
  • 云端开发环境
  • 文档规范
  • 比赛题目分析和相关资料调研
  • 系统测试
  • 系统调用文档
    • sys_create函数
    • sys_destroy 函数介绍
      • find_directory_entry 函数介绍
        • read_custor 函数介绍
    • sys_mount 函数介绍