forked from rcore-os/zCore
Update README
This commit is contained in:
parent
9b6c1f5928
commit
67a0468df0
143
README.md
143
README.md
|
@ -1,7 +1,7 @@
|
|||
# zCore
|
||||
|
||||
[](https://github.com/rcore-os/zCore/actions)
|
||||
[](https://rcore-os.github.io/zCore/zircon_object/)
|
||||
[](https://rcore-os.github.io/zCore/)
|
||||
[](https://coveralls.io/github/rcore-os/zCore?branch=master)
|
||||
|
||||
Reimplement [Zircon][zircon] microkernel in safe Rust as a userspace program!
|
||||
|
@ -13,7 +13,8 @@ Reimplement [Zircon][zircon] microkernel in safe Rust as a userspace program!
|
|||
- 2020.04.16: Zircon console is working on zCore! 🎉
|
||||
|
||||
## Quick start for RISCV64
|
||||
```
|
||||
|
||||
```sh
|
||||
make riscv-image
|
||||
cd zCore
|
||||
make run ARCH=riscv64 LINUX=1
|
||||
|
@ -27,7 +28,6 @@ Environments:
|
|||
* [QEMU](https://www.qemu.org)
|
||||
* [Git LFS](https://git-lfs.github.com)
|
||||
|
||||
|
||||
### Developing environment info
|
||||
- current rustc -- rustc 1.56.0-nightly (08095fc1f 2021-07-26)
|
||||
- current rust-toolchain -- nightly-2021-07-27
|
||||
|
@ -49,75 +49,108 @@ git clone https://github.com.cnpmjs.org/rcore-os/zCore --recursive
|
|||
```
|
||||
### Run zcore in libos mode
|
||||
#### Run zcore in linux-libos mode
|
||||
##### step1: Prepare Alpine Linux rootfs:
|
||||
* step 1: Prepare Alpine Linux rootfs:
|
||||
|
||||
```sh
|
||||
make rootfs
|
||||
```
|
||||
```sh
|
||||
make rootfs
|
||||
```
|
||||
|
||||
##### step2: Compile&Run native Linux program (Busybox) in libos mode:
|
||||
* step 2: Compile & Run native Linux program (Busybox) in libos mode:
|
||||
|
||||
```sh
|
||||
cargo run --release --features "linux libos" -- /bin/busybox [args]
|
||||
```
|
||||
```sh
|
||||
cargo run --release --features "linux libos" -- /bin/busybox [args]
|
||||
```
|
||||
|
||||
You can also add the feature `graphic` to show the graphical output (with [sdl2](https://www.libsdl.org) installed).
|
||||
You can also add the feature `graphic` to show the graphical output (with [sdl2](https://www.libsdl.org) installed).
|
||||
|
||||
To debug, set `LOG` environment variable to one of `error`, `warn`, `info`, `debug`, `trace`.
|
||||
To debug, set the `LOG` environment variable to one of `error`, `warn`, `info`, `debug`, `trace`.
|
||||
|
||||
#### Run native Zircon program (shell) in zircon-libos mode:
|
||||
|
||||
#### step1: Compile and Run Zircon shell
|
||||
* step 1: Compile and Run Zircon shell
|
||||
|
||||
```sh
|
||||
cargo run --release --features "zircon libos" -- prebuilt/zircon/x64
|
||||
```
|
||||
```sh
|
||||
cargo run --release --features "zircon libos" -- prebuilt/zircon/x64/bringup.zbi
|
||||
```
|
||||
|
||||
The `graphic` and `LOG` options are the same as Linux.
|
||||
|
||||
### Run zcore in bare-metal mode
|
||||
#### Run Linux shell in linux-bare-metal mode:
|
||||
##### step1: Prepare Alpine Linux rootfs:
|
||||
|
||||
```sh
|
||||
make rootfs
|
||||
```
|
||||
##### step2: Create Linux rootfs image:
|
||||
Note: Before below step, you can add some special apps in zCore/rootfs
|
||||
* step 1: Prepare Alpine Linux rootfs:
|
||||
|
||||
```sh
|
||||
make image
|
||||
```
|
||||
##### step3: build and run zcore in linux-bare-metal mode:
|
||||
```sh
|
||||
make rootfs
|
||||
```
|
||||
|
||||
```sh
|
||||
cd zCore && make run MODE=release LINUX=1 [GRAPHIC=on] [ACCEL=1]
|
||||
```
|
||||
* step 2: Create Linux rootfs image:
|
||||
|
||||
Note: Before below step, you can add some special apps in zCore/rootfs
|
||||
|
||||
```sh
|
||||
make image
|
||||
```
|
||||
|
||||
* step 3: Build and run zcore in linux-bare-metal mode:
|
||||
|
||||
```sh
|
||||
cd zCore && make run MODE=release LINUX=1 [LOG=warn] [GRAPHIC=on] [ACCEL=1]
|
||||
```
|
||||
|
||||
#### Run Zircon shell in zircon-bare-metal mode:
|
||||
##### step1.1 : build and run zcore in zircon-bare-metal mode:
|
||||
|
||||
```sh
|
||||
cd zCore && make run MODE=release [GRAPHIC=on] [ACCEL=1]
|
||||
```
|
||||
* step 1: Build and run zcore in zircon-bare-metal mode:
|
||||
|
||||
##### step1.2 : Build and run your own Zircon user programs:
|
||||
```sh
|
||||
cd zCore && make run MODE=release [LOG=warn] [GRAPHIC=on] [ACCEL=1]
|
||||
```
|
||||
|
||||
```sh
|
||||
# See template in zircon-user
|
||||
cd zircon-user && make zbi MODE=release
|
||||
* step 2: Build and run your own Zircon user programs:
|
||||
|
||||
# Run your programs in zCore
|
||||
cd zCore && make run MODE=release USER=1
|
||||
```
|
||||
|
||||
To debug, set `LOG` environment variable to one of `error`, `warn`, `info`, `debug`, `trace`.
|
||||
```sh
|
||||
# See template in zircon-user
|
||||
cd zircon-user && make zbi MODE=release
|
||||
|
||||
# Run your programs in zCore
|
||||
cd zCore && make run MODE=release USER=1 [LOG=warn] [GRAPHIC=on] [ACCEL=1]
|
||||
```
|
||||
|
||||
## Testing
|
||||
### LibOS Mode Testing
|
||||
|
||||
#### Zircon related
|
||||
|
||||
Run Zircon official core-tests:
|
||||
|
||||
```sh
|
||||
pip3 install pexpect
|
||||
cd scripts && python3 unix-core-testone.py 'Channel.*'
|
||||
```
|
||||
|
||||
Run all (non-panicked) core-tests for CI:
|
||||
|
||||
```sh
|
||||
pip3 install pexpect
|
||||
cd scripts && python3 unix-core-tests.py
|
||||
# Check `zircon/test-result.txt` for results.
|
||||
```
|
||||
|
||||
#### Linux related
|
||||
|
||||
Run Linux musl libc-tests for CI:
|
||||
|
||||
```sh
|
||||
make rootfs && make libc-test
|
||||
cd scripts && python3 libos-libc-tests.py
|
||||
# Check `linux/test-result.txt` for results.
|
||||
```
|
||||
|
||||
### Bare-metal Mode Testing
|
||||
#### Zircon related
|
||||
|
||||
Run Zircon official core-tests on bare-metal:
|
||||
|
||||
```sh
|
||||
cd zCore && make test MODE=release [ACCEL=1] TEST_FILTER='Channel.*'
|
||||
```
|
||||
|
@ -129,28 +162,17 @@ pip3 install pexpect
|
|||
cd scripts && python3 core-tests.py
|
||||
# Check `zircon/test-result.txt` for results.
|
||||
```
|
||||
#### Linux related
|
||||
|
||||
Run Linux musl libc-tests for CI:
|
||||
|
||||
```sh
|
||||
make rootfs && make libc-test
|
||||
cd scripts && python3 libc-tests.py
|
||||
# Check `linux/test-result.txt` for results.
|
||||
```
|
||||
|
||||
### Baremetal Mode Testing
|
||||
|
||||
#### x86-64 Linux related
|
||||
|
||||
Run Linux musl libc-tests for CI:
|
||||
```
|
||||
```sh
|
||||
## Prepare rootfs with libc-test apps
|
||||
make baremetal-test-img
|
||||
## Build zCore kernel
|
||||
cd zCore && make build MODE=release LINUX=1 ARCH=x86_64
|
||||
## Testing
|
||||
cd ../scripts && python3 ./baremetal-libc-test.py
|
||||
cd scripts && python3 baremetal-libc-test.py
|
||||
##
|
||||
```
|
||||
|
||||
|
@ -161,11 +183,11 @@ You can use [`scripts/baremetal-libc-test-ones.py`](./scripts/baremetal-libc-tes
|
|||
#### riscv-64 Linux related
|
||||
|
||||
Run Linux musl libc-tests for CI:
|
||||
```
|
||||
```sh
|
||||
## Prepare rootfs with libc-test & oscomp apps
|
||||
make riscv-image
|
||||
## Build zCore kernel & Testing
|
||||
cd ../scripts && python3 baremetal-test-riscv64.py
|
||||
cd scripts && python3 baremetal-test-riscv64.py
|
||||
##
|
||||
```
|
||||
|
||||
|
@ -190,7 +212,7 @@ vec!["/bin/snake".into(), "sh".into()]
|
|||
### Step3: prepare root fs image, run zcore in linux-bare-metal mode
|
||||
exec:
|
||||
|
||||
```
|
||||
```sh
|
||||
cd zCore #zCore ROOT DIR
|
||||
make rootfs
|
||||
cp ../rcore-user/app/snake rootfs/bin #copy snake ELF file to rootfs/bin
|
||||
|
@ -215,7 +237,8 @@ Operation
|
|||
```
|
||||
make doc
|
||||
```
|
||||
### riscv64 porting info
|
||||
### RISC-V 64 porting info
|
||||
|
||||
- [porting riscv64 doc](./docs/porting-rv64.md)
|
||||
## Components
|
||||
|
||||
|
|
Loading…
Reference in New Issue