(KVM连载)3.3.1 下载KVM源代码

3.3 编译和安装KVM

3.3.1 下载KVM源代码

KVM作为Linux kernel中的一个module而存在,是从Linux 2.6.20版本开始被完全正式加入到内核的主干开发和正式发布代码中。所以,只需要下载2.6.20版本之后Linux kernel的代码即可。当然,如果是学习KVM,推荐使用最新正式发布或者开发中的kernel版本,如果是实际部署到生产环境中,还需要自己选择适合的稳定版本进行足够的功能和性能测试。如果你想使用最新的处于开发中KVM代码,你需要自己下载KVM的代码仓库,本节中就是这样来讲解的。

总的来说,下载最新KVM源代码,主要有如下三种方式:

a.   下载KVM项目开发中的代码仓库kvm.git

b.  下载Linux内核的代码仓库linux.git

c.  打包下载Linux内核的源代码(Tarball[注3]格式)

1.  下载kvm.git

KVM项目的代码是托管在Linux内核官方源码网站http://git.kernel.org上的,可以到上面去查看和下载。该网页上virt/kvm/kvm.git 即是KVM项目的代码,它是最新的功能最丰富的KVM源代码库(尽管并非最稳定的)。目前,kvm.git的最主要维护者(maintainer)是来自Redhat公司的Avi Kivity和Marcelo Tosatti。从http://git.kernel.org/?p=virt/kvm/kvm.git网页可以看到,kvm.git下载链接有如下3个URL可用于下载最新的kvm的开发代码仓库。

git://git.kernel.org/pub/scm/virt/kvm/kvm.git

http://git.kernel.org/pub/scm/virt/kvm/kvm.git

https://git.kernel.org/pub/scm/virt/kvm/kvm.git

这三个URL下载的内容都是完全一致的,根据自己实际情况选择一个下载即可。Linux内核相关的项目一般都使用Git[注4]作为源代码管理工具,KVM当然也是用Git管理源码的。可以使用git clone命令来下载kvm的源代码,也可以使用Git工具的其他命令对源码进行各种管理,这里不详述Git的各种命令,有兴趣的读者可以参考后面的附录“git 常用命令”。

kvm.git的下载方式和过程,为如下命令行所示:

[root@jay-linux ~] cd kvm_demo

[root@jay-linux kvm_demo]# git clone git://git.kernel.org/pub/scm/virt/kvm/kvm.git kvm.git

Initialized empty Git repository in /root/kvm_demo/kvm.git/.git/

remote: Counting objects: 2556717, done.

remote: Compressing objects: 100% (399423/399423), done.

Receiving objects: 100% (2556717/2556717), 517.22 MiB | 11.21 MiB/s, done.

remote: Total 2556717 (delta 2141777), reused 2546109 (delta 2131175)

Resolving deltas: 100% (2141777/2141777), done.

[root@jay-linux kvm_demo]# cd kvm.git

[root@jay-linux kvm.git]# pwd

/root/kvm_demo/kvm.git

2. 下载linux.git

Linux内核的官方网站为http://kernel.org,其中源代码管理网为http://git.kernel.org,可以在那里找到最新的linux.git代码。在源码管理网站上,我们看到有多个linux.git,我们选择Linus Torvalds[注5]的源码库(也即是Linux内核的主干)。在源码的网页http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git 中可以看到,其源码仓库可以也有如下3个链接可用:

git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

这三个URL中源码内容是完全相同的,可以用用git clone命令复制到本地,其具体操作方式与前一种(kvm.git)的下载方式完全一样。

3. 下载Linux的Tarball

在Linux官方网站(http://kernel.org/)上,也提供Linux内核的Tarball文件下载;除了在其首页上点击一些Tarball之外,也可以到如下网址下载Linux内核的各个版本的Tarball。

kernel.org还提供一种rsync的方式下载,此处不详细叙述,请参见其官网首页的提示。

以用wget下载linux-3.4.1.tar.gz 为例,有如下的命令行代码:

[root@jay-linux kvm_demo]# wget http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.4.1.tar.gz

--2012-06-05 23:06:26--  http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.4.1.tar.gz

Resolving www.kernel.org... 149.20.20.133, 149.20.4.69

Connecting to www.kernel.org|149.20.20.133|:80... connected

Length: 101055487 (96M) [application/x-gzip]

Saving to: “linux-3.4.1.tar.gz”

 

100%[============================================================================>] 101,055,487 9.13M/s   in 11s

 

2012-06-05 23:06:37 (8.79 MB/s) - “linux-3.4.1.tar.gz” saved [101055487/101055487]

[root@jay-linux kvm_demo]# ls -l

total 98692

drwxr-xr-x 24 root root      4096 Jun  5 23:05 kvm.git

-rw-r--r--  1 root root 101055487 Jun  5 02:36 linux-3.4.1.tar.gz

[root@jay-linux kvm_demo]# tar -zxf linux-3.4.1.tar.gz

[root@jay-linux kvm_demo]# ls -l

total 98696

drwxr-xr-x 24 root root      4096 Jun  5 23:05 kvm.git

drwxrwxr-x 23 root root      4096 Jun  1 15:18 linux-3.4.1

-rw-r--r--  1 root root 101055487 Jun  5 02:36 linux-3.4.1.tar.gz

4. 通过kernel.org的镜像站点下载:

由于Linux的源代码量比较大,如果只有美国一个站点可供下载,那么可能会速度较慢,服务器压力也较大。所以,kernel.org在世界上多个国家和地区都有一些镜像站点,而且,一些Linux开源社区的爱好者们也自发建立了不少kernel.org的一些镜像,在中国的镜像站点中,如下两个镜像站点推荐给大家下载Linux相关的代码及其他源码(本书写作之时,它们并没有提供git形式的代码仓库kvm.git或linux.git的下载),访问速度比较快。

其中一个是清华大学开源镜像站:http://mirror.tuna.tsinghua.edu.cn/;其中的如下链接地址与http://www.kernel.org/pub/linux/kernel/就是同步的,用起来比较方便。

http://mirror.tuna.tsinghua.edu.cn/kernel/linux/kernel/

另外一个推荐镜像是北京交通大学的一个开源镜像站,链接如下:

http://mirror.bjtu.edu.cn/kernel/linux/kernel/

另外,还有如下两个镜像站可以推荐给大家参考:

网易开源镜像站:http://mirrors.163.com/

搜狐开源镜像站:http://mirrors.sohu.com/

(在2012年时,网易和搜狐的两个镜像站主要提供了一些Linux发行版的ISO及其软件仓库,而没有提供linux kernel的源码下载。)

master

Stay hungry, stay foolish.

4 Comments

  1. 好像这里有点笔误:

    3.3.1 下载KVM源代码
    KVM作为Linux kernel中的一个module而存在,是从Linux 2.6.20版本开始被完全正式加入到内核的主干开发和正式发布代码中。所以,#从#只需要下载2.6.20版本之后Linux kernel的代码即可。

    • 非常谢谢啊!~ 那是笔误了;我在审稿时也发现了,不过没有更新到博客中。

  2. 楼主,git clone 肯定很慢,而且下载下来1个多G,为什么不采用yum安装的方式呢

    • yum里面的src可能会比较老;这里git clone只是一个选择;我也提到了,可以直接下载tar.gz包。

发表评论

邮箱地址不会被公开。 必填项已用*标注

*