实现操作系统(1) Bochs的安装配置&最简单的“操作系统”

动手编写操作系统(1):初识Bochs   下面正式进入实操环节,也就是动手搭建操作系统。看着眼前的Windows/Linux/Mac OS/etc,相信绝大多数同学都会感到兴奋和迷茫:这么大个操作系统,从哪里开始呢?古人有云:“工欲善其事,必先利其器。”我们得以发挥自己聪明才智,进行学习研究创造的前提,是拥有一个好的工具。它能让我们在巨人的肩膀上欣赏与创造。在这里,我想表达对所有在相关领域为后人的方便贡献自己汗水的前辈的衷心的感谢与钦佩。   话不多说,接下来我们正式切入正题:配置调试操作系统所需的环境。 C/C++编译器,这里采用gcc/. 阅读详情
AI摘要

本文介绍如何使用Bochs模拟器从零开始搭建一个简易的操作系统。包括Bochs的安装配置、创建软盘映像、编写及编译简单的汇编语言程序,并将其加载到虚拟机中运行。

Bochs:为多平台设计的x86架构模拟器/虚拟机

材料:
1、Ubuntu16.04LTS
2、Bochs-2.6.8

一、安装步骤:
1、到官网上下载Bochs-2.6.8.tar.gz 下载链接

下载源码而不直接使用sudo apt-get install vgabios bochs bochs-x bximage命令行安装是因为我们还要安装Bochs的调试功能

2、解压下载好源码:

tar zxvf bochs-2.6.8.tar.gz

3、进入解压后的目录,然后执行命令行:

./configure --enable-debugger --enable-disasm
make
sudo make install

注意:
第1条是开启Bochs的调试和反汇编功能;
安装过程中可能出现一些问题,一般都是一些包和引用没有安装,下面是我遇到的几个问题及解决方案:

错误1:fatal error: X11/Xlib.h: No such file or directory
解决方案:sudo apt-get install libx11-dev

错误2:fatal error: X11/extensions/Xrandr.h: No such file or directory
解决方案:sudo apt-get install xorg-dev

安装成功后,在终端输入bochs即可看到bochs的画面了:
Bochs在终端显示的界面

二、配置Bochs
安装好Bochs后,接下来就需要对Bochs进行配置了,如果你不自己写配置文件的话,执行bochs命令时Bochs会自己在当前目录顺序寻找以下文件作为默认配置文件:
.bochsrc
bochsrc
bochsrc.txt
bochsrc.bxrc(仅对Windows有效)

我们可以通过ls -a命令看到Bochs安装目录下的所有文件:
Bochs安装目录下所有文件

然后可以进入到.bochsrc文件里面查看自带的配置信息

在这里我们自己创建一个名叫bochsrc的配置文件,来告诉Bochs我们想要的虚拟机是什么样子的,下面就是我的配置文件:

#################################################################
# Bochs的配置文件
# Configuration file for Bochs
#################################################################

# how much memory the emulated machine will have
megs: 32

# filenameof ROM images
romimage:file=/usr/local/share/bochs/BIOS-bochs-latest
vgaromimage:file=/usr/local/share/bochs/VGABIOS-lgpl-latest

# which disk image will be used 这个是启动软盘,我们虚拟出来的那个a.img
floppya:1_44=a.img, status=inserted

# choose the boot disk 确定启动方式
boot: floppy

# where do we send log messages?
log: bochsout.txt

# disable the mouse
mouse: enabled=0

# enable key mapping ,using US layout as default
keyboard:keymap=/usr/local/share/bochs/keymaps/x11-pc-us.map

注意这里要确保romimage和vgaromimage这两项的路径是正确的,不然虚拟机启动时会提示“couldn’t open ROM image file”的错误,还有Bochs的版本不一样的话,键盘设置的方式也不太一样。

三、最简单的操作系统
那么接下来,我们就要开始写一个最简单的操作系统了,这个代码全由汇编完成,而且只有不到20行:

    org    07c00h
    mov    ax, cs
    mov    ds, ax
    mov    es, ax
    call   DispStr
    jmp    $
DispStr:
    mov    ax, BootMessage
    mov    bp, ax
    mov    cx, 16
    mov    ax, 01301h
    mov    bx, 000ch
    mov    dl, 0
    int    10h
    ret
BootMessage:    db    "Hello, OS world!"
times    510-($-$$)    db    0
dw       0xaa55

