1. 程式人生 > >隨想錄(qemu仿真linux kernel)

隨想錄(qemu仿真linux kernel)

仿真 ram vmlinux 原理 mil ext target init 一段時間


【 聲明:版權全部,歡迎轉載。請勿用於商業用途。 聯系信箱:feixiaoxing @163.com】


算上從研究生開始,自己看kernel的時間不短了。盡管代碼看了不少,原理書也看了不少了,可是總認為理解的不是非常透徹。調試kernel最好能夠像調試普通運行文件一樣,單步運行最好。

前一段時間用了qemu之後,發現用qemu調試kernel還真是方便。


(1)安裝qemu


sudo apt-get install qemu-kvm

sudo apt-get install qemu



(2)編譯kernel


cp /boot/config-3.8.0-19-generic .config

make menuconfig,保存

make bzImage -j4



(3)文件系統直接使用linux發行版自帶的ram文件系統


cp /boot/initrd.img-3.8.0-19-generic initrd.img



(4)仿真kernel, 開始


qemu -kernel bzImage -initrd initrd.img



(5)假設想調試bzImage, 怎麽辦?


client:qemu -kernel bzImage -initrd initrd.img -s -S

gdb : gdb vmlinux

target remote :1234

b start_kernel

c



(6)仿真雙核下的x86環境


qemu -kernel bzImage -initrd initrd.img -smp 2
qemu使用多線程的方法仿真多核,每一個線程代表一個核。

大家全然能夠用調試多線程的方法調試多核x86 cpu,真的非常有意思。




隨想錄(qemu仿真linux kernel)