update README

This commit is contained in:
Yu Chen 2022-06-23 22:41:20 +08:00
parent 2d28a0e597
commit 3a3eba4f6e

View File

@ -1,5 +1,5 @@
# rCore-Tutorial-v3 # rCore-Tutorial-v3
rCore-Tutorial version 3.5. See the [Documentation in Chinese](https://rcore-os.github.io/rCore-Tutorial-Book-v3/). rCore-Tutorial version 3.6. See the [Documentation in Chinese](https://rcore-os.github.io/rCore-Tutorial-Book-v3/).
rCore-Tutorial API Docs. See the [API Docs of Ten OSes ](#OS-API-DOCS) rCore-Tutorial API Docs. See the [API Docs of Ten OSes ](#OS-API-DOCS)
@ -8,7 +8,7 @@ If you don't know Rust Language and try to learn it, please visit [Rust Learnin
Official QQ group number: 735045051 Official QQ group number: 735045051
## news ## news
- 25/01/2022: Version 3.6.0 is on the way! Now we directly update the code on chX branches, please periodically check if there are any updates. - 23/06/2022: Version 3.6.0 is on the way! Now we directly update the code on chX branches, please periodically check if there are any updates.
## Overview ## Overview
@ -44,7 +44,7 @@ $ rustup component add rust-src
### Install Qemu ### Install Qemu
Here we manually compile and install Qemu 5.0.0. For example, on Ubuntu 18.04: Here we manually compile and install Qemu 7.0.0. For example, on Ubuntu 18.04:
```sh ```sh
# install dependency packages # install dependency packages
@ -52,10 +52,10 @@ $ sudo apt install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev l
gawk build-essential bison flex texinfo gperf libtool patchutils bc \ gawk build-essential bison flex texinfo gperf libtool patchutils bc \
zlib1g-dev libexpat-dev pkg-config libglib2.0-dev libpixman-1-dev git tmux python3 python3-pip zlib1g-dev libexpat-dev pkg-config libglib2.0-dev libpixman-1-dev git tmux python3 python3-pip
# download Qemu source code # download Qemu source code
$ wget https://download.qemu.org/qemu-5.0.0.tar.xz $ wget https://download.qemu.org/qemu-7.0.0.tar.xz
# extract to qemu-5.0.0/ # extract to qemu-7.0.0/
$ tar xvJf qemu-5.0.0.tar.xz $ tar xvJf qemu-7.0.0.tar.xz
$ cd qemu-5.0.0 $ cd qemu-7.0.0
# build # build
$ ./configure --target-list=riscv64-softmmu,riscv64-linux-user $ ./configure --target-list=riscv64-softmmu,riscv64-linux-user
$ make -j$(nproc) $ make -j$(nproc)
@ -64,9 +64,9 @@ $ make -j$(nproc)
Then, add following contents to `~/.bashrc`(please adjust these paths according to your environment): Then, add following contents to `~/.bashrc`(please adjust these paths according to your environment):
``` ```
export PATH=$PATH:/home/shinbokuow/Downloads/built/qemu-5.0.0 export PATH=$PATH:/home/shinbokuow/Downloads/built/qemu-7.0.0
export PATH=$PATH:/home/shinbokuow/Downloads/built/qemu-5.0.0/riscv64-softmmu export PATH=$PATH:/home/shinbokuow/Downloads/built/qemu-7.0.0/riscv64-softmmu
export PATH=$PATH:/home/shinbokuow/Downloads/built/qemu-5.0.0/riscv64-linux-user export PATH=$PATH:/home/shinbokuow/Downloads/built/qemu-7.0.0/riscv64-linux-user
``` ```
Finally, update the current shell: Finally, update the current shell:
@ -79,7 +79,7 @@ Now we can check the version of Qemu:
```sh ```sh
$ qemu-system-riscv64 --version $ qemu-system-riscv64 --version
QEMU emulator version 5.0.0 QEMU emulator version 7.0.0
Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers
``` ```
@ -251,13 +251,9 @@ The API Docs for Ten OS
## Working in progress ## Working in progress
Our first release 3.5.0 (chapter 1-7) has been published. Our first release 3.6.0 (chapter 1-9) has been published, and we are still working on it.
There will be 9 chapters in our next release 3.6.0, where 2 new chapters will be added: * chapter 9: need more descripts about different I/O devices
* chapter 8: synchronization on a uniprocessor
* chapter 9: I/O devices
Current version is 3.6.0-alpha.1 and we are still working on it.
Here are the updates since 3.5.0: Here are the updates since 3.5.0:
@ -279,18 +275,16 @@ Here are the updates since 3.5.0:
* [x] switch the code of chapter 6 and chapter 7 * [x] switch the code of chapter 6 and chapter 7
* [x] support signal mechanism in chapter 7/8(only works for apps with a single thread) * [x] support signal mechanism in chapter 7/8(only works for apps with a single thread)
* [x] Add boards/ directory and support rustdoc, for example you can use `cargo doc --no-deps --open` to view the documentation of a crate * [x] Add boards/ directory and support rustdoc, for example you can use `cargo doc --no-deps --open` to view the documentation of a crate
* [x] code of chapter 9: device drivers based on interrupts, including UART, block, keyboard, mouse, gpu devices
* [x] add CI autotest and doc in github
### Todo(High priority) ### Todo(High priority)
* [ ] review documentation, current progress: 5/9 * [ ] review documentation, current progress: 8/9
* [ ] support user-level sync primitives in chapter 8
* [ ] code of chapter 9: device drivers based on interrupts, including UART and block devices
* [ ] use old fs image optionally, do not always rebuild the image * [ ] use old fs image optionally, do not always rebuild the image
* [ ] add new system calls: getdents64/fstat
* [ ] shell functionality improvement(to be continued...) * [ ] shell functionality improvement(to be continued...)
* [ ] give every non-zero process exit code an unique and clear error type * [ ] give every non-zero process exit code an unique and clear error type
* [ ] effective error handling of mm module * [ ] effective error handling of mm module
* [ ] add more os functions for understanding os conecpts and principles
### Todo(Low priority) ### Todo(Low priority)
* [ ] rewrite practice doc and remove some inproper questions * [ ] rewrite practice doc and remove some inproper questions