zl程序教程

您现在的位置是:首页 >  系统

当前栏目

随想录(qemu仿真linux kernel)

Linux 仿真 Kernel 随想录 QEMU
2023-09-27 14:27:11 时间

 

【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱: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, 怎么办?

 

    客户端: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,真的很有意思。

 

ps:

    1, absurd上面也有关于qemu测试kernel很好的资料https://blog.csdn.net/absurd/article/details/78984244

    2, 如果需要切换uboot和kernel,可以直接用gdb file命令执行

    3, qemu也可以仿真第三方的操作系统,比如rtos、vxworks、freertos等等