用NASM编译一下这段代码:

nasm boot.asm -o boot.bin

k然后在boot.asm的目录下我们可以看到多了一个512字节的boot.bin文件,这个文件就要被我们写入到软盘里面。这里当然你可以写入到一个真实的空白软盘上,但是现在基本上都已经见不到软盘了吧,所以我们这里就用Bochs来虚拟出所需要的软盘。

四、Bochs的使用
1.创建软盘映像:
输入sudo bximage,然后在问到要创建hd还是fd的时候,输入fd,之后就一直回车默认就行了
bximage过程

2.这下我们通过虚拟,有了计算机,又有了软盘,是时候将我们刚刚编译好的引导扇区写进软盘了,Linux下自带了dd命令可以很方便地进行软盘读写:

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

软盘写入

一切准备就绪,是时候进行启动Bochs了,进入到你的boot.bin所在目录下,然后在终端输入命令:

sudo bochs -f bochsrc

注意:这里要特别注意bochsrc就是我们第二步写的那个配置文件,因为安装Bochs成功之后可以在任意地方使用bochs命令了,但是要使用我们的配置文件bochsrc的话就需要加上绝对路径,比如非Bochs安装目录下运行bochs的命令如下:

sudo bochs -f /home/bychen/downloads/bochs-2.6.8/bochsrc

输入回车,
(注意:如果这里出现是一个什么都没有的一片黑色的界面的话,那是因为我们这里是带调试模式的Bochs,回车之后还需要一次回车,然后在出现Bochs提示符之后输入“c”,再次回车)
这里写图片描述

看到Bochs界面上出现的“Hello, OS world!”
这就是一个最简单的操作系统了~
最简单的操作系统

BOCHS模拟器配置和使用 BOCHS模拟器配置和使用 BOCHS是一个轻量级小型系统模拟器。它可以用来开发引导模块,测试系统。 BOCHS一开始上手不容易配置。 简单的配置 megs: 32 romimage: file=$BXSHARE/BIOS-bochs-latest vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest vga: extension=vbe, update_freq=15 floppya: 1_44=a.img, status=inserted #ata0-master 阅读详情

相关推荐

操作系统实验1 第1&2章 macOS安装bochs

《ORANGE’S:一个操作系统的实现》 折腾了一下午,尝试brew安装、编译安装,遇见各种配置错误、参数错误、乱七八糟的错误后得出的可行策略 版本: macOS Mojave 10.14.5 bochs2.6.9 安装bochs $ brew install bochs 书中提供的代码 cd到/…/chapter2/linux/文件夹下 编译boot.asm $ nasm boot.as...

CoCoNutNut的博客 963

windows下bochs调试环境的创建

参考dlxlinux的配置文件 和 一个操作系统的实现一书 来配置bochs 配置文件如下:  ############################################################### # bochsrc.txt file for DLX Linux disk image. #######################################

思考的智慧,知识源于思考 2097

【从头开始写操作系统系列】使用 Bochs 调试操作系统

在上一篇文章《环境搭建以及第一个Hello-World》中,笔者讲了如何安装 bochs 以及运行一个 helloworld 操作系统,但是使用上一篇文章中的方法安装的 bochs 是不支持调试的,下面我讲介绍如何使用源码编译的方法来安装 bochs,以及使用 bochs 来调试操作系统。 编译安装 Bochs 下载 bochs 源码 http://sourceforge.net/projects/

远航 | FIBOS.io 8217

在UBUNTU上安装基于bochs的 xv6

