## Schedule 七月初刚好是期末,实验室和期末的事情挤在一起,基本没有时间做第一阶段这些任务。 不过还好之前有学过 Rust,可以跳过 step 0。有了跟上进度的希望。 ### Week 1 - 7.5 ~ 7.11 这周有好几门课结课,还有 lab 内的发表,基本就没什么时间做了。 **step 0 自学 rust 编程(大约 7~14 天)** 睡觉前还是抽了点时间复习了一下 Rust,用 Rust 刷了一下 LeetCode,顺便练习了一下算法。 做了做 32 Rust Quizes,里面有些问题还挺有趣的,有好些容易忽视的问题。 ### Week 2 - 7.12 ~ 7.18 这周只有一个一门课结课,发表也在下周,时间终于多了点。 **step 1 自学 risc-v 系统结构(大约 7 天)** 把 Privileged Spec 的 machine/supervisor 部分全部看了。Unprivileged Spec 挑着几章看了,比如 Introduction 和 Assembly Programmer's Handbook 部分。 然后把 The RISC-V Reader: An Open Architecture Atlas 看完了,最开始没注意到这本,很是后悔为什么没先看这本再去看 Privileged Spec。 **step 2 开发操作系统 -- based on qemu (大约 14~31 天)** 完成了 Lab 0 到 Lab 3 的内容 添加多核支持的时候有遇到一些代码上的问题,在 github issues 上提问了,很快的得到了回答。 - 比如我之前一直以为屏蔽中断会造成严重的后果,比如彻底漏掉某些中断的处理之类的。 也有遇到一些很诡异的问题,在 github issues 上和微信群内提问了,但是好像不知道怎么解决,只能想办法绕过去。 - 比如明明目标是 riscv64gc,却不能使用 mul 指令 - 比如在我确定 sp 正确设置,且没有栈溢出的情况下,传参会出现丢失的情况(更神奇的是如果我用 gdb 单步执行就不会出错 ### Week 3 这周目测又没什么时间了,期末加 lab 内发表。周末再更吧,有点担心能不能在 25 号之前全部搞定了。