Qemu in Ubuntu 12.04

各种原因之下,我糊里糊涂的进了system的实验室,所以也只能硬着头皮从零开始学起。最近手头的项目需要深入System Kernel进行修改,所以首要的任务就是读懂Kernel的Source Code。无奈我真的是缺少太多的相关Background,所以在看了一周的代码之后进展甚微。在实验室里百般的求助之后,我决定尝试debug the kernel when booting。所以我需要学习如何在我的Ubuntu系统下使用Qemu + gdb来Debug Kernel。在此记录遇到的相关问题,以备将来参考。


安装Qemu:

参考了网上的众多资料之后,菜鸟的我还是决定用 sudo apt-get install qemu这个我认为最简单的方法来安装Qemu。安装过程倒是挺顺利的,可是安装之后系统却显示没有qemu命令:

cici@ubuntu:/usr/bin$ qemu
No command 'qemu' found, did you mean:
 Command 'qtemu' from package 'qtemu' (universe)
 Command 'aqemu' from package 'aqemu' (universe)
qemu: command not found

在查看bin文件夹的内容之后, 才发现里面只有

cici@ubuntu:/usr/bin$ qemu
qemu-x86_64         qemu-ifdown         qemu-nbd
qemu-io             qemu-ifup           qemu-system-i386
qemu-ga             qemu-img            qemu-system-x86_64
qemu-i386

据我理解,其中的qemu-system-i386对应的是32 bits,而qemu-system-86_64对应的是64 bits。所以原本的qemu命令就被这二者取代了。为了方便使用,可以用ln命令建立两个软链接:

sudo ln -s /usr/bin/qemu-system-i386 /usr/bin/qemu32
sudo ln -s /usr/bin/qemu-system-x86_64 /usr/bin/qemu64

但是其他有关qemu的命令各自是什么意思呢?上网查了一下,结论是:

   qemu-i386,qemu-x86_64,qemu-system-i386,qemu-system-x86_64都是启动虚拟机的命令,区别在于前两个仅仅模拟CPU,后两个则是用于模拟整个PC。

   qemu-img命令则是用于管理虚拟机磁盘镜像的。值得注意的是,创建磁盘映像相当于给一台电脑加上一个硬盘,如果里面没有内容的话,启动这个虚拟机是找不到可引导设备的。所以我觉得qemu环境可以理解为一台虚拟的电脑,上面可以存很多的操作系统镜像文件,用不同的文件可以启动不同的Guest OS。

   另外,所有的命令对应的都是一个二进制文件,也就是相应代码编译后的可执行文件。

本文出自 “Reminding” 博客,谢绝转载!

你可能感兴趣的:(debug,ubuntu,kernel,qemu)