Bochs下载安装

article/2025/10/21 9:41:23

文章目录

  • 下载Bochs
  • 配置Bochs

Bochs

Bochs是一个x86硬件平台的开源模拟器。它可以模拟各种硬件的配置。Bochs模拟的是整个PC平台,包括I/O设备、内存和BIOS。更为有趣的是,甚至可以不使用PC硬件来运行Bochs。事实上,它可以在任何编译运行Bochs的平台上模拟x86硬件。通过改变配置,可以指定使用的CPU(386、486或者586),以及内存大小等。一句话,Bochs是电脑里的“PC”。根据需要,Bochs还可以模拟多台PC,此外,它甚至还有自己的电源按钮。

《摘自百度百科》

实验环境:ubuntu18.04+VMware

下载Bochs

Bochs下载链接:

  • https://sourceforge.net/projects/bochs/files/bochs/2.6.8/bochs-2.6.8.tar.gz/download

下载解压后

在这里插入图片描述

进入文件夹bochs-2.6.8中

cd bochs-2.6.8/

在命令行中输入以下内容

./configure \
--prefix=/home/cooiboi/bochs \
--enable-debugger \
--enable-disasm \
--enable-iodebug \
--enable-x86-debugger \
--with-x \
--with-x11

笔者这里的虚拟机环境较为齐全~

在这里插入图片描述

【补充】虚拟机中之前没有安装相应环境的可以先运行下面的代码

apt-get -y install gcc
apt-get install build-essential
apt-get install g++

之后在命令行中输入make

在这里插入图片描述

接着,输入sudo make install

在这里插入图片描述

这里多了的两个bin文件和share文件夹在/home/cooiboi/bochs目录下。

在这里插入图片描述

配置Bochs

完成下载后,我们需要配置Bochs,Bochs是通过配置文件完成的。

在这里插入图片描述

进入到/home/cooiboi/bochs目录下。

在这里插入图片描述

bin目录下会看到bximage和bochs两个文件,其中bximage是我们配置启动盘时的核心。

接下来开始配置!!!

首先,进入bin目录

(base) user@ubuntu:/home/cooiboi/bochs$ cd bin
(base) user@ubuntu:/home/cooiboi/bochs/bin$ ls
bochs  bximage
sudo vim bochsrc.disk

修改后的配置文件代码

bochsrc.disk

# 首先设置Bochs在运行中能够使用的内存
megs : 512# 设置对应真实机器的BIOS和VGA BIOS。
romimage: file=/home/cooiboi/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/cooiboi/bochs/share/bochs/VGABIOS-lgpl-latest# 选择启动盘符,这里是硬盘启动
boot: disk# 设置日志的输出
log: bochs.out# 开启关闭某些功能
mouse:enabled=0
keyboard:keymap=/home/cooiboi/bochs/share/bochs/keymaps/x11-pc-us.map
# 硬盘设置
ata0:enabled=1,ioaddr1=0x1f0,ioaddr2=0x3f0,irq=14# 启动盘信息hd60M.img,下面的hd60M.img为我们启动硬盘
ata0-master: type=disk, path="hd60M.img", mode=flat,cylinders=121,heads=16,spt=63
#ata0-master: type=disk, path="/home/cooiboi/bochs/bin/./hd60M.img", mode=flat, cylinders=121, heads=16, spt=63#gdbstub:enabled=1,port=1234,text_base=0,data_base=0,bss_base=0

在这里插入图片描述

(base) user@ubuntu:/home/cooiboi/bochs$ bin/bochs

或者到当前目录使用./bochs【记得:一定要加./】

在这里插入图片描述

上面的BXSHARE not set. using…那一行说明我们并未使用配置文件。

输入6开始模拟

在这里插入图片描述

输入c

在这里插入图片描述

这里的意思是bochs启动时找不到启动盘。

下面部分参考Ubuntu下bochs详细安装步骤(超详细!)文章~

