From cab92d757cdd942861238ad29034bd6671ac9877 Mon Sep 17 00:00:00 2001 From: yezengruan Date: Fri, 1 Sep 2023 20:03:18 +0800 Subject: [PATCH] add README.md Signed-off-by: yezengruan --- README.md | 96 +++++++++++++++++++++++++++++++++++++++++++++++++ stratovirt.spec | 5 ++- 2 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..1ab8e86 --- /dev/null +++ b/README.md @@ -0,0 +1,96 @@ +# StratoVirt +StratoVirt is an enterprise-level virtualization platform for cloud data centers +in the computing industry. It implements a set of architecture that supports +three scenarios: virtual machines, containers, and serverless computing. + +StratoVirt has competitive advantages in light weight and low noise, software +and hardware coordination, and Rust language-level security. + +StratoVirt reserves interface and design for importing more features, even +evaluates to standard virtualization. + +## How to start + +### Preparation +Before building StratoVirt, make sure that Rust language and Cargo have already +been installed. If not, you can find installation guidance via following link: + +https://www.rust-lang.org/tools/install + +And it will get smaller memory overhead if you prepare musl toolchain for rust. + +### Build StratoVirt +To build StratoVirt, clone the project and build it first: +```sh +$ git clone https://gitee.com/openeuler/stratovirt.git +$ cd stratovirt +$ make build +``` +Now you can find StratoVirt binary in `target/release/stratovirt`. + +### Run a VM with StratoVirt +To run StratoVirt quickly, requires +* A PE or bzImage (only x86_64) format Linux kernel +* An EXT4 filesystem, raw format rootfs disk image + +You can get kernel and rootfs image from the following link: + +https://repo.openeuler.org/openEuler-22.03-LTS/stratovirt_img/ + +For standard VM, firmware file of EDK2 which follows UEFI is required. + +```shell +# If the socket of qmp exists, remove it first. + +# Start microvm +$ ./target/release/stratovirt \ + -machine microvm \ + -kernel /path/to/kernel \ + -append "console=ttyS0 root=/dev/vda reboot=k panic=1" \ + -drive file=/path/to/rootfs,id=rootfs,readonly=off \ + -device virtio-blk-device,drive=rootfs,id=rootfs \ + -qmp unix:/path/to/socket,server,nowait \ + -serial stdio + +# Start standard VM on x86_64 +$ ./target/release/stratovirt \ + -machine q35 \ + -kernel /path/to/kernel \ + -append "console=ttyS0 root=/dev/vda reboot=k panic=1" \ + -drive file=/path/to/firmware,if=pflash,unit=0,readonly=true \ + -device pcie-root-port,port=0x0,addr=0x1.0x0,bus=pcie.0,id=pcie.1 \ + -drive file=/path/to/rootfs,id=rootfs,readonly=off \ + -device virtio-blk-pci,drive=rootfs,bus=pcie.1,addr=0x0.0x0,id=blk-0 \ + -qmp unix:/path/to/socket,server,nowait \ + -serial stdio +``` + +The detailed guidance of making rootfs, compiling kernel and building StratoVirt +can be found in [StratoVirt QuickStart](./docs/quickstart.md). + +StratoVirt supports much more features, the detailed guidance can be found in +[Configuration Guidebook](docs/config_guidebook.md). + +## Design + +To get more details about StratoVirt's core architecture design, refer to +[StratoVirt design](./docs/design.md). + +## How to contribute +We welcome new contributors! And we are happy to provide guidance and help for +new contributors. StratoVirt follows Rust formatting conventions, which can be +found at: + +https://github.com/rust-dev-tools/fmt-rfcs/tree/master/guide +https://github.com/rust-lang/rust-clippy + +You can get more information about StratoVirt at: + +https://gitee.com/openeuler/stratovirt/wikis + +If you find a bug or have some ideas, please send an email to the +[virt mailing list](https://mailweb.openeuler.org/postorius/lists/virt.openeuler.org/) +or submit an [issue](https://gitee.com/openeuler/stratovirt/issues). + +## Licensing +StratoVirt is licensed under the Mulan PSL v2. diff --git a/stratovirt.spec b/stratovirt.spec index 3982701..885bb24 100644 --- a/stratovirt.spec +++ b/stratovirt.spec @@ -6,7 +6,7 @@ Name: stratovirt Version: 2.2.0 -Release: 15 +Release: 16 Summary: StratoVirt is an opensource VMM(Virtual Machine Manager) which aims to perform next generation virtualization. License: MulanPSL-2.0 @@ -109,6 +109,9 @@ install -D -m555 ./target/%{rust_musl_target}/release/stratovirt %{buildroot}%{_ install -D -m555 ./target/%{rust_musl_target}/release/vhost_user_fs %{buildroot}%{_libdir}/stratovirt/static %changelog +* Mon Sep 11 2023 yezengruan 2.2.0-16 +- Add README.md + * Fri Sep 8 2023 ganqixin - 2.2.0-15 - Delete -static-pie for musl -- Gitee