Kernel 2.6 的 KVM (Kernel Virtual Machine) 驅動程式來了

jollen 發表於 October 19, 2006 11:27 PM

在伺服器(server)技術的發展藍圖中(roadmap),虛擬伺服器(virtual server)是 Intel 近來所著墨的重點。由以往單一硬體對單一作業系統(operating system)的伺服器架構(1 physical server v.s. 1 OS),未來將會演進成為單一硬體對多個作業系統的架構(1 physical server v.s. multiple OS)。

Intel 的 Virtualization Technology 就是一個這樣的新技術。Intel 的 Virtualization Technology 可以讓處理器支援多個 OS,不過這其實是基於我們所熟悉的虛擬機器軟體(例如:VMware、QEMU、Xen等)才能達到的,所以這是一個由「processor + chipsets + BIOS + 虛擬機器軟體」互相運作所實現的技術。

Virtual Machine Monitor (VMM)

軟體實作的虛擬機器在此技術領域中被統稱為「VMM - Virtual Machine Monitor」,現在已經有支援 Intel Virtualization Technology 的 VMM 了,那就是知名的 Xen。相關的參考網址如下:

Extending Xen with Intel Virtualization Technology - http://www.intel.com/technology/itj/2006/v10i3/3-xen/1-abstract.htm
Xen - http://www.xensource.com/index.html

接下來,就是我們今天在網路上所看到的重點了!

KVM: Kernel-based Virtual Machine

今天,看到了 2.6 kernel 的 KVM patch。KVM(Kernel Virtual Machine)是 Intel's virtualization technology 的驅動程式!KVM 驅動程式目前支援 i386 與 x86_64 "host",且「All combinations are allowed except x86_64 guest on i386 host.」。

比較特殊的是 Linux 2.6 的 KVM 驅動程式支援三種模式:kernel mode、user mode 與 guest mode。KVM 驅動程式的 user-space 介面是 '/dev/kvm',因此 process 可以執行自己的 virtual machine,在一台電腦上也能執行多個 virtual machine。Guest mode:

「Guest mode has its own address space mapping guest physical memory (which is accessible to user mode by mmap()ing /dev/kvm). Guest mode has no access to any I/O devices; any such access is intercepted and directed to user mode for emulation. 」。

取得 Patch 與追踪主題

[PATCH 0/7] KVM: Kernel-based Virtual Machine
[PATCH 1/7] KVM: userspace interface
[PATCH 2/7] KVM: Intel virtual mode extensions definitions
[PATCH 3/7] KVM: kvm data structures
[PATCH 5/7] KVM: mmu virtualization
[PATCH 6/7] KVM: x86 emulator
[PATCH 7/7] KVM: plumbing

關於更多 Intel 的 Virtualization Technology

可以參考的網址如下:

Make virtualization a reality - http://www.intel.com/cd/channel/reseller/asmo-na/eng/products/server/processors/250640.htm
Server Virtualization Technology - http://www.intel.com/business/bss/products/server/virtualization_wp.pdf

Jollen's Blog 使用 Github issues 與讀者交流討論。請點擊上方的文章專屬 issue,或 open a new issue

您可透過電子郵件 jollen@jollen.org,或是 Linkedin 與我連絡。更歡迎使用微信,請搜尋 WeChat ID:jollentw