总结
在这次夏令营中,我主要做了几件事情:
- Rust 编程能力的提升,通过使用 Rust 编写 OS,对 Rust 这门语言有了更进一步的掌握
- rCore-Tutorial 的实验,通过这次实验的学习,弄明白了以前上课很多感到模糊的概念。
- zCore 的学习和编写 zCore-Tutorial 的文档。通过 zCore 的学习,了解了什么是微内核,什么是内核对象,使用内核对象有什么好处。我主要负责编写了第三章内存管理的内容,在一开始看代码的时候对 VMO 和 VMAR 之间的关系十分模糊,在张译仁助教的帮助下对这些概念有了比较清楚的认识,顺利的完成了第三章的文档,但是我觉得这份文档在用词和一些地方的解释仍然不够清楚,我会继续学习,然后继续把这份文档进一步完善。
踩坑
在使用弱连接编写代码时候踩了一个坑,我觉得可以放进这份总结给大家提供一个参考。
出问题的代码如下:
1 | // kernel-hal |
当我 cargo run 运行的时候会报:thread 'main' panicked at 'no implemented' /path/lib.rs:7:5
,这个路径指向的就是 kernel-hal 中的 console_putchar()
。也就是连接的时候无法连接到具体的实现上去。在寻求萧洛元和张译仁助教的帮助后,发现是因为实现的函数的库被编译器优化掉了。解决办法是:需要在 main 中直接使用一次 kernel-hal-unix 这个库。
致谢
十分感谢陈渝,向勇老师提供的这次参与夏令营的机会,能让我感受到了 OS 的魅力,让我更加坚定在研究生阶段选择这个方向作为自己的研究方向。还十分感谢张译仁等助教在夏令营阶段提供的帮助,在他们的帮助下,我顺利的完成了第一阶段和第二阶段的学习。