【OS学习笔记】七 Bochs的下载、安装和配置

article/2025/10/21 9:21:47

参考:《X86汇编语言-从实模式到保护模式》-李忠。纯学习笔记,更详细内容请阅读正版书籍。

1 开源的BOCHS虚拟机软件

Bochs是开源软件。它用软件来模拟处理器取指令和执行指令的过程,以及整个计算机硬件。当它开始运行时,就直接模拟计算机的加电启动过程。正是因为如此,它才可能对我们的程序进行调试。因为我们的程序是在没有操作系统的环境下直接交给处理器处理的。

很重要的一点是,它本身就是一个虚拟机,类似于VirtualBox。因此,它也就很容易让你单步跟踪硬盘的启动过程,查看寄存器的内容和机器状态。

2 BOCHS软件的下载和安装

要使用Bochs,首先要从它的官网下载安装程序。下载地址是:

http://sourceforge.net/projects/bochs/files/bochs/

打开这个网络链接后,将出现图1所示的网页,该网页显示了Bochs软件的所有历史版本。一般来说,应当选择最新的版本下载,比如图中所示的2.6版。
在这里插入图片描述

Bochs的每一个版本都是针对不同平台开发的。因此,当你选择了一个版本后,将进入另一个页面,允许你选择一个适用于自己当前机器的安装程序。如图2所示。

在这里插入图片描述

从图中可以看出,Bochs虚拟机的安装程序很小,只有几兆字节,而且Windows用户的下载量最多。别人下载什么我们也下载什么,这总是不会错的,因此,我们就下载Bochs-2.6.exe。

下载工作完成后,剩下的就是运行该安装程序,将Bochs软件安装到你的计算机上。如果你的操作系统是Windows 7,那么安装程序运行时,将出现一个安全提示。不要理会它,继续运行安装程序即可。

3 BOCHS虚拟机的配置

如图3所示,在Bochs的工作文件夹(取决于实际安装的位置,该位置在安装的过程中可以选择和指定)下,有两个程序,分别是bochs.exe和bochsdbg.exe。我们说过,Bochs是虚拟机软件,可以作为类似于VirtualBox的虚拟机来使用。在这种情况下,你应当使用bochs.exe。相反,如果你希望用Bochs来调试程序,那么,应当使用bochsdbg.exe,它的意思是“Bochs调试”(Bochs Debuger)。
在这里插入图片描述

因为是要调试程序,所以我们应当运行bochsdbg.exe程序。每当该程序运行时,都会出现如图4所示的起始界面。

在这里插入图片描述

和VirtualBox一样,Bochs也只是一台虚拟的计算机。因此,它需要做一些配置工作,比如,设置内存的大小、硬盘的数量和类型,等等。相对于VirtualBox,Bochs可以自定义的项目更多些。

在第一次使用Bochs时,一定要做一些设置工作。

Bochs可以提供一些默认的设置,这些默认的软、硬件参数对调试本书的程序来说已经足够。因此,我们仅仅设置一下硬盘参数就可以了。如图5所示,在“Bochs Start Menu”窗口中,双击“Edit Options”列表框中的“Disk & Boot”,该项目用于设置磁盘和计算机启动的参数。双击之后,将弹出另一个界面,该界面上有6个标签页,分别是“Floppy Options”、“ATA channel 0”、“ATA channel 1”、“ATA channel 2”、“ATA channel 3”和“Boot Options”。

“Floppy Options”是和软磁盘驱动器有关的设置。软磁盘在历史上曾经是非常标准和流行的配置,现在已经基本绝迹,所以,可以不用管它。

ATA是很多人熟悉的硬盘接口标准,PATA就是我们以前使用的IDE接口,SATA是当前正在流行的新标准。每台计算机可以有两个以上的ATA通道,以插接多块硬盘和光盘驱动设备。对于每台计算机来说,“ATA channel 0”总是必备的,因此我们一会儿就来设置它。

“Boot Options”是和计算机启动有关的选项,主要用于指定先从哪个设备(硬盘或光盘驱动器)启动。

先来设置主硬盘。单击“ATA channel 0”,此时,如图5-19所示,将在该标签页的内部出现另一个标签页。其中,“ATA channel 0”页面用于选择是否开启该通道,一般默认是选择开启,不用管它;每个磁盘通道可以有两块磁盘设备,一主一副。因此,“First HD/CD on channel 0”页面用于设置该通道的主盘类型,“Second HD/CD on channel 0”页面用于设置该通道的副盘类型。

如图中所示,单击“First HD/CD on channel 0”标签页,设置主硬盘。按图中所示,应当先勾选“Enable this device”(允许该设备)。

和VirtualBox一样,Bochs虚拟机可以使用文件来模拟物理上的硬盘设备。尤其是,它可以接受VHD虚拟硬盘文件格式。

在这里插入图片描述