重点】接下来的思路创建后缀名为asm测试文件,然后经过nasm编译,生成后缀名为bin的二进制文件。再通过bin目录下的bximage来创建一个硬盘,接着把刚才生成的.bin文件写入硬盘中,最后启动bochs测试。

步骤1:创建硬盘

命令如下:

(base) user@ubuntu:/home/cooiboi/bochs$ bin/bximage -hd -mode="flat" -size=60 -q hd60M.img
* -fd 创建软盘。
* -hd 创建硬盘。
* -mode 创建硬盘的类型,有 flat sparse growing三种。
* -size 指创建多大的硬盘,以 MB 为单位。
* -q 以静默模式创建,创建过程中不会和用户交互。
*  bin/bximage --help 查看帮助手册

出现Bug:

使用以下方式创建

(base) user@ubuntu:/home/cooiboi/bochs/bin$ sudo ./bximage 
========================================================================bximageDisk Image Creation / Conversion / Resize and Commit Tool for Bochs$Id: bximage.cc 12690 2015-03-20 18:01:52Z vruppert $
========================================================================1. Create new floppy or hard disk image
2. Convert hard disk image to other format (mode)
3. Resize hard disk image
4. Commit 'undoable' redolog to base image
5. Disk image info0. QuitPlease choose one [0] 1Create imageDo you want to create a floppy disk image or a hard disk image?
Please type hd or fd. [hd] hdWhat kind of image should I create?
Please type flat, sparse, growing, vpc or vmware4. [flat] flatEnter the hard disk size in megabytes, between 10 and 8257535
[10] 60What should be the name of the image?
[c.img] hd60M.imgCreating hard disk image 'hd60M.img' with CHS=121/16/63The following line should appear in your bochsrc:ata0-master: type=disk, path="hd60M.img", mode=flat

【注意】hd60M.img要创建再bin目录下~

在这里插入图片描述

步骤2:创建汇编文件(test.asm)

(base) user@ubuntu:/home/cooiboi/bochs/bin$ sudo vim test.asm

test.asm

	org	07c00h			; 告诉编译器程序加载到7c00处mov	ax, csmov	ds, axmov	es, axcall	DispStr			; 调用显示字符串例程jmp	$			; 无限循环
DispStr:mov	ax, BootMessagemov	bp, ax			; ES:BP = 串地址mov	cx, 16			; CX = 串长度mov	ax, 01301h		; AH = 13,  AL = 01hmov	bx, 000ch		; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮)mov	dl, 0int	10h			; 10h 号中断ret
BootMessage:		db	"Hello, OS world!"
times 	510-($-$$)	db	0	; 填充剩下的空间,使生成的二进制代码恰好为512字节
dw 	0xaa55				; 结束标志

步骤3:对汇编文件(test.asm)汇编成bin文件

安装个nasm编译器先

sudo apt-get install nasm

开始汇编

sudo nasm test.asm -o test.bin

test.bin文件成功被创建

(base) user@ubuntu:/home/cooiboi/bochs/bin$ sudo nasm test.asm -o test.bin
(base) user@ubuntu:/home/cooiboi/bochs/bin$ ls
... test.asm  test.bin

步骤4:将bin文件(test.bin)写入硬盘(hd60M.img)中

dd if=test.bin of=hd60M.img bs=512 count=1 conv=notrunc
(base) user@ubuntu:/home/cooiboi/bochs/bin$ sudo dd if=test.bin of=hd60M.img bs=512 count=1 conv=notrunc
1+0 records in
1+0 records out
512 bytes copied, 0.000155012 s, 3.3 MB/s

步骤5:启动bochs

sudo ./bochs -f bochsrc.disk

执行该文件

(base) user@ubuntu:/home/cooiboi/bochs/bin$ sudo ./bochs -f ./bochsrc.disk

依次输入6c.

在这里插入图片描述

Hello , OS world!

