mirror of
https://github.com/rcore-os/rCore-Tutorial-v3.git
synced 2024-11-22 01:16:26 +04:00
update README
This commit is contained in:
parent
2d28a0e597
commit
3a3eba4f6e
40
README.md
40
README.md
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user