第一个步骤——安装bochs: 在安装bochs时需要从官网x下载tar包 解压后, 首先配置configure, ./configure --prefix=/usr/local/bin/bochs –enable-debugger –enable-disasm --enable-x86-debugger --with-x --with-x11 (–enable-debugger和 –enable...

weixin_30565199的博客 502

bochs-2.6.8.tar.gz

bochs-2.6.8.tar.gz 源码包 适用于 linux 操作系统

C#海康威视摄像头控制,将IntPtr转换成Bitmap图片

C#通过skd控制海康威视摄像头,获取bitmap格式图片

ReflexMechanism的博客 6586

Windows10下搭建X86汇编语言Bochs工具时的一些问题

Bochs 2.6.0 安装版 //之前下载的解压版不行 一开始按书上配套的教程配置 保存了配置文件打开后却弹出下面的窗口 //配套文件csdn有下载的 教程上也没说这个情况,自己就瞎弄了半天,网上搜也搜不出来,最后用谷歌翻译了一下 原来这是一个错误提示,正常没有这个 我是这样解决的 Bochs文件夹下有这么几个文件,错误的原因在于图片中的配置文件(也就是那个文本文件)里面没有指明上面圈出的两...

风中起雾的人 1363

ensp企业网综合实验(课程设计)

使用MSTP+VRRP技术实现负载均衡以及增加网络的可靠性;出口配置napt;所有用户均为自动获取IP地址;

qq_50829760的博客 1万+

《操作系统真象还原》boch环境配置

bochs-2.6.2下载地址: https://sourceforge.net/projects/bochs/files/bochs/2.6.2/bochs-2.6.2.tar.gz/download link下载完成后解压 bochs-2.6.2,进入解压后生成的目录 1、首先是configure ,执行以下命令 遇到报错:ERROR: X windows gui was selected, but X windows libraries were not found. 解决: 2.编译完成,会生成ma

qq_37397331的博客 467

STM32F407与W5100S的SPI通信实战:从硬件连接到TCP服务器搭建

本文详细介绍了STM32F407微控制器通过SPI接口驱动W5100S以太网模块,并搭建TCP服务器的完整实战过程。内容涵盖硬件连接、SPI驱动配置、网络参数设置及Socket编程,重点解析了SPI通信时序、W5100S寄存器操作和TCP连接管理,为嵌入式网络通信开发提供实用指南。

weixin_29173777的博客 193

kivy--入门(一)(Windows)python

从零开始学习kivy 由于课程需要写一个app,还要写报告,这就很愁人,头秃,脑壳大。 虽然学过Android,但是小编对于Java就像对牛弹琴似的,不能说完全不懂,只能说Java这个语言不太适合我,不学还不行,还是先利用python的kivy编写一个吧。 在各大网站搜索开发app,发现适合写手机app的除了Android还有kivy,所以还是先学习如何使用吧! 文章目录从零开始学习kivy前言一、安装二、添加按钮+标签三、文本输入(TextInput)总结 前言 首先推荐这篇博客kivy的安装和使用

刘念卿的博客 9969

Win10 WSL 2(Windows Subsystem for Linux) 安装 bochs

首先确保已经安装了 WSL,我装的是 ubuntu 20.04 LTS。 先根据这篇文章把源换一下:https://blog.youkuaiyun.com/wangyijieonline/article/details/105360138 1. 安装必要环境 假设 WSL 是全新安装的,里面大部分依赖都没装,因此先装一些必要的库。 必备 g++ sudo apt-get install g++ make 也要装 sudo apt-get install make 还有一些用到的库 sudo apt-get ins

蓝三金的博客 3222

educoder中Hive综合应用案例 — 用户搜索日志分析

Hive综合应用案例 — 用户搜索日志分析

weixin_46026136的博客 4772

【操作系统】Bochs安装和配置

Bochs是使用C++编写的高度可移植开源IA-32(X86)PC模拟器,能在大多数流行的平台上运行。它包括模拟Intel x86 CPU、常见I/O设备和自定义BIOS。Bochs可以被编译以模拟许多不同的x86 CPU,从386早期到最新的x86-64英特尔和AMD处理器甚至可能还没有进入市场。Bochs能跑仿真中的大多数操作系统(例如DOS),Linux或Windows。

师兄怎么办 4276

电机驱动和电源等大电流设计中的并联 MOSFET设计

在电机驱动等应用中,半桥拓扑(通常为 3 相)用于生成在电机中产生正扭矩或负扭矩的交流电源信号。想要更高的输出电流能力,只有通过并联形成每个功能开关的 MOSFET,才能实现高输出电流。当多个功率 MOSFET 并联以增加系统整体电流能力容量时,通常假设电流在并联器件之间均等分配或均等共享。然而,在并联 MOSFET 时,需要考虑并联器件之间的电流分配。PCB 布局的若干特性和特定的MOSFET 参数会影响这种分配,并在参数不匹配或布局不对称时导致均流不平衡。

小幽余生不加糖 2487

【算能】TPU-MLIR 工具链之model_deploy

model_deploy.py 是算能 TPU-MLIR 工具链中实现模型高效部署的核心组件,通过灵活的量化配置与硬件优化,可在 ​精度损失 ≤1% 的前提下实现 ​3-5 倍加速。开发者需重点关注校准数据质量、混合精度策略及硬件兼容性

浩瀚之水的专栏 288

自己动手写简易操作系统之bochs的配置

Bochs(发音:box)是一个以LGPL 许可证发放的开放源代码的 x86、x86-64IBM PC 兼容机模拟器和调试工具。它支持处理器(包括保护模式)、内存、硬盘、显示器、以太网、BIOS、IBM PC 兼容机的常见硬件外设的仿真。许多客户操作系统能通过该仿真器运行,包括 DOS、Microsoft Windows 的一些版本、AmigaOS 4、SD、Linux、MorohOS、Xenix 和 Rhapsody(Mac OSX的前身)。

m0_63686543的博客 1728

华为OD机试真题-查找单入口空闲区域(Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【查找单入口空闲区域】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 查找单入口空闲区域。

qq_45776114的博客 1268

ubuntu下bochs的安装和配置

《ORANGE’S:一个操作系统的实现》一书中选择使用虚拟计算机Bochs进行仿真。 Bochs是一个x86硬件平台的开源模拟器。它可以模拟各种硬件的配置。Bochs模拟的是整个PC平台,包括I/O设备、内存和BIOS。甚至可以不使用PC硬件来运行Bochs。事实上,它可以在任何编译运行Bochs的平台上模拟x86硬件。通过改变配置,可以指定使用的CPU(386、486或者586),以及内存大小等。根据需要,Bochs还可以模拟多台PC,此外,它甚至还有自己的电源按钮。 以下对bochs的安装及常见错误

weixin_46672140的博客 7278

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

自己动手写操作系统之1:bochs初步使用

0x00 前言自己动手写操作系统,自然需要一个承载程序的运行环境,这一章记录我使用bochs遇到的坑,凌晨十二点半才填完坑。这次记录的是使用bochs完整实现一个最简单的操作系统(其实根本不算操作系统,只是通过硬盘启动个mbr程序)。0x01 bochs1.安装安装比较简单了,我没有使用源码安装,不想再折腾那个了,不然估计我就没戏能开始了。yum install bochs bochs-x -y需要

木东居士 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Ubuntu下安装Bochs2.7

通过自带软件库安装的Bochs运行时不显示任何内容,这里选用源码安装方式。

weixin_43364551的博客 1765

ubuntu20.04 bochs配置安装《操作系统真象还原》环境

文章目录ubuntu20.04 bochs配置安装操作系统真象还原环境一些前置配置:ubuntu20.04安装和vmtools,vscode安装,配置清华源ubuntu20.04安装[vmtools 和 vs code 一并安装](https://editor.youkuaiyun.com/md?not_checkout=1&articleId=120155847)将linux默认镜像改为清华镜像源配置所需的环境安装bochs1.下载bochs2.执行./configure 配置文件,自动生成Makefile3

林夕丶的博客 4015

操作系统真象还原-bochs安装

敲这几个选项时,顺序错了,iodebug放前面,结果configure不过,提示是否是交叉编译,需要设置host,我搜了半天,以为少了配置项:--build=i386-linux --host=i386-linux 结果不起作用. 最终按书上顺序修改后就好了,看来提示很不靠谱啊。书中使用2.6.2版本,虽然比较老(2024年还在更新,已经是2.8版本了),但是为了和书上完全一致,我也不太熟悉这个系统,就下载了2.6.2(2013年5月的版本,已经11年过去了)

hb_zxl的专栏 1345

实现一个最简单的操作系统

DDDD。

dadoufuk的博客 5523

bochs的安装和配置

参考书记:《操作系统 真象还原》 书上使用的是bochs-2.6.2.tar.gz。是2013的版本,老旧老旧了,我不使用。 我的系统是Ubuntu18.04。 1、bochs的安装 sudo apt-get install bochs 如果,仅仅安装这一个。后面运行的是时候会报错。 错误提示:“*******”。我忘了什么提示了。。。 sudo apt-get install bochs-...

大草的博客 1万+

bochs的安装和配置02

环境:ubuntu18.04 《操作系统 真象还原》:bochs的安装和配置。

大草的博客 3534
上一篇: Ubuntu上安装NASM
ByChen623
博客等级 码龄10年 16粉丝 3原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值