您的位置:首页 > 运维架构 > Linux

QEMU使用上手

2015-03-18 19:59 120 查看

简单说一下个人对qemu的认识

qemu是一个夸平台的虚拟机软件,可以实现在一个指令集平台上仿真运行另一个指令集的程序,比如可以在x86的平台上仿真运行ARM平台的软件和程序。使用qemu可以直接运行其他平台的用户态软件,这个称为用户态模式;qemu同时能够仿真(虚拟化)一个CPU的执行环境以运行OS级别的软件,这个称为系统模式。后面讨论只关注qemu的系统模式。
qemu最为大家熟知的还是qemu+kvm的使用模式,这种情况下kvm作为qemu中的一种指令翻译手段,可以实现硬件支持的虚拟化功能。随着x86,ARM等平台对硬件虚拟化的支持,这种模式会越来越常见。这种模式作为一种开源的虚拟化解决方法,用来对抗XEN,VMWARE等其他的虚拟化解决方案。
        我接触最多的还是上面的第1种。个人感觉这种使用方法给我带来的好处是可用使用gdb调试linux内核。闲话不说,开搞。

        首先是获取qemu的代码了,可以载官方的网站上下载,推荐使用git

git clone git://git.qemu-project.org/qemu.git
          然后git tag可以看到qemu发布的每个版本都有打tag,如果想checkout出2.2.0版本的代码,可以使用如下的命令

git checkout -b qemu-2.2.0 v2.2.0       如果们想变编译出支出x86_64和arm系统模式的qemu,可以使用如下的命令
./configure --target-list=arm-softmmu,x86_64-softmmu
make -j8<span style="font-size:18px;">
</span>
       配置编译过程遇到的问题请自行解决。推荐使用ubuntu系统,遇到的问题可能会少很多。编译完成之后可执行文件的位置如下:


编译构建vexpress的linux系统

        网络上有很多介绍使用qemu的文章,个人觉得对于一个程序员来说,非常的重要一点是从远吗构建自己所要的系统,如果要研究源码的话,从源码构建自己所要的系统就更重要。说白了,你都不知道怎么使用一个工具,你怎么能研究它?

       这里推荐大家一个软件,buildroot,到官网下载解压就可以了,都是一堆脚本,可以从源码构建一个嵌入式系统(支持mini2440哦,感兴趣的兄弟可以研究)。对于我们的目的(可以载虚拟机上运行vexpress平台的linux内核和文件系统),两个命令就可以搞定

      当然了,时间这依赖于你的网速。。。。。

      你还可以执行make menuconfig 对你的系统进行配置:

      如果一切顺利,在buildroot的根目录下会出现一个output目录,该目录下有你所要的一切,源码

        交叉编译工具链,

        镜像

         如果感觉不爽了,该代码,改脚本,重新编译,重新构建,反正代码都有了,怕什么。

使用qemu运行构建的系统

         这个也有现成的可以参考,如图:

        多研究研究buildroot,会发现buildroot支持很多的东西!

        最后秀一下本人的运行脚本与效果

        运行脚本

        效果

          上图就是虚拟机的运行效果,vexpress平台使用的cortex-a9处理器,最多支持4个核。这个相当于你免费有了一套cortex-a9的多核开发板,是不是很给力!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息