Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/duskmoon314/rcore-n
A simple os kernel based on rCore-Tutorial with user mode trap support
https://github.com/duskmoon314/rcore-n
Last synced: about 2 months ago
JSON representation
A simple os kernel based on rCore-Tutorial with user mode trap support
- Host: GitHub
- URL: https://github.com/duskmoon314/rcore-n
- Owner: duskmoon314
- License: mit
- Created: 2021-05-28T05:57:52.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-12-15T02:50:08.000Z (about 1 year ago)
- Last Synced: 2024-10-10T20:50:00.143Z (2 months ago)
- Language: Rust
- Size: 869 KB
- Stars: 7
- Watchers: 2
- Forks: 8
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# rCore-N
> submodule of [Gallium70/rv-n-ext-impl](https://github.com/Gallium70/rv-n-ext-impl)
Based on [duskmoon314/rCore:ch6](https://github.com/duskmoon314/rCore/tree/ch6) (which is based on [rcore-os/rCore-Tutorial-v3:ch6](https://github.com/rcore-os/rCore-Tutorial-v3/tree/ch6))
Add support of **user mode trap**
## Example
![A user mode trap example](assets/example.png)
The user mode process triggers and handles `user soft interrupt` in the user mode itself.
## How to run
I prefer to use `just` and do not guarantee the correctness of the `makefile` in os.
### Build the environment
#### QEMU with extN support
I have added N Extension CSRs of RISC-V support to stable-5.0 of QEMU. [duskmoon314/qemu:riscv-N-stable-5.0](https://github.com/duskmoon314/qemu)
```bash
git clone https://github.com/duskmoon314/qemu.git
mkdir qemu-build
cd qemu-build
../qemu/configure --target-list="riscv64-softmmu"
make -j8
```#### install just
We can install just via cargo
```bash
cargo install just
```### build and run
```bash
cd os
LOG=DEBUG just run
```> There are 5 levels for logger
>
> ERROR, WARN, INFO, DEBUG, TRACE
>
> Use via `LOG=XXXXX just run`