下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
BOCHS使用简单教程作者:如斯BOCHS是一个开源的虚拟机。它可以实现vpc和vmware的大部分功能。你也可以像使用vmware一样的在BOCHS里面安装操作系统。但是,由于它是全模拟的。所以,速度要远远慢于vmware.这样看来BOCHS好像没有什么优势.是这样吗?在应用方面的确如此。但是,在其他一个方面它是处于绝对优势的。那就是它具有调试功能!这是一个让人振奋的功能。这个功能在你调试操作系统或者其他一些在裸机上运行的程序时候,会让你有一种在写windows下运行的应用程序的感觉。有时候它是我们的救命稻草。没了它,也能活,但是肯定要糟糕的多。好了我们开始切入正题。一、配置BOCHS实际上配置BOCHS是很简单的,为什么很多人不会配置呢?我觉的就是因为他使用和配置方式和普通程序不一样——配置文件。实际上配置文件是和ini文件、bat文件类似的。bochs没有给我们提供图形界面的配置工具。这就需要我们自己来修改配置文件。简单的配置就可以让你的操作系统在BOCHS里面跑起来。用BOCHS跑完整的linux和windows是不现实的。实在是太慢了。一般我们也只能把他当成调试器来使用。现在,我们先看一下如何让dos在他里面跑起来。如果你细心的话你会发现在BOCHS文件夹里面有一个bochsrc-sample.txt的文本文件。里面包含了所有了BOCHS参数的信息。这个是官方的教程。可惜是英文的,而且我也没有找到有中文的教程(不然也没有我这篇文章)。在这里我们仅仅介绍最简单的配置选项。好了,废话就不多说了。我们现在就开始。我们以一个例子来说明,这个例子是我用来跑dos以及我自己的小操作系统的。下面就是我们要用到的最基本的选项:#在一行的最前面加上“#”表示这一行是注释行。#内存,以MB为单位,对于dos来说最大可以访问16MB#的内存,所以我就给了他16MB,你可以根据自己的机器来调#整megs:16#下面两句一般是不可以改的,至于干什么用的就不用我说#了。从他们的文件名就可以看出来。romimage:file=../BIOS-bochs-latest,address=0xf0000vgaromimage:file=../VGABIOS-lgpl-latest#这个还用说吗?当然是软驱了,我想我们写操作系统肯定是先#把操作系统放在软盘(或映像)里面吧?在BOCHS里面是可#以使用任意大小的软驱映像的。可以是1.44或2.88,我一般使#用2.88。还有就是BOCHS里面可以使用两个软驱。不过好像#我们并不经常这样做。floppya:2_88=test.img,status=inserted#floppyb:1_44=floppyb.img,status=inserted#下面是硬盘,很简单,还有就是BOCHS也是可以支持多个硬#盘的。那么,硬盘文件是怎么生成的呢?我们可以发现硬盘是#img格式的。你注意没有在BOCHS文件夹里有一个工具叫#bximage.exe,我想你应该猜出来了。他就是用来生成这个硬盘#文件的工具。我在这儿还想说的是硬盘分三种格式的,最好选#用growing类型。这种有一个好处就是节省硬盘空间,不过使用#这种类型的硬盘还需要在下面加上mode=growing这个选项。ata0:enabled=1,ioaddr1=0x1f0,ioaddr2=0x3f0,irq=14ata0-master:type=disk,path="dos.img",cylinders=306,heads=4,spt=17#下面这个就是光驱,没什么好说的。如果你想使用物理光驱,#只要让path=E:(我们假设E盘是光驱)ata0-slave:type=cdrom,path="dos.iso",status=inserted#这个是启动设备,可以使用cdrom(光驱)、c(硬盘)或floppy(软#驱)。#boot:cdromboot:c#boot:floppy#这一句可以不要,他只是指定用来保存日志的文件。如果不指定的#话他就会输出到命令控制台上。log:bochsout.txt#这一句是设置在开机时是否激活鼠标,BOCHS对于鼠标的控制不是#很好。建议如果不是特别需要的话不要激活他。在运行期间也可以点窗口右上角的鼠标图标来激活他。mouse:enabled=0以上这些设置就可以让你的DOS或自己的小操作系统在BOCHS里面跑起来了。至于其他的一些高级支持,你可以查看bochsrc-sample.txt里面的说明。不要害怕他,其实很简单。关键是抛弃恐惧。二、启动BOCHS配置文件已经写好了,硬盘文件等也都已经弄好了。那么我们如何来启动BOCHS呢?很简单,你右击一下上面写的那个配置文件(例如myos.bxrc,注意:扩展名要是.bxrc。)选择“运行”或双击即可。不过我一般都不这样做,我一般是写一个批处理文件。很简单,如下所示:cd"d:\Bochs-2.2.1\dos"..\bochs.exe-q-fbochsrc.bxrc这样做的好处就是无论这个启动脚本放在哪儿都是可以使用的。那么,我们如何进入调试状态呢?下面我们就来讨论这个问题。三、调试功能新建一个批处理文件,写入一下内容:cd"d:\Bochs-2.2.1\dos"..\bochsdbg.exe-q-fbochsrc.bxrc运行这个批处理文件,你就可以进入调试状态了。不过你会发现,程序卡住了。没有想普通运行状态一样进入你的dos操作系统。为什么?因为调试在等待你的命令。你只有给他一个命令他才会继续。我们输入“c”,然后回车。是不是dos已经可是运行了?如果没有运行说明你输入的窗口不对,你不会把c输入到那个没有光标的窗口了吧?如果真是那样我真是服了你了。真的!但是,dos运行起来了,如何在返回调试状态?很简单,按ctrl+c。什么你正在运行的程序被结束了?谁让你在操作系统窗口中按了,我是说在调试窗口按。至于哪个是调试窗口,哪个是操作系统窗口,我就不说了。如果你不知道你就干脆别使用BOCHS了,也不要写什么程序了,更不要开发什么操作系统了。为什么?因为你不可能成功。从这儿就可以看出来。最好是找块豆腐撞死,这样你会很幸福的死去,不然你就会成为教育后代的典范——看到了吗XXX是怎么死的,笨死的。呵呵!开个玩笑。你真要不知道千万不要来找我,找我我也不告诉你。不好意思,我也不知道。那么,在调试状态下我们可以干哪些事呢?你用过debug吗?它能做的BOCHS都能做,它不能做的BOCHS也可以做。下面就是一些常用的调试命令。help我最想告诉大家的是这个指令,因为他可以告诉我们一切。古语说:“授之以鱼,不若授之以渔”。我觉的很有道理。但是,有些人就是不想学这种一劳永逸的方法。所以,我还要继续写下去。输入help,回车。你会得到以下信息:help-showlistofdebuggercommandshelp'command'-showshortcommanddescription-*-Debuggercontrol-*-help,q|quit|exit,set,instrument,show,trace-on,trace-off,record,playback,load-symbols,slist-*-Executioncontrol-*-c|cont,s|step|stepi,p|n|next,modebp-*-Breakpointmanagement-*-vb|vbreak,lb|lbreak,pb|pbreak|b|break,sb,sba,blist,bpe,bpd,d|del|delete-*-CPUandmemorycontents-*-x,xp,u|disas|disassemble,r|reg|registers,setpmem,crc,info,dump_cpu,set_cpu,ptime,print-stack,watch,unwatch,?|calc需不需要我翻译一下前两句?那好吧。help-现实调试命令列表help'命令'-显示某条命令的详细用法。命令分为哪些?很明显,四类:调试控制,运行控制,断点管理,CPU和内存控制。我不想在这儿一一介绍了。没有必要,我只介绍一下最常用的就可以了。c:继续,前面我们已经用过了。s:单步执行。他还有一个扩展用法。sn:执行n步。b0x7c00:在内存0x7c00处设置一个断点.当程序执行到0x7c00处就自动进入到调试状态.后面的这个数指的是内存的线性地址。也可以使用10进制的数,但是好像没有人会这样做。x/200x7c00:以16进制的形式从内存的0x7c00开始显示20个字的数据。这个是很常用的命令,但是需要注意的是他的显示顺序和16进制编辑器中的显示顺序有一点小的区别。他的显示是以字为单位的,而且在字中是从低到高显示的.不过也没有什么大不了的。你只要稍微注意一下就可以了。dump_cpu:这个是我最长用的三个指令之一。他的功能是显示现在的寄存器的状态,详细内容类似于:eax:0x00000000,ebx:0x00000000,ecx:0x00000000,edx:0x00000683ebp:0x00000000,esp:0x00000000,esi:0x00000000,edi:0x00000000eip:0x0000fff0,eflags:0x00000002,inhibit_mask:0cs:s=0xf000,dl=0x0000ffff,dh=0xff009bff,valid=1ss:s=0x0000,dl=0x0000ffff,dh=0x00009300,valid=1ds:s=0x0000,dl=0x0000ffff,dh=0x00009300,valid=1es:s=0x0000,dl=0x0000ffff,dh=0x00009300,valid=1fs:s=0x0000,dl=0x0000ffff,dh=0x00009300,valid=1gs:s=0x0000,dl=0x0000ffff,dh=0x00009300,valid=1ldtr:s=0x0000,dl=0x00000000,dh=0x00000000,valid=0tr:s=0x0000,dl=0x00000000,dh=0x00000000,valid=0gdtr:base=0x00000000,limit=0xffffidtr:base=0x00000000,limit=0xffffdr0:0x00000000,dr1:0x00000000,dr2:0x00000000dr3:0x00000000,dr6:0xffff0ff0,dr7:0x00000400cr0:0x00000010,cr1:0x00000000,cr2:0x00000000cr3:0x00000000,cr4:0x00000000u/200x7c00:反汇编内存0x7c00处,反汇编的长度是20。你想不想知道dos的引导程序是什么样子的?执行一下这个命令就可以了。你还可以使用这样的命令u/20cs:0x120a,至于什么意思,我也不说了。现在,我们已经介绍了6条命令了。够了。对于日常应用已经完全够用了。如果你想了解其他命令的用法只要执行一下help“命令名”就可以了(注意,命令上要带有引号)。好了。现在已经把BOCHS的基本功能介绍完了。你是不是感觉BOCHS很简单?对于简单的应用来说,确实如此。但是,想让他支持一些高级功能就有点麻烦了。毕竟它是全模拟的虚拟机,所以在有些方面实现起来并不容易。但是,向网络之类的功能还是可以支持的。你只要看一下bochsrc-sample.txt就知道了。我在这儿就不说了。我还要说的是BOCHS不仅仅可以调试操作系统,还可以调试d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮火灾事故救援流程
- 教育事业质量保障制度
- 医疗服务价格收费合理规范制度
- 简约小清新工作述职报告之创新求变敢为人先
- 全国中职物理力学原理与工程应用考试及答案真题
- 物流场地硬化服务合同
- 护理原则与护理评价
- 甲状腺疾病患者的睡眠管理
- 甲状腺疾病的综合护理模式
- 能服公司防止触电事故技术措施专项考试试题
- 2026年行政执法人员执法资格考试全真模拟试卷及答案(共八套)
- 2026年水发集团有限公司春季校园招聘(137人)农业考试模拟试题及答案解析
- 2026贵州省外经贸集团有限责任公司第一批面向社会招聘32人备考题库带答案详解(夺分金卷)
- 佛山市南海区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 2026年智能制造评估师考试试题及答案
- 讲师培训训练营
- 少年般绚丽二部合唱简谱
- TCEC电力行业数据分类分级规范-2024
- 建设用地报批培训课件
- 三角洲公司员工劳动合同协议
- 初三期中家长会《打破幻想 回归本质》一场没有虚言的家长会课件
评论
0/150
提交评论