操作系统设计与实现中常用的 Rust 特性
操作系统设计与实现中常用的 Rust 特性
oscamp 第一阶段的 rustlings 总结, 但因为去年写过一次 rustlings 了,
题目比较基础(除了最后的算法和数据结构实现有点麻烦)之前也接触过不少
Rust, 所以这次是总结一下二三阶段中特别需要的 Rust 特性
oscamp 第一阶段的 rustlings 总结, 但因为去年写过一次 rustlings 了,
题目比较基础(除了最后的算法和数据结构实现有点麻烦)之前也接触过不少
Rust, 所以这次是总结一下二三阶段中特别需要的 Rust 特性
以 rCore 为例, 介绍一个操作系统从 RustSBI 开始, 从批处理系统到分时多任务系统, 包括地址空间/进程/文件系统的实现, 最后实现多线程以及同步互斥的各种机制.
暂时集中在一篇文章里, 以后有需要再分章节记录
这一章理解难度不大, 但是内容很多, 比较复杂, 读着读着时而觉得”我艹这简直是艺术品”时而觉得”我他妈快睡着了”。
pushq/popq二义性(数据操作在外侧,
栈指针变化在内测)这一章也很好理解, 重点解释一些不太好理解或者书上介绍不是很清楚的地方, 然后列大纲用于以后复习看。
(UPD 做完 cache lab 后: 还是不太好理解的, cache lab 难度不小)
这章内容很短, 就是书中和 15213 都有意隐去了很多细节, 自己去理解思考这些细节会很麻烦
另外 section 的翻译易引起歧义, 这里不作翻译
静态链接包括两个阶段, 符号解析和重定位:
符号解析是要把每一个符号引用与符号定义联系起来
首先要理解可重定向文件的各个 section