《Linux0.11内核完全注释》读后小结 --- 调试环境的搭建

  1. 先看了 Linux Kernel Development
  2. 再看了 Oreilly-Linux.Device.Drivers.3rd.Edition
  3. 后来看了Linux 0.01 内核分析与操作系统设计
  4. 然后,打算仔细研究 Linux0.11代码

1. 在Linux 4.1.1 上搭建bochs的Linux Kernel 调试环境

  1. 安装bochs

bochs-2.1.1.tar.gz 在需要带with-gdb-stub 编译,但是由于编译器比较新,所以必须在config.h中定义宏 #define PARANOID 

  1. Linux 0.11 编译及虚拟机
  • linux-0.11-081030.tar.gz 这份代码可以在4.1.1上编译运行,并且可以debug。需要修改Makefile和Makfile.header中 CFLAGS  加上 –g。这样生成的tools/system就是完整的符号文件。
  • linux-0.11-for-gcc4.3.2.tar.gz 这份代码应该可以在4.3.2上编译运行,并且可以debug
  • linux-0.11-devel-040329.zip 这是一份带硬盘的bochs linux 0.11的虚拟机,可是试着运行:
  • bochs –f bochsrc-hd.bxrc 启动带硬盘的linux 0.11
  • bootimage-0.11是自带的linux kernel,可以用自己编译的替换之
  • hdc-0.11.img 是自带的硬盘镜像
  1. 安装DDD

可以使用DDD图形界面的GDB,进行调试。

2. 在Ubantu Linux 4.6.1 虚拟机上搭建qemu的Linux Kernel 0.11调试环境

  1. 编译安装Qemu 14.1 (15版本无法使用)
  • 在gcc 4.6 以下编译redhat linux,用linux-0.11-081030.tar.gz 这个,加上-g,然后用hdc-0.11.img进行。

qemu -s -S -hda hdc-0.11.img -kernel ../linux-0.11/Image -append root=/dev/hda

http://www.oldlinux.org/oldlinux/viewthread.php?tid=11074&extra=&highlight=%B5%F7%CA%D4&page=1

qemu -m 16M -boot a -fda Image -hda ../rootfs/hdc-0.11-new.img -S -gdb tcp::1234

  1. 通过编译源代码,可以生成fd的Image, 然后加载OS, 硬盘hdc 用预先组装好的。
  2. 要用eclipse调试的话,很方便,但是必须用galileo版本的eclipse才可以。其他的新版本无法调试,花了半天的时间折腾这个。eclipse调试可以看这篇文章:http://www.linuxidc.com/Linux/2011-08/40882p3.htm


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值