bochs2.7安装

article/2025/10/21 9:21:16

Bochs安装

谨以此篇博客记录长达一个星期之久的bochs安装之旅

实测Ubuntu18.04及Ubuntu20.04均可通过自带软件仓库顺利安装并使用,安装指令,远离折腾烦恼

sudo apt-get install bochs bochs-x

问题

选用系统:debian11
debian11自带软件仓库按理来说也是可以通过以上命令进行安装的,要是如此简单恐怕一分钟就可以完结收工了,可偏偏事与愿违。
助教进行实验讲解时就说了,Ubuntu22.04会出现问题,如这个链接所示,表明了其Ubuntu22.04安装软件仓库中自带的Bochs2.7所遭遇的问题,无法正常启动。

先前也没当回事,毕竟debian以稳定著称,想必包管理器中所提供的应该是较为稳定可以运行的版本。可等我敲完命令,竟也遭遇了相同的问题。Bochs无论输入多少次c,始终没有输出期许的结果,可以看到以下报错
problem1.png
problem2.png
真奇怪,明明Bochs的版本是2.6.11,看来不只是2.7版本存在问题,2.6.11同样存在问题

problem4.png

试了很多次,看来依靠本来的包管理器是不行了,只能尝试自己下载编译一份了。

操作

官网下载2.7版本

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

进入下载的目标目录,比如我这里就是“下载”目录,打开终端执行解压缩

tar -zxvf bochs-2.7.tar.gz

获得解压后的文件夹bochs-2.7

xxx@debian:~/下载$ ls
1-lexer-antlr.pdf        bochs-2.7
2-lexer-re.pdf           bochs-2.7.tar.gz
3-lexer-handwritten.pdf  code_1.76.2-1678817801_amd64.deb
4-lexer-automata.pdf     google-chrome-stable_current_amd64.deb

进入解压后文件夹

cd bochs-2.7

执行

./configure --prefix=/home/xxx/bochs --enable-debugger --enable-iodebug --enable-iodebug --enable-x86-debugger --with-x --with-x11
# xxx替换为自己的用户名即可

原本看的教程是

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

但会报一个小的Warning

WARNING: unrecognized options: --enable-disasm

使用以下命令查看可选项

./configure -help

会发现2.7版本为

  --enable-show-ips       show IPS in Bochs status bar / log file (yes)--enable-cpp            use .cpp as C++ suffix (no)--enable-debugger       compile in support for Bochs internal debugger (no)--enable-debugger-gui   compile in support for Bochs internal debugger GUI(yes, if debugger is on)

2.6.11对应位置为

  --enable-show-ips       show IPS in Bochs status bar / log file (yes)--enable-cpp            use .cpp as C++ suffix (no)--enable-debugger       compile in support for Bochs internal debugger (no)--enable-disasm         compile in support for disassembler (no)--enable-debugger-gui   compile in support for Bochs internal debugger GUI(yes, if debugger is on)

正好缺少–enable-disasm选项,也不知道什么情况,可能已经不是可选项了?还是写文档疏忽大意了?

确保你的操作系统已经安装有gcc,g++,查看方式

gcc -v

没有则使用如下命令进行安装

sudo apt update
sudo apt install build-essential

执行

make

没有报错继续执行

make install

当然你可能碰到许多奇奇怪怪的报错,我也一样,这里是我所参考的教程
https://zhuanlan.zhihu.com/p/35437842 很多可能的报错也都指出了。

要说这篇文章没被解决的问题,倒是有一个
problem5.png

如上图所示,不过也找到了解决方法

额,想复现错误好像不行了,原本的解决方法是要更改某.cc文件的头文件的,好奇怪。而且重新看了参考的教程,其实该问题很有可能是上面某问题的一种表现形式。

至此安装就算完成了,可以查看一下文件存放的位置,如果都是按照我的步骤来的话,应该会看到用户目录下多出一个bochs目录

