Bochs简易教程

article/2025/10/21 12:13:14

Bochs是个啥?

简单来说bochs是一个模拟器,能够完整的模拟一台计算机。详细来讲bochs是X86硬件平台的开源模拟器,完全可以通过软件来给我们提供各种所需的硬件资源。

和bochs类似的虚拟机软件还有我们常用的VMware、Virtuabox,但区别也是明显的。bochs是完全依靠软件来模拟整个环境的:从启动到重启包括PC的外设键盘、鼠标、磁盘以及网卡等,全部都是由软件来模拟的,而其余软件则不然(部分依赖于硬件)。

为什么需要Bochs?

了解到bochs是个啥以后,相信大家有了自己的初步认识。那我们可以利用bochs干点啥呢?换句话说一般都是谁在使用bochs呢?

一、立志于写操作系统的少年

由于Bochs完全是靠软件来模拟整个PC环境,因此它非常的适合开发操作系统,这对于立志于写自己的操作系统的少年无疑是一个福音。因为有bochs存在,使得开发调试操作系统变得容易。如果你自制的操作系统编写的启动代码没有工作,Bochs会生成一份非常详细的启动信息报告,告诉你在启动过程中到底发生了什么问题。Bochs 调试程序可以让你通过一些命令或者在debugger上进行一些操作,可以到观察内存和CPU寄存器的情况。

二、操作系统课程的学习当中

bochs完全可以通过软件来模拟硬件配置,所以可以利用bochs来模拟分配内存、分配硬件资源以及各种原理性工作。具体的怎么利用bochs去学习操作系统,对于我们大家都是任重而道远的工作。

安装Linux下的Bochs

一般情况下两条命令就可以搞定(假设你的Linux系统正常工作)

我用的是Ubuntu 18.0,安装过程一切顺利。

sudo apt-get install bochs
sudo apt-get install bochs-x

配置Bochs

为什么需要配置bochs?现在的bochs是一个x86的仿真模拟器,其实就是虚拟机系统。那这个虚拟机自然要有硬件环境配置,怎么做到的呢?其实就是通过编写bochs的配置文件(一般命名为bochsrc)。

给大家展示一个基本的例子:

megs:32 # 指定虚拟系统会被分配的内存大小32MBromimage:flie=/usr/share/bochs/BIOS-bochs-latest #设置加载路径对应真实机器的BIOS vgaromimage:file=/usr/share/bochs/VGABIOS-lgpl-latest #设置加载路径对应真实机器的VGABIOSfloppya:1_44=boot.img,status=inserted # floppya是第一软驱,floppyb是第二软驱。后面标明的是软驱镜像文件的位置(boot.img是自己写的引导加载程序),软盘是否插入boot:floppy # 选择所启动的盘符类型 log=bochsout.txt # 设置日志文件的输出位置mouse:enable=0 # 关闭鼠标# 当然了上述只是最基本的,还会有相应的变型。比如说我选择从硬盘启动ata0-master: type=disk, path="boot.img", cylinders=306, heads=4, spt=17# 后面指明它附带的设备是硬盘,硬盘镜像文件路径(boot.img是自己写的引导加载程序),硬盘柱面数,磁头数等参数boot=disk

具体的操作会如何变化要靠大家实践去探索啦!

Bochs常用调试命令

设置断点:b 物理地址

查询目前已经设置过的断点:info break

执行程序:c

单步执行:s

执行n条命令:step n

查看寄存器信息:r

查看段寄存器信息:sreg

打印当前栈里的内容:print-stack

帮助:help

总结Bochs运行过程

安装bochs

sudo apt-get install bochs
sudo apt-get install bochs-x

写一个bootloader引导加载程序

vim boot.asm  # asm是汇编语言编写的源程序文件
nasm boot.asm -o boot.bin # 编译为boot.bin二进制文件

创建镜像文件

bximage #按着步骤走 最后一步是命名

将bootloader写入镜像

dd if=boot.bin of=xxx.img bs=512 count=1 conv=notrunc 

配置bochs

vim bochsrc  # 参考上述配置内容

开机

bochs -f bochsrc  # 注意这里的bochsrc 名字不固定 你的配置文件命名为啥这就是啥 后缀名也写上c # 最后你可能需要在命令行里输入c 才能继续运行

与「码匠联盟」一起成长
码匠联盟


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

相关文章

虚拟机上安装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…

如何使用计算机讲解ppt,如何录制PPT讲解视频?

录制PPT视频方式推荐 如何在电脑上录制PPT视频&#xff1f;本文介绍了三种方案&#xff0c;让你轻松将幻灯片录制为视频。 Microsoft PowerPoint 微软Office自带录制幻灯片功能&#xff0c;需要注意的是Office 2007版本没有此功能&#xff0c;可以先升级到高版本的Office&#…

PPT幻灯片放映时不显示视频(旁白)

问题&#xff1a;PPT录制的视频在非放映的时候可以播放&#xff0c;但是进入幻灯片放映模式就不显示。 解决方法&#xff1a;幻灯片放映 → \rightarrow → 播放旁白 勾选上。

PPT制作相册视频

目标&#xff1a;使用免费工具将图片快速转为视频&#xff0c;实现视频上传抖音、微视频。 工具 PowerPoint 2019等新版本格式工厂 PPT制作 制作一个自动播放的PPT 打开PPT插入相册&#xff1a;插入->相册。插入照片用于制作电子相册动画设置&#xff1a;设置单页PPT内不…

PPT录制视频的方法有哪些?分享5种亲测好用的方法

PPT文稿可以通过图文或者动画的形式&#xff0c;直观形象地把内容展现给观众&#xff0c;从而给观众留下深刻的印象。比如老师讲课时会用到PPT&#xff0c;公司开会时也会用到PPT。除了需要使用到PPT文稿之外&#xff0c;有时还要对它进行录制。 那你知道PPT录制视频的方法有哪…

计算机课怎样制作ppt 课件,如何制作PPT课件视频

由于计算机的大量普及和多媒体技术的发展&#xff0c;使用多媒体上课已经是一种常见的事。我们在课堂和线上学习时&#xff0c;经常可以看到老师制作的相关知识的PPT课件。虽然我们都知道PPT课件是由PPT制作的幻灯片&#xff0c;可还是比较好奇老师是如何把一段完整PPT课件视频…