• 调试操作系统专用虚拟机Bochs


    当我们编写操作系统时,像编写其他软件一样,都需要一个调试器,Bochs是一个很好的虚拟机,可以用来调试操作系统,完全模拟硬件。

    一、安装

    Bochs的官网是:http://bochs.sourceforge.net/

    可以从网上下载Bochs的源码并解压到一人文件夹,然后转到源码目录,实行如下语句可以编译、安装Bochs。

    1 ./configure --enable-debugger --enable-disasm
    2 make
    3 sudo make install

    ./configure后的参数是为了启用虚拟机的调试功能,我们用这个虚拟机的目录的也就是为了调试自己写的操作系统。

    二、启动

    Bochs是基于配置文件的,Bochs的配置文件一般如下:

    # how much memory the emulated machine will have
    megs: 32
    
    # filename of ROM images
    romimage: file=/usr/share/bochs/BIOS-bochs-latest
    vgaromimage: file=/usr/share/vgabios/vgabios.bin
    
    # what disk image will be used
    floppya: 1_44=freedos.img, status=inserted
    floppyb: 1_44=pm.img, status=inserted
    
    # choose the boot disk
    boot: a
    
    # where do we send log message?
    log: bochsout.txt
    
    # disable the mouse
    mouse: enabled=0
    
    # enable key mapping,using US layout as default.
    keyboard_mapping: enabled=1, map=/usr/share/bochs/keymaps/x11-pc-us.map
    

      在这个配置文件中,我们只需要注意

    floppya: 1_44=freedos.img, status=inserted
    

      和

    boot: a
    

      这两条语句即可,freedos.img是一个软件盘映像,第一条语句的意思是在软盘驱动器A中插入了一个软盘,而这个软盘就是那个软盘映像 *.img,第二语句是指从软盘驱动器A启动系统。如果此时软盘中有我们写的操作系统,就可以启动我们的操作系统了。

    要启虚拟机,只要转到配置文件所在的目录,执行如下语句

    bochs
    

      Bochs就会启动并在当前目录下按顺序寻找如下的默认配置文件

    .bochsrc
    bochsrc
    bochsrc.txt
    bochsrc.bxrc( 仅对Windows有效)
    

      所以配置文件名必须为上述文件名之一。

    如果虚拟机被编译为启用调试功能,执行“bochs”指令后还会出现一个文字菜单供选择,如果想略过这个步骤,可以在“bochs”后加个参数,如下

    bochs -q
    

      

    三、用Bochs调试操作系统

    当虚拟机启动后,会在第一条指令执行前暂停下来,在PC中一般在f000:fff0地址处,这个地址所对应的指令是jmp far f000:e05b,控制台的输出如下

    (0) [0x00000000fffffff0] f000:fff0 (unk. ctxt): jmp far f000:e05b         ; ea5be000f0
    

      此时只要输入“s”再回车就可以执行这条指令,如果想要程序流一直执行下去直到断点才停,可以输入“c" 再回车,程序执行后将停在断点处。设置断点方法如下

    b 0x7c00
    

      表示在地址为0x7c00处设置一个断点,指令执行到地址为0x7c00处将暂停。

      "n"也是单步执行指令,但遇到函数后将跳过函数体,不会单步进入函数中。

    更详细的信息可查阅Bochs的帮助文档。

    四、编译时的其他选项

    ./configure –enable-cdrom \
    –enable-debugger \
    –enable-disasm \
    –disable-readline \
    –enable-sb16 \
    –enable-ne2000 \
    –enable-vbe \
    –enable-all-optimizations \
    –enable-cpu-level=6 \
    –enable-sse=2 \
    –enable-3dnow \
    –enable-vme \
    –enable-sep \
    –enable-x86-debugger \
    –enable-pci \
    –enable-pcidev \
    –enable-clgd54xx \
    –enable-usb \
    –enable-plugins \
    –with-wx \
    

      如果不喜欢控制台的字符操作,可以加个"--with-wx"这个配置,启用图形界面

    /configure --enable-debugger --enable-disasm --with-wx
     make
     sudo make install
    

      

    .

  • 相关阅读:
    山东省网络安全技能大赛 部分writeup
    网络安全实验室--SQL注入关
    PHP命令执行与防范
    练习平台,学习网站
    实验吧 简单的SQL注入1
    网络安全相关书籍
    Redtiger SQL注入练习(一)
    Redtiger SQL注入练习(二)
    南邮。。。综合题
    实验吧:让我进去
  • 原文地址:https://www.cnblogs.com/teafree/p/2199848.html
Copyright © 2020-2023  润新知