天天看点

xen

                                                     Xen

xen是上个世纪九十年代,出自英国伦敦剑桥大学的两个研究员之手。它是个开源的虚拟器,直接运行在硬件上,也就是说他能直接驱动硬件设备。

xen

xen 是个怪胎,需要直接跑到硬件上,在xen 上每个虚拟机都叫做Dom ,安装上xen hypervisor 之后,首先启动的是Dom0(Dom0是第一个虚拟机),是必须安装的,所有的管理接口都要有Dom0实现。

Xen hypervisor和Dom0的区别。

xen hypervisor : 是计算机硬件的抽象层,直接附加在硬件上,运行在硬件上,把获得的计算能力通过抽象接口,提供给guest,将CPU资源按需分配,将内存资源分配,将中断请求映射,并负责提供一个console,

Dom0: 是一个特权域,可直接访问硬件io资源,可以为其他非特权提供io,Dom0 中的内核是特定的,运行半虚拟化后端。他还要调用hyper call。

所以说,各DomU对CPU,内存,中断的调用使用xen hypervisor,对io调用使用Dom0

对于xen先前是有所了解的,但是一直没有操作,今天大早起床开始尝试编译的方式实现xen,一直搞到现在,总算成功了。一下是详细步骤。

编译安装xen

[root@localhost ~] #  yum groupinstall "Development Tools"   //安装搜需要的包组

[root@localhost ~] # yum install hmaccalc ncurses-devel zlib-devel openssl-devel python-devel bridge-utils libtool-ltdl iasl xorg-x11* //在此解决依赖关系。

到http://www.acpica.org/downloads下载并安装acpica并且解压。

[root@localhost ~]# ls

acpica-unix-20150204         install.log             

acpica-unix-20150204.tar.gz  install.log.syslog         

anaconda-ks.cfg             

[root@localhost ~]# cd acpica-unix-20150204

[root@localhost acpica-unix-20150204]# make

[root@localhost acpica-unix-20150204]# make install

到下面地址下载:dev86

ftp://mirror.switch.ch/pool/4/mirror/centos/6/os/x86_64/Packages/

dev86-0.16.17-15.1.el6.x86_64.rpm

[root@www ~]# rpm -ivh dev86-0.16.17-15.1.el6.x86_64.rpm

Preparing...                ########################################### [100%]

   1:dev86                  ########################################### [100%]

[root@www ~]#

到http://xenproject.org/downloads/xen-archives/supported-xen-41-series/xen-411.html 下载最新的 Xen 源代码

acpica-unix-20150204         install.log                

acpica-unix-20150204.tar.gz  install.log.syslog          xen-4.1.1.tar.gz        anaconda-ks.cfg             

[root@localhost xen-4.1.1]# make world  //在此会有警告信息我遇到的缺少makeinfo,latex和fig2dev,在此会报缺少包都要一一装上。我在此缺少texinfo,latex,fig2dev.

[root@localhost xen-4.1.1]# yum install texinfo

[root@localhost xen-4.1.1]# yum install texlive-latex

[root@localhost xen-4.1.1]# yum install transfig

再次执行以上make world

[root@localhost xen-4.1.1]# make install

[root@localhost xen-4.1.1]# chkconfig --add xend

[root@localhost xen-4.1.1]# chkconfig --add xendomains

[root@localhost xen-4.1.1]# chkconfig --add xencommons

[root@localhost xen-4.1.1]# chkconfig xend on

[root@localhost xen-4.1.1]# chkconfig xendomains on

[root@localhost xen-4.1.1]# chkconfig xencommons on

[root@localhost xen-4.1.1]#

下面是编译安装linux3.0.20内核

然后解压,修改,编译,编译模块,安装模块,安装内核

[root@www ~]# tar xf linux-3.0.20.tar.gz

[root@www ~]# cd linux-3.0.20

[root@www linux-3.0.20]# ls

arch  COPYING  CREDITS  Documentation  Kbuild  Kconfig  MAINTAINERS  Makefile  README  REPORTING-BUGS

root@www linux-3.0.20]# ls

arch     crypto         fs       Kbuild   MAINTAINERS  README          security  virt

block    Documentation  include  Kconfig  Makefile     REPORTING-BUGS  sound

COPYING  drivers        init     kernel   mm           samples         tools

CREDITS  firmware       ipc      lib      net          scripts         usr

[root@www linux-3.0.20]# make menuconfig

找到Device Drivers --->

xen

进入后选择Xen driver support --->

xen

进入以后,将全部选项改成*。在此*表示将该功能编译到内核,M的表示编译成加载模块,空表示不编译到内核中。如下图

xen

接下来就是退出并且保存已修改的项。

[root@www linux-3.0.20]# make && make modules && make modules_install && make install && depmod 3.0.20

这一步遇到了错误,在网上找了诸多解决方案都没有成功,错误如下。

继续阅读