Giter VIP home page Giter VIP logo

zcore's Introduction

zCore

CI Docs Coverage Status

Reimplement Zircon microkernel in safe Rust as a userspace program!

Dev Status

🚧 Working In Progress

  • 2020.04.16: Zircon console is working on zCore! 🎉

Quick start for RISCV64

make rv64-image
cd zCore
make run arch=riscv64 linux=1

Getting started

Environments:

Developing environment info

  • current rustc -- rustc 1.56.0-nightly (08095fc1f 2021-07-26)
  • current rust-toolchain -- nightly-2021-07-27
  • current qemu -- 5.2.0

Clone repo and pull prebuilt fuchsia images:

git clone https://github.com/rcore-os/zCore --recursive
cd zCore
git lfs install
git lfs pull

For users in China, there's a mirror you can try:

git clone https://github.com.cnpmjs.org/rcore-os/zCore --recursive

Prepare Alpine Linux rootfs:

make rootfs

Run native Linux program (Busybox):

cargo run --release -p linux-loader -- /bin/busybox [args]

Run native Zircon program (shell):

cargo run --release -p zircon-loader -- prebuilt/zircon/x64

Run Linux shell on bare-metal (zCore):

make image
cd zCore && make run mode=release linux=1 [graphic=on] [accel=1]

Run Zircon on bare-metal (zCore):

cd zCore && make run mode=release [graphic=on] [accel=1]

Build and run your own Zircon user programs:

# 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

To debug, set RUST_LOG environment variable to one of error, warn, info, debug, trace.

Testing

Run Zircon official core-tests:

cd zCore && make test mode=release [accel=1] test_filter='Channel.*'

Run all (non-panicked) core-tests for CI:

pip3 install pexpect
cd scripts && python3 core-tests.py
# Check `zircon/test-result.txt` for results.

Run Linux musl libc-tests for CI:

make rootfs && make libc-test
cd scripts && python3 libc-tests.py
# Check `linux/test-result.txt` for results.

Doc

make doc

riscv64 porting info

Components

Overview

Hardware Abstraction Layer

Bare Metal Linux / macOS
Virtual Memory Management Page Table Mmap
Thread Management executor async-std::task
Exception Handling Interrupt Signal

Some plans

zcore's People

Contributors

benpigchu avatar burtonqin avatar chyyuu avatar deathwish5 avatar elliott10 avatar equation314 avatar gcyyfun avatar heheda12345 avatar ilfth avatar jiegec avatar panql avatar rzswh avatar summervibes avatar vitalyankh avatar wangrunji0408 avatar weixiao-huang avatar wfly1998 avatar xxchan avatar xy-plus avatar yunwei37 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.