总结

  1. 创建硬盘
  2. 创建汇编文件(.asm)
  3. 编译asm文件成bin文件
  4. 将bin文件写入硬盘(.img)中
  5. 启动bochs

参考资料

  • 《操作系统真象还原》
  • 《操作系统真象还原》第一章 ---- 安装Vmware Station 安装Ubuntu 装载配置Bochs 安装Vmware tools 开始乘帆历险!
  • Ubuntu下bochs详细安装步骤(超详细!)

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

相关文章

使用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:系统实时时间,随系统实时时间改变…

date.gettime()与时间的获取

date.gettime()返回的是什么&#xff1f; java.util.Date ----------- date.getTime()返回的是什么&#xff1f; 问题&#xff1a; ------------- Date date new Date(); System.out.println(date.getTime()); 输出结果是1210745780625 编译时间当时时间大概是2008年5…

Linux下clock_gettime函数详解

要包含这头文件<time.h> 且在编译链接时需加上 -lrt ;因为在librt中实现了clock_gettime函数。 --- struct timespec ts; clock_gettime(CLOCK_MONOTONIC,ts); printf("%d %d",ts.tv_sec, ts.tv_nsec);打印出来的时间跟 cat /proc/uptime第一个参数一样 /proc/…

Gettimeofday的用法

先看gettimeofday的语法定义&#xff1a; 使用前先包含头文件#include<sys/time.h> 第一个参数&#xff1a;是个timeval *类型的结构体&#xff0c;该结构体如下 timeval.tv_sec 就是秒呗 timeval.tv_usec 就是微秒 一般我们使用gettimeofday是用来…

Java中Date类中getTime()方法

public long getTime() 返回自1970年1月1日以来&#xff0c;由 Date对象表示的00:00:00 GMT的毫秒 数 。 结果 自1970年1月1日以来&#xff0c;以此日期为准的00:00:00 GMT的毫秒数。 这是JDK文档中对于getTime()方法的官方解读 在我实际使用中发现这个方法可以解决日期月日输…

PPT插入视频

最近需要在PPT中插入一段视频&#xff0c;但是发现在插入的时候并不是一帆风顺&#xff0c;所以在这里做一下记录。 1、可能出现如下的提示 2、解决的办法 在OFFICE2010中插入视屏和音频文件时, 注意应确认是微软的格式, 即wmv及wma格式, 否则即使插入后, 在插入时也可能出现…

怎么将PPT中的视频文件保存下来

先右键包含视频的PPT文件&#xff0c;选择‘打开方式’&#xff0c;打开方式的子菜单栏中有一个选择其他应用。 因为我之前操作过&#xff0c;所以会显示那个WinRAR的应用程序&#xff0c;第一个使用的话一般不会出现&#xff0c;点击‘更多应用’&#xff0c;找到‘在这台电脑…

如何在PPT中自动同时播放两个视频

嵌入视频 视频工具中选择自动播放 动画中第二个视频选择和上一动画同时

从视频中提取图片(截取ppt)

从视频中提取图片 大聪明2.0上线 本文将介绍如何快速从网课视频中提取ppt Step1 从视频中提取图片 使用win自带的“电影与电视” 点击这个小铅笔&#xff0c;选择“保存视频中的照片” 在弹出的新窗口内就可以将视频按一帧一帧的照片展示出来&#xff0c;对想要保存的照片点击…

PPt插入视频同时播放

1.导入需要的三个视频 2.对每个视频在 动画 里面设置为 播放 3.选择第一个视频的 4.其他的视频设置为

wps——ppt中的视频提取

在写小丸工具箱时我已经删除了自己录的视频&#xff0c;只有ppt中有存稿&#xff0c;在查阅后成功的提取视频文件。这里要骂骂骂wps没有媒体视频另存为的选项要不然也不需要在ppt外部进行处理。&#xff08;如果是我没有找到&#xff0c;那烦请提醒我这个选项在那里&#xff0c…