隨想錄(qemu仿真linux kernel)
【 聲明:版權全部,歡迎轉載。請勿用於商業用途。 聯系信箱: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)