|
|
@ -6,4 +6,29 @@
|
|
|
|
## 3 同步互斥
|
|
|
|
## 3 同步互斥
|
|
|
|
@陈秋昊
|
|
|
|
@陈秋昊
|
|
|
|
## 4 文件系统
|
|
|
|
## 4 文件系统
|
|
|
|
@朱书聪
|
|
|
|
|
|
|
|
|
|
|
|
由于文件系统的主体不在主仓库而是在 [wangrunji0408/SimpleFileSystem-Rust](https://github.com/wangrunji0408/SimpleFileSystem-Rust) 中,对文件系统的修改在 [benpigchu/SimpleFileSystem-Rust](https://github.com/benpigchu/SimpleFileSystem-Rust) 进行(`ucore-fs-enhance` 分支)。要在主仓库中预览目前进行的修改,可以在 `kernel/Cargo.toml` 中加入以下内容:
|
|
|
|
|
|
|
|
```toml
|
|
|
|
|
|
|
|
[patch."https://github.com/wangrunji0408/SimpleFileSystem-Rust"]
|
|
|
|
|
|
|
|
simple-filesystem = { git = "https://github.com/benpigchu/SimpleFileSystem-Rust", branch="ucore-fs-enhance" }
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
以下是目前的进度与在真正进入教学 Lab 划分与制作前的计划
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- [x] 修复原有实现的错误
|
|
|
|
|
|
|
|
- [x] 正确维护和解释磁盘上的 `inode` 结构的 `size` 项
|
|
|
|
|
|
|
|
- [x] 正确维护磁盘上的 `inode` 结构的 `nlinks` 项
|
|
|
|
|
|
|
|
- [-] 补充实现之前未实现的功能
|
|
|
|
|
|
|
|
- [x] `unlink`
|
|
|
|
|
|
|
|
- [x] `link`
|
|
|
|
|
|
|
|
- [ ] `mount`
|
|
|
|
|
|
|
|
- [ ] 符号链接相关内容
|
|
|
|
|
|
|
|
- [-] 调整接口的定义
|
|
|
|
|
|
|
|
- [x] 用 `get_entry` 取代 `list`
|
|
|
|
|
|
|
|
- [x] 用单层查找的 `find` 取代多层查找的 `lookup`
|
|
|
|
|
|
|
|
- [ ] 返回错误类型而非直接 `panic!`
|
|
|
|
|
|
|
|
- [ ] 将 `vfs` `device` 等与具体文件系统无关的内容从 `SimpleFileSystem-Rust` 仓库移动到主仓库的新包中(`crate/vfs`)
|
|
|
|
|
|
|
|
- [ ] 让用户程序能够操作文件系统
|
|
|
|
|
|
|
|
- [ ] 使文件系统线程安全
|
|
|
|
|
|
|
|
- [ ] 实现文件描述符
|
|
|
|
|
|
|
|
- [ ] 实现相关系统调用
|