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 源代碼
[root@localhost ~]# ls
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 driver support --->
進入以後,將全部選項改成*。在此*表示將該功能編譯到內核,M的表示編譯成加載模塊,空表示不編譯到內核中。如下圖
接下來就是退出並且保存已修改的項。
[root@www linux-3.0.20]# make && make modules && make modules_install && make install && depmod 3.0.20
這一步遇到了錯誤,在網上找了諸多解決方案都沒有成功,錯誤如下。