天天看點

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

這一步遇到了錯誤,在網上找了諸多解決方案都沒有成功,錯誤如下。

繼續閱讀