應用程式如何獲知自己是否工作在xen 虛擬機器中呢?
使用cpuid指令可以完成該任務。
uint32_t eax, ebx, ecx, edx, pages, msr, i;
char signature[13];
cpuid(0x40000000, &eax, &ebx, &ecx, &edx);
*(uint32_t*)(signature + 0) = ebx;
*(uint32_t*)(signature + 4) = ecx;
*(uint32_t*)(signature + 8) = edx;
signature[12] = 0;
if (strcmp("xenvmmxenvmm", signature) || (eax < 0x40000002))
在xen中,當使用0x40000000作為cpuid的引數時,能夠得到「xenvmmxenvmm」這樣的字串。這是在xen原始碼中定義的。
\xen\include\public\arch-x86\cpuid.h
**#define xen_cpuid_signature_ebx 0x566e6558 /* "xenv" */
**#define xen_cpuid_signature_ecx 0x65584d4d /* "mmxe" */
**#define xen_cpuid_signature_edx 0x4d4d566e /* "nvmm" */******
Xen虛擬機器
虛擬化技術是雲計算實現彈性計算的核心技術。在構建雲計算平台中,虛擬機器的安裝是基礎。常用的虛擬機器工具很多,如vmware xen kvm virtual pc等,這些工具使得使用者可以在單台物理pc上 稱為宿主機 虛擬出多個虛擬機器vm virtual machine 由於在每個vm上可以安裝與宿...
Xen虛擬機器VNC輸出
摘要 有時需要通過主機hvc0登入到虛擬機器中,有時需要借助vnc登入虛擬機器進行管理,這樣就需要有相應的配置保證兩者都能正常輸出。具體的配置如下文。hvc是xen虛擬化技術引入的對虛擬機器進行控制的虛擬console,在虛擬機器的配置中自動完成 vnc顯示vga硬體輸出,可以完成對虛擬機器的管理。...
Xen 虛擬機器使用LVM snapshot映象
一般的虛擬機器映象檔案,比較直接的做法是存放在乙個img映象檔案裡,或者直接使用 dev sda 分割槽。但是萬一把虛擬機器分割槽 玩壞 了就不好恢復了。qemu支援一種映象格式qcow2,能夠建立增量映象,這樣可以把修改存在新檔案裡,當出錯時可以保護原始映象。這個功能非常有用,xen似乎支援qco...