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