Skip to content

This repo is aimed to recording the OS learning process, The OS is based on Rust.

Notifications You must be signed in to change notification settings

DavinZhang/os-training-camp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 

Repository files navigation

os-training-camp

What is this repo aimed to?

This repo is aimed to record the OS learning process, The OS is based on Rust.

Where is the learning discussion link

【官方链接】2023春夏季开源操作系统训练营 每日/周学习实践过程记录

Some key Links

History

2023-03-24

2023-03-25

  • 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

2023-03-26

  • Gathering the material about this training camp
  • Init this repo and organize the information

2023-03-27

  • Rust Installation

open Link https://rustup.rs/

execute

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Rustlings Installation
curl -L https://github.com/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

2023-03-28

  • Learn to write a guessing game [Done]
  • solved 1 function problem

2023-03-29

  • 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

2023-03-30

  • 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

2023-03-31

  • Learned enums
  • Completed 3 enums quizzes
  • Completed 4 string quizzes
  • Start to learn crate and modules
  • Completed 1 module quiz

2023-04-01

  • Learned 5 crates sections
  • Completed 2 module quizzes
  • Completed 3 hashmap quizzes

2023-04-02

  • Completed quiz2
  • Completed 3 options quizzes
  • Learn error handling chapter
  • Completed 3 error handling quizzes

2023-04-03

  • Completed 3 left error handling quizzes
  • Completed 1 generics quiz

2023-04-04

  • Learned generics
  • Learned traits
  • Completed 2 generics quiz

2023-04-05

  • Learned generics
  • Learned traits
  • Completed 5 traits quizzes
  • Completed quiz3
  • Learned How to Write Tests
  • Learned Validating References with Lifetimes

2023-04-06

  • Learned Chapter: Writing Automated Tests
    • Learned How to Write Tests
    • Learned Controlling How Tests Are Run
    • Learned Test Organization
  • Completed 3 tests quizzes
  • Completed 3 lifetime quizzes
  • Learned 13.2 iterator
  • Completed 1 iterator quiz

2023-04-07

  • Learned Accepting Command Line Arguments
  • Learned Reading a File
  • Learned Refactoring to Improve Modularity and Error Handling
  • Learned to write an I/O project12.4 12.5 12.6
  • Learned Functional Programming Capabilities13.113.213.313.4
  • Completed 1 iterator quiz

2023-04-08

  • Completed iterator3iterator4iterator5 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

2023-04-09

  • Learned Using Box<T> to Point to Data on the Heap
  • Completed box1 quiz

2023-04-10

  • Learned Treating Smart Pointers Like Regular References with the Deref Trait

2023-04-11

  • Learned Running Code on Cleanup with the Drop Trait
  • Learned Rc<T>, the Reference Counted Smart Pointer

2023-04-12

  • 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

2023-04-13

  • Learned Fearless Concurrency
    • Learned Extensible Concurrency with the Sync and Send Traits
  • 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
  • Completed arcs1.rs quiz
  • Completed rc1.rs quiz
  • Completed cow1.rs quiz
  • Completed 3 threads quizzes
  • Completed 1 macro quiz

2023-04-14

  • Learned Patterns and Matching
    • Learned All the Places Patterns Can Be Used
    • Learned Refutability: Whether a Pattern Might Fail to Match
    • Learned Pattern Syntax

2023-04-15

  • Learned Advanced Features
    • Learned Unsafe Rust
    • Learned Advanced Traits
    • Learned Advanced Types
    • Learned Advanced Functions and Closures
    • Learned Macros
    • Completed 3 Macro quizzes

2023-04-16

  • Completed 3 clippy quizzes
  • Completed 5 conversions quizzes
  • RustLings Done~

rcore Learning

Code

Documents

OS API docs of rCore Tutorial Code 2023S

Related Resources

Build & Run

# 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]

Grading

# 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]

2023-04-16

  • set up Build and Run enviroment follow https://github.com/LearningOS/2023s-rcore-DavinZhang
  • Try to execute make run on local laptop

2023-04-17

  • 阅读rCore-Tutorial-Guide-2023S引言部分
    • 阅读应用程序执行环境与平台支持
    • 阅读移除标准库依赖

2023-04-18

  • Learned RCore on previous video https://os2edu.cn/course/106/replay/3772

2023-04-19

  • Start to learn RCore on https://os2edu.cn/course/108/replay/5594

2023-04-20

  • Learned RCore second lesson

2023-04-21

  • Practiced Chapter 1 of rCore-Tutorial-Guide-2023S

2023-04-22

  • 1 day off for a totally busy week

2023-04-23

  • 加班中,最近一直到很晚,回家一般一两点之后了。还有日报要发,看看今晚是不是困,考虑看看

2023-04-24

  • 加班中,还有好几个Todo要做,最近赶项目,五一放假补补进度

About

This repo is aimed to recording the OS learning process, The OS is based on Rust.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published