zhouer 发表于 2017-6-25 16:04:12

随想录(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,真的非常有意思。
  

  

  
页: [1]
查看完整版本: 随想录(qemu仿真linux kernel)