3.2 Bochs
Bochs
工具
bochs: bochs
ubuntu安装配置Bochs
- 安装bochs
sudo apt-get install bochs bochs-x
- 创建工程目录
创建工程目录并进入
- 新建并修改配置文件
在工程目录下新建bochsrc.me文件
$ vim bochsrc.me
cpu: model=core2_penryn_t9600, count=1, ips=50000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
cpu: cpuid_limit_winnt=0
memory: guest=512, host=256
## vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest
mouse: enabled=0
pci: enabled=1, chipset=i440fx
private_colormap: enabled=0
floppya: 1_44=/dev/fd0, status=inserted
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
ata0-master: type=disk, mode=flat,path="build/ratsos.img"
boot: disk
floppy_bootsig_check: disabled=0
log: bochsout.txt
panic: action=ask
error: action=report
info: action=report
debug: action=ignore, pci=report # report BX_DEBUG from module 'pci'
debugger_log: -
parport1: enabled=1, file="parport.out"
#sound: driver=default, waveout=/dev/dsp. wavein=, midiout=
#speaker: enabled=1, mode=sound
Bochs使用
1. 运行
进入工程目录
输入 bochs命令运行
进入选择命令行,输入6启动模拟器
2. 创建硬盘镜像
bximage -mode=create -hd=128M -imgmode=flat -q icyos.img
3. 根据配置文件运行
命令如下:
bochs -f bochsrc.me
4. Bochs调试
| 命令 | 说明 |
|---|---|
| blist | 显示所有断点信息 |
| pb [物理地址] | 设置断点,以物理地址方式 |
| vb [虚拟地址] | 设置断点,以虚拟地址方式 |
| lb [线性地址] | 设置断点,以线性地址方式 |
| d [断点号] | 删除断点 ,断点号根据blist查询 |
| c | 继续执行,跳到下一个断点/ |
| s [N] | 单步执行 |
| n | 单步执行(跳过call函数内部 ) |
| q | 退出 |
显示信息
| 命令 | 说明 |
|---|---|
| show mode | 显示模式切换 |
| show int | 显示中断 |
| show call | 显示call调用 |
| trace on | 显示指令反编译 |
| info ivt | 显示ivt(中断向量表)信息 |
| info idt | 显示idt(中断描述符表)信息 |
| info gdt | 显示gdt信息 |
| info ldt | 显示ldt信息 |
| info tss | 显示tss信息 |
| info tab | 页表映射 |
| reg | 通用寄存器信息 + 标志寄存器 + eip寄存器信息 |
| sreg | 段寄存器信息 |
| creg | 控制寄存器信息 |
| dreg | 调试寄存器信息 |
| print-stack N | 堆栈信息 |
内存信息
| 命令 | 说明 |
|---|---|
| xp /nuf [物理地址] | 显示物理地址处内容,例如:xp /16 0xa0000 |
| x /nuf [线性地址] | 显示线性地址处内容 |
| setpmem | |
| page | |
3.2 Bochs的更多相关文章
- 《一个操作系统的实现》学习笔记(一) bochs源码安装及配置
前言:本机环境ubuntu 14.04 bochs 2.4.5 一.下载 官网 http://bochs.sourceforge.net/ 二.安装 1.将下载好的压缩包解压并进入该目录 .tar.g ...
- bochs上网及配置
下载并安装bochs2.6:(不能是更高版本) 创建bochs 时注意勾选Dlx linux Demo,但是其文件bochsrc.bxrc中无Ne2k网卡选项,这一段要自己添加,详情见后. 先确定我们 ...
- 虚拟机软件bochs编译使用问题
bochs是一款具有调试功能的虚拟机软件,由C++编写,可用于调试操作系统.从ubuntu软件源中下载的很可能没有调试功能,需要先下载源码,可能比编译之后的可执行文件大的多. 编译时有很多选项,可以通 ...
- 【Bochs 官方手册翻译】 第一章 Bochs介绍
Bochs 是一个可以完全模拟 Intel x86 计算机的虚拟机系统.它包含了 Intel x86 CPU 仿真.常见设备仿真.以及定制 BIOS.Bochs 可以虚拟多种不同类型的 x86 CPU ...
- ubuntu 安装bochs
//首先官网下载bochs源码wget http://bochs.sourceforge.net/svn-snapshot/bochs-20150503.tar.gz//然后解压 tar vxzf b ...
- Linux Mint下编译Bochs
我在Linux Mint命令行下输入sudo apt-get install bochs安装之后发现这个没有安装gui界面,使用也存在一些问题,所以直接删掉从官网下载代码自己编译安装. 给Linux ...
- Bochs使用说明
简介 关于Bochs的介绍:http://en.wikipedia.org/wiki/Bochs Bochs的官网:http://bochs.sourceforge.net/ 这里记录如何在Windo ...
- bochs安装一系列问题
http://blog.chinaunix.net/uid-23817499-id-3418083.html http://www.mouseos.com/os/tools/bochs.html ...
- Ubuntu系统安装配置Pintos和Bochs
Ubuntu系统安装配置 Pintos 和 Bochs 安装过程 首先是UEFI启动模式下Win8.1安装Ubuntu14.04双系统,由于篇幅过长,就不在这里详写.可见博主的另一篇博客http:// ...
- 64位Ubuntu 13.04 安装Bochs 2.3.5
bochs 2.3.5源码编译 网上编译bochs的资料非常多,基本的问题都有解决方案,我重点讲不常见的问题. 基本安装步骤 tar vxzf bochs-2.3.5.tar.gz cd bochs- ...
随机推荐
- 响应式布局与bootstrap框架
原文 网页布局方式 1.固定宽度布局:为网页设置一个固定的宽度,通常以px做为长度单位,常见于PC端网页. 2.流式布局:为网页设置一个相对的宽度,通常以百分比做为长度单位. 3.栅格化布局:将网页宽 ...
- 如何在Virtualbox中对Ubuntu系统根分区扩容
转载: 参见博客: https://blog.csdn.net/LEON1741/article/details/56494797 前在Virtualbox中安装了一个Ubun ...
- Effective java 系列之避免过度同步和不要使用原生态类型,优先考虑泛型
避免过度同步(67):在一个被同步的方法或代码块中,不要调用哪些被设计成被覆盖的方法或者是由客户端以函数对象的形式提供的方法(21). 有点拗口,书上提供的创建者与观察者模式,add方法太多,看得眼花 ...
- LeetCode--255--用队列实现栈(java版)
使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空 注意: 你只能使用队列的基本操作 ...
- Android 如何更改一个 imageview的颜色
xml中可以使用tint属性 tips:这里的图片必须是png格式的文件才行,不然你得到的就是一个被纯色覆盖的图 java中 使用 imageView.setColorFilter(Color.WHI ...
- caffe---mnist数据集训练与测试
1.数据.mnist_test_lmdb和mnist_train_lmdb数据 2.路径. (1)修改lenet_train_test.prototxt文件,训练和测试两处 source: " ...
- uWSGI和Gunicorn
因为nginx等优秀的开源项目,有不少本来不是做服务器的同学也可以写很多服务器端的程序了.但是在聊天中会发现,大家虽然写了不少代码,但是对wsgi是什么,gunicorn是什么,反向代理又是什么并不了 ...
- Routing a Marathon Race
直接爆搜的复杂度是2^n,对于n<=40的数据过不了. 考虑优化一下. 发现如果走了一个点后,以后是不可能再经过与它相邻的点的,因为这样走显然不如直接走那个与它相邻的点. 这样每走一步就可以删掉 ...
- Symmetric Tree leetcode java
问题描述: Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). ...
- 浅谈cookie、session
揭秘Cookie: cookie说的直白点就是保存在用户浏览器端的一个键值对,举个例子,你现在登录了京东商城,你把浏览器关闭之后,你再打开京东,你还是可以对你的账户继续操作,已经购买的商品,订单都是可 ...