From 8a2dde6ed4195ff2c0ea88950afc4178c9f5c0f7 Mon Sep 17 00:00:00 2001
From: wangzhigang 00434745 <wangzhigang17@huawei.com>
Date: Mon, 7 Dec 2020 10:31:37 +0800
Subject: [PATCH 1/3] docs: update design.md

Signed-off-by: wangzhigang 00434745 <wangzhigang17@huawei.com>
---
 docs/design.md | 58 ++++++++++++++++++++++++++------------------------
 1 file changed, 30 insertions(+), 28 deletions(-)

diff --git a/docs/design.md b/docs/design.md
index fd75a6c..107a731 100644
--- a/docs/design.md
+++ b/docs/design.md
@@ -1,42 +1,44 @@
 # StratoVirt Design
 
-## Overview 
+## Overview
 
-StratoVirt is an open-source lightweight virtualization technology based on Linux Kernel-based Virtual Machine(KVM). 
-StratoVirt reduces memory resource consumption and improves VM startup speed while retains isolation capability and security capability of traditional virtualization. 
-StratoVirt can be applied to microservices or serverless scenarios such as function computing.
-StratoVirt reserves interface and design for importing more features, even standard virtualization.
+StratoVirt is an open-source lightweight virtualization technology based on Linux Kernel-based Virtual Machine(KVM);
+StratoVirt reduces memory resource consumption and improves VM startup speed while retains isolation capability and security capability of traditional virtualization; 
+StratoVirt can be applied to microservices or serverless scenarios such as function computing;
+StratoVirt reserves interface and design for importing more features, even standard virtualization;
 
-## Features 
+## Architecture
 
-- High isolation based on hardware.
-- Fast cold boot: Benefit from the minimalist design, StratoVirt could boot a microVM in 50ms. 
-- Low memory overhead: StratoVirt works with a memory footprint at 3MB. 
-- IO enhancement: StratoVirt offers normal IO ability with minimalist IO device emulation. 
-- OCI compatibility: StratoVirt works with isula and kata container, and can be integrated in Kubernetes ecosystem perfectly. 
-- Multi-platform support: Fully support for Intel and Arm platform.
-- Expansibility: StratoVirt reserves interface and design for importing more features, even expand to standard virtualization support. 
+The following figure shows StratoVirt's core architecture which consist of three layers from top to bottom;
 
-## Architecture 
+- OCI compatibility API: StratoVirt uses the QMP protocol to communicate with external systems and is compatible with OCI;
+- BootLoader: StratoVirt uses a simple BootLoader to load the kernel image, instead of the traditional cumbersome BIOS and Grub boot modes, to achieve fast boot; 
+- Lightweight: To improve performance and reduce the attack surface, StratoVirt minimizes the simulation of user-mode devices; KVM simulation devices and paravirtualization devices, such as GIC, serial, RTC and virtio devices, are used;
 
-The following figure shows StratoVirt's core architecture which consist of three layers from top to bottom.
+![image](images/StratoVirt-arch;png)
 
-- OCI compatibility API: StratoVirt uses the QMP protocol to communicate with external systems and is compatible with OCI.
-- BootLoader: StratoVirt uses a simple BootLoader to load the kernel image, instead of the traditional cumbersome BIOS and Grub boot modes, to achieve fast boot. 
-- Lightweight: To improve performance and reduce the attack surface, StratoVirt minimizes the simulation of user-mode devices. KVM simulation devices and paravirtualization devices, such as GIC, serial, RTC and virtio devices, are used.
+## Features
 
-![image](images/StratoVirt-arch.png) 
+- High isolation ability based on hardware;
+- Fast cold boot: Benefit from the minimalist design, StratoVirt could boot a microVM in 50ms;
+- Low memory overhead: StratoVirt works with a memory footprint at 4MB;
+- IO enhancement: StratoVirt offers normal IO ability with minimalist IO device emulation;
+- OCI compatibility: StratoVirt works with isula and kata container, and can be integrated in Kubernetes ecosystem perfectly;
+- Multi-platform support: Fully support for Intel and Arm platform;
+- Expansibility: StratoVirt reserves interface and design for importing more features, even expand to standard virtualization support;
+- Security: lower than 35 syscalls while running;
 
-## Internal Implementation 
+## Implementation
 
-#### Running Architecture 
+#### Running Architecture
 
-A StratoVirt VM is an independent process in Linux. The process has two types of threads: main thread and VCPU thread.
-The main thread is a cycle for asynchronous collecting and processing events from external modules, such as a VCPU thread.
-Each VCPU has a thread to process trap events of this VCPU.
+- StratoVirt VM is an independent process in Linux. The process has two types of threads: main thread and VCPU thread;
+    - The main thread is a cycle for asynchronous collecting and processing events from external modules, such as a VCPU thread;
+    - Each VCPU has a thread to process trap events of this VCPU;
 
-## Restrictions 
+## Restrictions
 
-- Only the Linux operating system is supported. The recommended kernel version is 4.19.
-- Only Linux is supported as the client operating system, and the recommended kernel version is 4.19.
-- Supports a maximum of 254 CPUs. 
+- Only the Linux operating system is supported; The recommended kernel version is 4.19;
+- Only Linux is supported as the client operating system, and the recommended kernel version is 4.19;
+- StratoVirt is fullly tested on openEuler;
+- Supports a maximum of 254 CPUs;
-- 
2.27.0

