Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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: 12 days ago
JSON representation

A simple os kernel based on rCore-Tutorial with user mode trap support

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`