--- title: xvisor categories: embedded, arm, armv8, xvisor, hypervisor, virtualization ... 協作者 ===================================== * 2015 年春季 - 沈宗穎, 李育丞, 蘇誌航, 張仁傑, 鄧維岱 Hackpad ===================================== * `xvisor`_ * `design doc整理`_ 虛擬化技術 (Virtualization) ===================================== 以下簡介虛擬化技術,並以Xvisor on Armv8 為例探討虛擬化技術的實作 Hypervisor (virtual machine monitor) -------------------------------------------- - Hypervisor (Virtual Machine Monitor)的功用是去管理Virtual Machine (VM) - Host Machine: 運行Hypervisor的實體主機,但有時運行在Hypervisor之上 - Guest Machine: 運行在Hypervisor之上的虛擬主機 .. image:: http://electronicdesign.com/site-files/electronicdesign.com/files/archive/electronicdesign.com/files/29/20211/fig_01.jpg - 使用時機: - 工作負載整合 (Workload Consolidation) - 支援舊有軟體 (Legacy Software) - 啟用多核 (Multicore Enablement) - 提高可靠性 (Improved Reliability) - 安全監控 (Secure Monitoring) Hypervisor的類型 -------------------------------------------- - Type-1: 本地(native)、裸機(bare-metal) hypervisors - Hypervisor直接運行在host的硬體上,並直接控制硬體及管理Guest作業系統,此時host把Guest作業系統當成一個process - 如: `XenServer`_ 、 `Hyper-V`_ 、Xvisor - Type-2: 託管(hosted) hypervisors - Hypervisor運行在host的作業系統上,再去提供虛擬化服務 - 如: `VMware`_、`VirtualBox`_ - 比較: - Type-1: 有較高的安全性及可靠性,但因直接運行於硬體上,所以時常為single purpose - Type-2: 支援較多的I/O device及服務,且較易安裝及使用,但效能較Type-1低,常應用於效率較不重要的客戶端 虛擬化指令(ARM) -------------------------------------------- 虛擬化定理 (Virtualization theorems) ................................................................................ - 定理:對於任何傳統的第三代計算機,只要其敏感指令是特權指令的一個子集,就可以為其建立VMM (from Wiki) - 原本由OS在kernel mode執行的敏感指令,因OS被移到user mode而無法正常執行,所以需要被trap 給 hypervisor來執行。 - 特權指令 (Privileged instructions): 若執行在user mode 會觸發trap - 控制敏感指令 (Control sensitive instructions): 會改變處理器組態或模式的指令 - 行為敏感指令 (Behavior sensitive instructions): 其行為取決於處理器的狀態 問題指令(Problematic Instructions) .................................... - Type I: 在user mode執行會產生未定義的指令異常 - MCR、MRC: 需要依賴協處理器(coprocessor) - Type II: 在user mode執行會沒有作用 - MSR、MRS: 需要操作系統暫存器 - Type III: 在user mode執行會產生不可預測的行為 - MOVS PC, LR: 返回指令,改變PC並跳回user mode,在user mode執行會產生不可預測的結果 CPU virtualization -------------------------------------------- Xvisor ................................. Memory virtualization -------------------------------------------- "virtual" virtual memory ............................. ARM Virtualization extension ................................. Xvisor ................................. device virtualization -------------------------------------------- virtio ............................. 設計文件整理 ===================================== 原文: https://github.com/xvisor/xvisor/blob/master/docs/DesignDoc Modeling Virtual Machine -------------------------------------------- * 何謂VM(virtual machine),通常分為兩種 - system virtual machine: support the execution of a complete OS - process virtual machine: support a single process * Xvisor為硬體系統的虛擬化軟體,可直接運行於主機機器,為Native/Type-1的Hypervisor/VMM system virtual machine通常稱為guest,而guest裏的CPU稱為VCPU(Virtual CPU),VCPU又可分為兩種 - 屬於Guest的稱為 Normal VCPU - 不屬於任何Guest的稱為 Orphan VCPU (Orphan VCPU是為了不同的背景程序及運行中的管理daemon而建立的) * 當今CPU至少有兩種privilege mode: - User mode為最低特權,運行Normal VCPUs - Supervisor mode為最高特權,運行Orphan VCPUs * Xvisor當執行various background process和執行management daemons使用Orphan VCPUs 下圖為Xvisor的System Virtual Machine Model .. image:: /embedded/xvisor_model.png reference ===================================== * http://www.slideshare.net/jserv/xvisor * https://github.com/xvisor/xvisor/blob/master/docs/DesignDoc * https://samlin.hackpad.com/Xvisor--chtGSqPYWG8 * http://www.slideshare.net/badaindonesia/linux-on-arm-64bit-architecture?related=1 * `ARMv8-A_Architecture_Reference_Manual_(Issue_A.a) (需登入)`_ * `A Virtualization Infrastructure that Supports Pervasive Computing.`_ * `A Choices Hypervisor on the ARM architecture`_ * `Extensions to the ARMv7-A architecture`_ * `前瞻 資訊科技 - 虛擬化 (1) - Virtualization( V12N ). 薛智文 教授`_ * `前瞻 資訊科技 - 虛擬化 (2) - Virtualization( V12N ). 薛智文 教授`_ * ` An Overview of Microkernel, Hypervisor and Microvisor Virtualization Approaches for Embedded Systems, Asif Iqbal, Nayeema Sadeque and Rafika Ida Mutia, Lund University, Sweden`_ * `Hardware accelerated Virtualization in the ARM Cortex™ Processors`_ * `Popek and Goldberg virtualization requirements`_