一般来说,你会选择VirtualBox虚拟机来观察运行结果,调试程序时使用Bochs。因此,最好是它们共用同一个虚拟硬盘文件。为此,如图中所示,在“Path of physical device name”一栏中,选择VirtualBox所使用的VHD文件,具体的位置依你的实际情况而定。

因为使用的是VHD硬盘文件,所以,要在“Type of disk image”一栏中选择“vpc”。毕竟,VHD文件格式是微软为Virtual PC定制的。

即使是指定了“VPC”的磁盘格式,并给出了虚拟硬盘文件,该界面也不会自动检测出该硬盘的参数来。因此,如图中所示,还需要手工给出该磁盘的柱面数、磁头数,以及每磁道扇区数。如果你选用的是配书软件包中的LEECHUNG.VHD文件,可以照图中所示的参数填写。否则,你应该先用FixVhdWr.exe程序得到VHD的参数,然后填写到这里。

在这里插入图片描述

设置了一块硬盘之后,并意味着配置任务的结束。想想看,一台计算机可以配备好几块硬盘和光盘驱动器,到底在加电之后,从哪块磁盘启动计算机呢?

如图6所示,还要打开“Boot Options”标签页,设置启动参数。
“Boot drive #1”首选的启动设备。应当选择“磁盘”,即选择“disk”。磁盘分软盘和硬盘,但软盘已经不再使用,所以,应当按图中所示,跳过软盘启动信号检查。即,勾选“Skip Floppy Boot Signature Check”。

最后,我们没有安装任何操作系统,所以在“Which operation system?”一栏选择“none”,意思是没有。

一旦做完了以上工作,可以点“确定”按钮返回到图4的启动界面。在那个界面上,我们应当单击“Save”按钮,来保存以上的设置参数。

如图7所示,Bochs会弹出一个对话框,让你选择一个配置文件名,以及该文件将被保存的位置。
在这里插入图片描述

Bochs提供了一个默认的文件名“bochsrc.bxrc”,应当保持这个名字不变。同时,如图中所示,要将该文件保存的位置指定到Bochs的安装文件夹。之所以这样做,是因为,每次当Bochs启动时,它都会在自己的工作目录下寻找默认的配置文件。

至此,Bochs的下载、安装和配置工作就完成了。

每次Bochs启动时,都会出现图4的启动界面。不要管它,只需直接单击“Start”即可,Bochs会自动在其工作目录下找到默认的配置文件,并按那里面的参数启动。

Bochsdbg启动后,你就可以做调试工作了。具体的调试方法,参见书中的描述。


http://chatgpt.dhexx.cn/article/wDI87kL0.shtml

相关文章

emulator教程 lbochs pc_bochs模拟器怎么用?bochs模拟器安装使用教程

bochs模拟器怎么用呢?你是否还在xp系统停止服务而惋惜呢?那就来系统天堂看看bochs模拟器安装使用教程吧。bochs模拟器能够把xp系统装进手机或者平板电脑哦;具体bochs模拟器怎么用我们一起来学习一下。 我们先来了解一下bochs是什么: Bochs是一个x86硬件平台的开源…

bochs core教程linux,ubuntu14.04中安装配置bochs详解(二)

这里面又很有用的东西。。 上一篇主要说安装的事情,安装成工的标志就是在命令行中有bochs这个程序,来张图片: 有这个界面的话就说明安装成功了。。。 接下来要干的事就是制作软盘和配置了,如果配置不成功的话,选6进去以…

bochs的安装和配置

参考书籍:《操作系统 真象还原》 书上使用的是bochs-2.6.2.tar.gz。是2013的版本,老旧老旧了,我不使用。 我的系统是Ubuntu18.04。 这篇文章的安装教程并不能正常运行。(只能清楚的熟悉配置文件位置信息等) 对于我而言…

bochs2.7安装

Bochs安装 谨以此篇博客记录长达一个星期之久的bochs安装之旅 实测Ubuntu18.04及Ubuntu20.04均可通过自带软件仓库顺利安装并使用,安装指令,远离折腾烦恼 sudo apt-get install bochs bochs-x问题 选用系统:debian11 debian11自带软件仓库…

Windows10下安装使用Bochs-2.6.11

1 环境说明 1.1 下载安装Bochs-2.6.11: 官网:http://bochs.sourceforge.net/ 。 下载:https://sourceforge.net/projects/bochs/files/bochs/ 。 1.2 安装centos7 使用centos7来编译汇编程序。 安装nasm: yum -y install nas…

安卓bochs安装linux教程,Ubuntu 14.04 LTS 安装和配置Bochs

系统是:Ubuntu 14.04 LTS 64位 安装的是:bochs-2.6.8 Bochs 需要在 X11 环境下运行,因此你的 Linux 系统必须已经安装了X Window 系统才能使用Bochs。 因为 Bochs 是用C写的,所以这里要安装GNU gcc/g编译器。 安装命令如下: sudo apt-get ins…

