cs-self-learning/docs/编程入门/CS110L.md
2021-12-10 00:24:25 +08:00

23 lines
No EOL
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CS110L: Safety in Systems Programming
## 课程简介
- 所属大学Stanford
- 先修要求:最好有一定的编程背景并对计算机系统有初步的认识。
- 编程语言Rust
- 课程难度:🌟🌟🌟
- 预计学时30小时
在这门课中你将会学习Rust这门神奇的语言。
如果你学过C并接触过一些系统编程的话应该对C的内存泄漏以及指针的危险有所耳闻但C的底层特性以及高效仍然让它在系统级编程中无法被例如Java等自带垃圾收集机制的高级语言所替代。而Rust的目标则是希望在C的高效基础上弥补其安全不足的缺点。因此Rust在设计之初就有带有很多系统编程的观点。学习Rust也能让你之后能用C语言编写出更安全更优雅的系统级代码例如操作系统等
这门课的后半部分关注在并发concurrency这一主题上你将会系统地掌握多进程、多线程、基于事件驱动的并发等若干并发技术并在第二个project中比较它们各自的优劣。Rust中“futures”的概念非常有趣和优雅这些基础知识对你后续对计算机系统相关课程的学习很有帮助。另外清华大学的操统实验rCore就是基于Rust编写的具体参见[文档](https://rcore-os.github.io/rCore-Tutorial-Book-v3/index.html)。
## 课程资源
- [课程网站](https://reberhardt.com/cs110l/spring-2020/)
- [课程视频](https://youtu.be/j7AQrtLevUE)
- 课程教材:无
- 课程作业共6个lab和2个project作业文档和代码框架详见课程网站。其中两个project非常有趣分别是
- 1用Rust实现一个类似于gdb的debugger
- 2用Rust实现一个负载均衡器
## 资源汇总
我在学习这门课中用到的所有资源和作业实现都汇总在[这个Github仓库](https://github.com/PKUFlyingPig/CS110L)中。