translate CS110L.md

This commit is contained in:
smxm 2022-09-30 15:18:12 +08:00 committed by GitHub
parent a2fe5618e6
commit ba1032311c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -0,0 +1,28 @@
# CS110L: Safety in Systems Programming
## Descriptions
- Offered by: Stanford
- Prerequisites: basic knowledge about programming and computer system
- Programming Languages: Rust
- Difficulty: 🌟🌟🌟
- Class Hour: 30 hours
In this course you will learn about a fantastic language, Rust.
If you have studied C and have some knowledge of systems programming, you should have heard about memory leaks and the danger of pointers, but the fundamental features of C and its efficiency still make it impossible to replace it in systems-level programming by other higher-level languages such as Java, which have embedded garbage collection mechanisms. Whereas Rust aims to build on the efficiency of C and make up for its lack of security. Therefore, Rust was designed with much ideology of system programming. By learning Rust, you will also be able to write a safer and more elegant system-level code (e.g., operating systems, etc.) in C afterwards.
The latter part of this course focuses on the topic of concurrency, where you will systematically master multi-processing, multi-threading, event-driven concurrency, and several other concurrency techniques, and in the second project will compare the advantages and disadvantages of each. The concept of "futures" in Rust is fascinating and elegant, and those basics will help you in your following studies in computer systems-related courses. In addition, Tsinghua University's operating system experiment rCore is based on Rust, see the [documentation](https://rcore-os.github.io/rCore-Tutorial-Book-v3/index.html) for details.
## Course Resources
- Course Website: https://reberhardt.com/cs110l/spring-2020/
- Recordings: <https://youtu.be/j7AQrtLevUE<https://youtu.be/j7AQrtLevUE>
- Textbook: None
- Assignments6 Labs, 2 Projects, the course website has specific requirements. There are two interesting Projects for the course, which are
1. Implement a GDB-like debugger in Rust
2. Implement a Balancebeam in Rust
## Personal Resources
All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPig/CS110L - GitHub](https://github.com/PKUFlyingPig/CS110L)