分享到plurk 分享到twitter 分享到facebook

版本 43493e509f858a22160144e77e49932cc5c0cd31

xvisor

協作者

  • 2015 年春季
    • 沈宗穎, 李育丞, 蘇誌航, 張仁傑, 鄧維岱

Hackpad

  • xvisor<https://mycpp.hackpad.com/xvisor-xQUUkRHWwmm>_
  • design doc整理<https://mycpp.hackpad.com/Xvisor--WzicRuv3qqf>_

虛擬化技術 (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<http://en.wikipedia.org/wiki/Xen>_ 、 Hyper-V<http://en.wikipedia.org/wiki/Hyper-V>_ 、Xvisor
  • Type-2: 託管(hosted) hypervisors
    • Hypervisor運行在host的作業系統上,再去提供虛擬化服務
      • 如: VMware<http://en.wikipedia.org/wiki/VMware_Workstation>VirtualBox<http://en.wikipedia.org/wiki/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) (需登入)<http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0487a.e/index.html>_
  • A Virtualization Infrastructure that Supports Pervasive Computing.<http://165.193.233.120/files/pdf/partners/academic/vmware-pervasive-computing_LRudolph-en.pdf>_
  • A Choices Hypervisor on the ARM architecture<http://www.russellgreenspan.com/software/A%20Choices%20Hypervisor%20on%20the%20ARM%20Architecture.pdf>_
  • Extensions to the ARMv7-A architecture<http://www.hotchips.org/wp-content/uploads/hc_archives/hc22/HC22.23.220-1-Brash-ARMv7A.pdf>_
  • 前瞻 資訊科技 - 虛擬化 (1) - Virtualization( V12N ). 薛智文 教授<http://www.slideserve.com/quynn-dickson/cwhsueh-csie-ntu-tw-csie-ntu-tw-cwhsueh>_
  • 前瞻 資訊科技 - 虛擬化 (2) - Virtualization( V12N ). 薛智文 教授<http://www.slideserve.com/candid/cwhsueh-csie-ntu-edu-tw-http-www-csie-ntu-edu-tw-cwhsueh-100-fall-nov-4-fri-678-dth-104>_
  • An Overview of Microkernel, Hypervisor and Microvisor Virtualization Approaches for Embedded Systems, Asif Iqbal, Nayeema Sadeque and Rafika Ida Mutia, Lund University, Sweden<http://www.eit.lth.se/fileadmin/eit/project/142/virtApproaches.pdf>_
  • Hardware accelerated Virtualization in the ARM Cortex™ Processors<http://www-archive.xenproject.org/files/xensummit_seoul11/nov2/2_XSAsia11_JGoodacre_HW_accelerated_virtualization_in_the_ARM_Cortex_processors.pdf>_
  • Popek and Goldberg virtualization requirements<http://en.wikipedia.org/wiki/Popek_and_Goldberg_virtualization_requirements>_