《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



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM