[oscamp 2025A]周雨工作进展 #11
Replies: 7 comments
本周工作进展这是第一次重写文件系统,经验有所不足。发现自己之前一直是在机械的翻译每一行代码。rust的高级特性没有用上,导致写出一个c味特浓的文件系统,我吸取了这次的教训。 |
第三周工作进展已完成的工作
功能测试测试代码mkdir(&mut block_Dev, fs, "/test_dir/");
let mut tmp_buffer: [u8; 9000] = [b'R'; 9000];
let test_str = "Hello ext4 rust!".as_bytes();
tmp_buffer[8999] = b'L';
mkfile(&mut block_Dev, fs, "//test_dir/testfile", Some(&tmp_buffer));
mkfile(&mut block_Dev, fs, "//test_dir/testfile2", Some(&test_str));
let data = read_file(&mut block_Dev, fs, "//test_dir/testfile2").unwrap().unwrap();
let string = String::from_utf8(data).unwrap();
error!("read: {}", string);### 测试结果
[rustsbi] Implementation : RustSBI-QEMU Version 0.2.0-alpha.2
[rustsbi] Platform Name : riscv-virtio,qemu
[rustsbi] Platform SMP : 1
[rustsbi] Platform Memory : 0x80000000..0x88000000
[rustsbi] Boot HART : 0
[rustsbi] Device Tree Region : 0x87000000..0x87000ef2
[rustsbi] Firmware Address : 0x80000000
[rustsbi] Supervisor Address : 0x80200000
[rustsbi] pmp01: 0x00000000..0x80000000 (-wr)
[rustsbi] pmp02: 0x80000000..0x80200000 (---)
[rustsbi] pmp03: 0x80200000..0x88000000 (xwr)
[rustsbi] pmp04: 0x88000000..0x00000000 (-wr)
[ERROR] read: Hello ext4 rust!
尚未完成的工作,下周的工作
|
2025.12.8-2025.12.10工作总结1.这三天通过和老师协作完成了ext4的hashtree功能,加速了目录文件的查找速度。2.支持ordered模式的journal日志系统。
不足和bug:文件/文件夹的创建的边界处理还不到位。ext4的一些不常用的feature没有实现。 本周剩下的几天主要重心倾向于与Starryos的对接。 |
2025.12.12-2025.12.14工作总结1.这三天主要是在实现高层api和优化性能。其次是接入starryos进行测试不足和bug:目前还不支持超过4G的文件读写(很快会实现,由于大量随意使用as来截断导致的) 接下来2天将会修复和完成以上内容。并且进行大量测试,确保rsext4代码健壮. 然后就开始着手开始新的task |
2025.12.15日工作总结1.今天将rsext4接入starryos进行了测试。测试结果vim安装:成功 性能优化在read_at 和write_at 的api进行offset预计算,仅取出部分extend来提升读写速度。 问题rsext4采用多缓存来减少io操作,延迟落盘。由此引发问题,如果中途断电,内存缓存丢失->journal事务没有提交->文件丢失。 下一步计划明天将会修复journal的旧日志处理问题,继续优化读写性能。在Starryos增加新的定时任务框架,新增journal进程,在io空闲时周期性把内存缓存flush进journal/主磁盘中。 |
2025.12.16-2025.12.18日工作总结
今日已提交pr到arceos仓库,接下来转战x86平台的驱动完善任务,将结合完成“Rust 全栈部署 AI 训练营”的任务3:libuvc获取视频流,送入rknn推理框架进行推理识别目标(没有rk3588板子,用其它推理框架代替),然后操作uart端口控制机械臂(由于没有机械臂,会模拟操作) |
在项目阶段基于改进文件系统选题的工作总结根据linux标准使用RUST实现了轻量的ext4的文件系统(rsext4),为StarryOS的文件系统选择提供了新的选择。 |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Rust 重写 lwext4 项目周报
本周工作总结
时间周期: 2025年11月19日 - 2025年11月21日
已完成内容
构建 ext4 基本数据结构
重写数学工具和计算工具
编写全面的单元测试
下周工作计划
时间周期: 2025年11月22日 - 2025年11月26日
计划完成的核心功能
磁盘读写功能
块缓存功能
项目目标
All reactions