Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30043
  • 博文数量: 15
  • 博客积分: 385
  • 博客等级: 一等列兵
  • 技术积分: 210
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-27 13:27
文章分类

全部博文(15)

文章存档

2013年(3)

2012年(2)

2011年(10)

我的朋友

分类: 云计算

2012-05-27 18:26:10

 
 
Amazon EC2 用的是xen, ls /proc/xen 或者运行下面的detect程序.
#include
#include
#define HYPERVISOR_INFO 0x40000000
#define CPUID(idx, eax, ebx, ecx, edx) \
    asm volatile ( \
        "test %1,%1 ; jz 1f ; ud2a ; .ascii \"xen\" ; 1: cpuid" \
        : "=b" (*ebx), "=a" (*eax), "=c" (*ecx), "=d" (*edx) \
        : "0" (idx) );
int main(void)
{
        unsigned int eax, ebx, ecx, edx;
        char string[13];
        CPUID(HYPERVISOR_INFO, &eax, &ebx, &ecx, &edx);
        *(unsigned int *)(string+0) = ebx;
        *(unsigned int *)(string+4) = ecx;
        *(unsigned int *)(string+8) = edx;
        string[12] = 0;
        if (strncmp(string, "XenVMMXenVMM", 12) == 0) {
                printf("xen hvm\n");
        } else if (strncmp(string, "VMwareVMware", 12) == 0) {
                printf("vmware\n");
        } else if (strncmp(string, "KVMKVMKVM", 12) == 0) {
                printf("kvm\n");
        } else
                printf("bare hardware\n");
        return 0;
}
这段程序在Amazon EC2 vm上的运行结果是xen hvm
 
阅读(344) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~