[全国赛I] 进程管理-进程与线程
TCB 与 fork 的更改
相较于初赛,完善了 clone 系统调用。初赛时由于要求测试样例要求比较低,在实现 clone 系统调用时并未完全利用用户传递的参数。我们根据 Linux manual page 中的要求,完善了内核的 fork 以及 TaskControlBlock 结构。
相较于初赛,完善了 clone 系统调用。初赛时由于要求测试样例要求比较低,在实现 clone 系统调用时并未完全利用用户传递的参数。我们根据 Linux manual page 中的要求,完善了内核的 fork 以及 TaskControlBlock 结构。
随着开发的进行,我们需要的适配和封装的数据结构越来越多,其中大部分与我们的内核本体关系并没有那么紧密,
所以我们将这部分结构,如用于的引导程序、FAT32、Linux 相关数据结构放在了项目根目录中的 crates
里
Rust 本身是支持多个 crates
构成的一个 workspace
,这些 crates
直接可以相互引用,但是由于我们使用
了 .cargo/config.toml
来配置 rustc,所以 workspace
并不能为我们所有 (因为目前 workspace
不支持在 workspace
中读取 .cargo/config.toml
)
项目提供了一系列的 Makefile 来简化开发流程.
在 BTD 的开发中经常会遇到 debug 的需求,BTD 提供了一个方便的调试流程,只需启动两个 shell 即可 开始调试
内核在运行的时候总是会不知何时卡死,底层原因是持续触发时钟中断