xxx@debian:~/桌面$ cd
xxx@debian:~$ ls
公共  模板  视频  图片  文档  下载  音乐  桌面  bochs
xxx@debian:~$ cd bochs
xxx@debian:~/bochs$ ls
bin  share

验证安装成功

随便打开一个终端,敲入

/home/xxx/bochs/bin/bochs
# xxx处填用户名

出现

========================================================================Bochs x86 Emulator 2.7Built from SVN snapshot on August  1, 2021Timestamp: Sun Aug  1 10:07:00 CEST 2021
========================================================================

至此安装成功

改进

每次都得敲一长串命令,显然费时费力,将其设置别名也可直接添加到环境变量中

vim ~/.bashrc

添加

alias bochs='/home/xxx/bochs/bin/bochs'
alias bximage='/home/xxx/bochs/bin/bximage'

立即生效

source ~/.bashrc

测试

随便在某一位置打开终端,输入

bochs

出现

========================================================================Bochs x86 Emulator 2.7Built from SVN snapshot on August  1, 2021Timestamp: Sun Aug  1 10:07:00 CEST 2021
========================================================================

配置完成

实操

创建软盘

xxx@debian:~/桌面/OS/lab1/t2$ bximage
========================================================================bximageDisk Image Creation / Conversion / Resize and Commit Tool for Bochs$Id: bximage.cc 14091 2021-01-30 17:37:42Z sshwarts $
========================================================================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] fdChoose the size of floppy disk image to create.
Please type 160k, 180k, 320k, 360k, 720k, 1.2M, 1.44M, 1.68M, 1.72M, or 2.88M.[1.44M] What should be the name of the image?
[a.img] Creating floppy image 'a.img' with 2880 sectorsThe following line should appear in your bochsrc:floppya: image="a.img", status=inserted

创建boot.asm

touch boot.asm

该文件中写入以下内容

	org 07c00hmov ax, csmov ds, axmov es, axcall DispStrjmp $
DispStr:mov ax, BootMessagemov bp, axmov cx, 16mov ax, 01301hmov bx, 000chmov dl, 0int 10hret
BootMessage:	db "Hello, OS World"
times	510-($-$$) db 0
dw 0xaa55

终端执行

nasm boot.asm -o boot.bin

写入软盘

xxx@debian:~/桌面/OS/lab1/t2$ dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc
记录了1+0 的读入
记录了1+0 的写出
512字节已复制,0.000373033 s,1.4 MB/s

创建bochsrc

touch bochsrc

该文件写入

megs: 32
display_library: x
floppya: 1_44=a.img, status=inserted
boot: floppy

执行

xxx@debian:~/桌面/OS/lab1/t2$ bochs -f bochsrc 

Please choose one: [6]
回车

<bochs:1> c
# 输入c回车

成功
success.png

至此全部结束,我们已经成功在debian11上安装启动了Bochs


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

相关文章

Windows10下安装使用Bochs-2.6.11

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

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

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

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

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

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

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

bochs简单使用

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

Bochs下载安装

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

使用Bochs写Hello world

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

Bochs编程环境安装

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

Bochs安装

近期&#xff0c;准备跟着《一个64位操作系统的设计与实现》干点正事儿。第一步就是安装bochs。书里写得太简略&#xff0c;网上太杂&#xff0c;我自己记录一下自己安装的流程&#xff0c;希望对看到的人有帮助。 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是个啥&#xff1f; 简单来说bochs是一个模拟器&#xff0c;能够完整的模拟一台计算机。详细来讲bochs是X86硬件平台的开源模拟器&#xff0c;完全可以通过软件来给我们提供各种所需的硬件资源。 和bochs类似的虚拟机软件还有我们常用的VMware、Virtuabox&#xff0c;但…

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

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

Windows下Bochs的简单使用

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

gettimeofday/clock_gettime

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

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()方法的官方解读 在我实际使用中发现这个方法可以解决日期月日输…