目标1. 了解Rust语言基本知识

学习资料:《Rust book》,《learn Rust by example》,《Rust编程之道》等
学习目标:对于Rust的核心机制,如borrow-checking等有基本了解,能够读懂Rus代码并编写简单项目

目标2. 了解Rust中unsafe的使用和常见bug模式

学习资料:《rustonomicon》, 我的论文understanding memory and thread safety practices and issues
学习目标:大致了解Rust的不安全代码;对照论文,了解Rust中对unsafe使用和封装,了解Rust中常见的内存和多线程bug模式。不安全代码和bug集合见https://docs.google.com/spreadsheets/d/1CC0I2h8ZMv9D73ZQ8afLhIoUGvjhEno4swMVownxrMM/edit#gid=1326170465

目标3. 了解Rust MIR和rustc中的库

学习资料:《rustc dev guide》, rust compiler src
学习目标:大致了解Rust编译器工作原理,重点关注MIR及其操作,与目标5同时进行

目标4. 了解静态检测的基本知识

学习资料:维基百科和博客等
学习目标:简单了解涉及编译器的一些概念,如control flow graph,def-use chain,dominator tree, dataflow analysis, genkill analysis等

目标5. 了解和开发Rust bug检测工具

学习资料:https://github.com/BurtonQin/rust-lock-bug-detector
学习目标:看懂检测工具的工作原理,借此熟悉目标3中rustc库中API的使用,所有检测器必须对照目标2中bug的中间代码进行开发

目标*. 了解Rust安全研究的最新进展

参考Rust Belt的几篇论文

  1. https://people.mpi-sws.org/~jung/phd/thesis-screen.pdf
  2. https://www.mpi-sws.org/~dreyer/papers/safe-sysprog-rust/paper.pdf
  3. https://plv.mpi-sws.org/rustbelt/stacked-borrows/paper.pdf
  4. http://www.mpi-sws.org/~dreyer/papers/rustbelt/paper.pdf

*该目标可作为提高,第一篇前半部分还是比较容易看懂的

纸上得来终觉浅,绝知此事要躬行。关键概念理解后,一定要写代码来验证
本地开发环境可以选vscode+rust analyzer,小的demo可以使用https://play.rust-lang.org/