安卓bochs安装linux教程,Ubuntu环境下安装Bochs

首先说一下我的Ubuntu版本,敲命令 sudo lsb_release -a 就可以看到 No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.3 LTS Release: 14.04 Codename: trusty 所以,我的Ubuntu版本是14.04 也可以用 cat /etc/issue 查看…

bochs运行xp_bochs模拟器xp系统镜像安装教程及注意事项

bochs模拟器xp系统镜像安装教程前面系统天堂小编已经为你详细介绍了,下面系统天堂小编就给你带来bochs模拟器xp系统镜像安装教程及一些注意事项,希望你能喜欢。 bochs模拟器xp系统镜像安装教程: ps:有两个xp镜像,一个是…

bochs简单使用

1、安装 指令安装 sudo apt-get install vgabios bochs bochs-x bximage 源码安装,如果不需要调试功能configure后不用加选项,源码包下载地址 tar vxzf bochs-xxx.tar.gzcd bochs-xxx./configure --enable-debugger --enable-disasmmakemake install 2、…

Bochs下载安装

文章目录 下载Bochs配置Bochs Bochs Bochs是一个x86硬件平台的开源模拟器。它可以模拟各种硬件的配置。Bochs模拟的是整个PC平台,包括I/O设备、内存和BIOS。更为有趣的是,甚至可以不使用PC硬件来运行Bochs。事实上,它可以在任何编译运行Boch…

使用Bochs写Hello world

Day 1:配置Bochs以及调试模式 一 环境预备 Bochs的安装很简单,我们只需要去官网下载即可。http://bochs.sourceforge.net/ 为了使用Linux命令行,我们可以安装WSL,也可以安装Cygwin(我的选用) 安装NASM。…

Bochs编程环境安装

Bochs编程环境安装 写在前面 为了更好的记录自己学习过程以及踩过的坑,记录一下《操作系统真相还原》的编程环境安装。 安装过程参考了CSDN的这篇博客:安装Vmware Station 安装Ubuntu 装载配置Bochs 1. 本地安装环境 本机系统:win10 64位专…

Bochs安装

近期,准备跟着《一个64位操作系统的设计与实现》干点正事儿。第一步就是安装bochs。书里写得太简略,网上太杂,我自己记录一下自己安装的流程,希望对看到的人有帮助。 sudo apt-get install build-essential sudo apt-get install…

bochs基础使用

bochs 1、安装 sudo apt-get install bochssudo apt-get install bochs-x2、编写文件 vim boot.asmorg 07c00h ; 告诉编译器程序加载到 7c00处 mov ax, cs mov ds, ax mov es, ax call DispStr ; 调用显示字符串例程 jmp $ ; 无限循环 Dis…

Bochs简易教程

Bochs是个啥? 简单来说bochs是一个模拟器,能够完整的模拟一台计算机。详细来讲bochs是X86硬件平台的开源模拟器,完全可以通过软件来给我们提供各种所需的硬件资源。 和bochs类似的虚拟机软件还有我们常用的VMware、Virtuabox,但…

虚拟机上安装bochs的过程(保姆级别)

整个过程:(全程开启root权限:1.打开终端;2.输入:su;3输入密码) 1.在虚拟机上有bochs安装包; curl -O https://nchc.dl.sourceforge.net/project/bochs/bochs/2.6.9/bochs-2.6.9.ta…

Windows下Bochs的简单使用

Bochs的安装 安装Bochs后,安装目录如下: 可以用到的东西分为两大类: 应用程序 先说一下bochs.exe、以及bochdbg.exe前者直接运行虚拟机,后者可以从头开始调试。 然后就是bximage.exe,这是一个专门用于生成软盘或者…

gettimeofday/clock_gettime

我们写程序的时候经常会使用计时函数,比如RPC中计算超时时间,日志中打印当前时间,性能profile中计算某个函数的执行时间等。在使用时间函数的时候,我们一般默认认为时间函数本身的性能是很高的,对主逻辑的影响可以忽略…

gettimeofday 函数

使用C语言编写程序需要获得当前精确时间&#xff08;1970年1月1日到现在的时间&#xff09;&#xff0c;或者为执行计时&#xff0c;可以使用gettimeofday()函数。 库为 #include <sys/time.h> 函数原型 int gettimeofday(struct timeval*tv, struct timezone *tz); …

clock_gettime 函数笔记

函数"clock_gettime"是基于Linux C语言的时间函数,他可以用于计算精度和纳秒。 #include<time.h> int clock_gettime(clockid_t clk_id,struct timespec *tp); clk_id : 检索和设置的clk_id指定的时钟时间。 CLOCK_REALTIME:系统实时时间,随系统实时时间改变…