DragonOS招新任务
原创大约 2 分钟
简介
ramfs 指内存文件系统,其显著特性为所有文件均保存于内存中,不同于通常理解的保存在硬盘上的文件。因此内存文件系统屏蔽掉了跟硬盘这类底层硬件交互的部分,抽离出来了文件系统的基础功能,适合作为操作系统入门任务。
任务介绍
- 系统中已经有完成的 ramfs 模块,位于
kernel/src/filesystem/ramfs/mod.rs
中,你需要做的就是把这个 ramfs 替换为自己的实现,当然,对现有代码的借鉴是允许的,但是你要知其然并知其所以然,知道代码这样设计背后的含义,比如为什么要加锁,为什么要用 Arc。 - 替换完之后你需要编写测试程序测试你的 ramfs,现在的推荐做法是在内核初始化文件系统的代码中,多初始化一个 ramfs 并挂载到根目录,然后编写用户程序,测试这个文件系统的基本功能,例如创建、删除目录,读写文件。
FAQ
怎么编写用户程序?
- 以NovaShell为例,这是一个在 DragonOS 中运行的 shell 程序,这是用 rust 编写用户空间程序的标准范例。你需要注意两点,第一,在用户空间程序代码目录下的
.cargo/config.toml
文件中指定 target 为"x86_64-unknown-linux-musl"
,第二,在 DragonOS 项目代码目录下创建一个配置文件,例如user/dadk/config/nova_shell-0.1.0.dadk
,配置文件可以手动写,也可以用dadk new
这个命令来交互式的配置。
遇到问题怎么办?
- 尝试自己解决无果后,可以到DragonOS 开源社区进行提问,以便让项目组内的同学都能回答你的问题。