bochs调试操作系统,以及可引导img的制作

操作系统制作(0)bochs使用及img引导启动软盘制作 环境: virtual-box:版本 6.0.10 r132072 (Qt5.6.2)运行的的ubuntu18.04系统。 nasm汇编器:NASM version 2.13.02 1)安装bochs sudo apt-get install bochs bochs-x 注意:bochs-x要安装,否则会出现>>PANIC<< dlopen failed for modu... 阅读详情

首先写这篇文章的目的是自己在用bochs调试操作系统的时候有很多关键的资料网上写的很乱,所以我根据自己的看书以及实践成功了,在这里分享一下某一些关键的步骤。

这篇文章假设你已经了解了部分知识了

1,你知道利用bximage.exe制作一个img文件。

2,你知道如何写汇编程序。

3,你知道如何利用nasw程序编译你写的汇编程序(nasw xxx.asm -o xxx.bin)。

4,你知道如何写bochs的配置文件(可以将dlxlinux里面的配置文件拿过来用)。

5,就是将你的编译之后的xxx.bin写入img文件就可以了。


运行结果截图:


MBRNew.asm

    org 07c00h
    mov ax, cs   
    mov ds, ax   
    mov es, ax                       
    call DispStr
    mov ax,0
    mov es,ax
    mov bx,8c00h
    mov al,1
    mov ch,0
    mov cl,2
    mov dl,0
    mov dh,0
    mov ah,2
    int 13h
    jmp 08c00h
DispStr:   
    mov ax, BootMessage   
    mov bp, ax
    mov cx, 15
    mov ax, 01301h 
    mov bx, 000ch
    mov dl, 0   
    int 10h
    ret   
BootMessage:   
    db "Muhong new MBR!"   
    times 510-($-$$) db 0
    dw 0xaa55


MBRSys.asm

    org 08c00h
    mov ax, cs   
    mov ds, ax   
    mov es, ax                       
    call DispStr
    jmp $
DispStr:   
    mov ax, BootMessage   
    mov bp, ax
    mov cx, 18
    mov ax, 01301h 
    mov bx, 000ch
mov dh, 1
    mov dl, 0   
    int 10h
    ret   
BootMessage:   
    db "Muhong system MBR!"


MBRCopyToImg.cpp

// OS.cpp : 定义控制台应用程序的入口点。
//
/************************************************************************/
/* 
用于将nasw编译之后的新的MBR写入img第一个扇区。
以及将系统的MBR写入img的第二个扇区。
*/
/************************************************************************/
#include "stdafx.h"
using namespace std;


char OS_IMG[] = "tinyos.img";
char MBR_NEW[] = "MBRNew.bin";
char MBR_SYS[] = "MBRSys.bin";


int write_mbrNew()
{
FILE *OSfp, *Mfp;
char buf[512]={0};


if((OSfp=fopen(OS_IMG,"r+"))==NULL){
cout<<"can not open file"<<endl;
return -1;
}
if((Mfp=fopen(MBR_NEW,"r"))==NULL){
cout<<"can not open file"<<endl;
return -1;
}


fseek(OSfp,0,SEEK_SET);
fseek(Mfp,0,SEEK_SET);


fread(buf,512,1,Mfp);
fwrite(buf,512,1,OSfp);


fclose(Mfp);
fclose(OSfp);
return 0;
}


int write_MBRSys()
{
FILE *OSfp, *Mfp;
int fileLen; //
char buf[512]={0};


if((OSfp=fopen(OS_IMG,"r+"))==NULL){
cout<<"can not open file"<<endl;
return -1;
}
if((Mfp=fopen(MBR_SYS,"r"))==NULL){
cout<<"can not open file"<<endl;
return -1;
}
fseek(OSfp,512,SEEK_SET);
fread(buf,1,512,Mfp);
fseek(Mfp,0, SEEK_END);


fileLen = ftell(Mfp);
fseek(Mfp,0, SEEK_SET);


fwrite(buf, 1, fileLen, OSfp);
system("pause");
fclose(Mfp);
fclose(OSfp);
}




int _tmain(int argc, _TCHAR* argv[])
{
write_mbrNew();
write_MBRSys();
return 0;
}


操作系统学习6 使用Bochs调试自己的引导程序 一、Bochs简介 Bochs是一个x86 的软件模拟器,用来模拟x86CPU、一些硬件和BIOS等,可以用来运行Windows、Linux等软件。 由于它是纯软件模板,所以运行速度比起VmWare,VirtualBox可能会慢一点。 二、启动镜像的操作过程 1. 下载地址 https://sourceforge.net/projects/bochs/files/bochs/2.6.11/ 安装后启动。 2. 启动一个虚拟机 点Start,启动一个Linux虚拟机。 Power按钮可以关闭虚拟机。 3. 阅读详情

相关推荐

VxWorks在Bochs虚拟硬盘引导失败:原理分析与调试实战

在嵌入式系统开发中,实时操作系统(RTOS)的引导与调试是核心环节。VxWorks作为经典的RTOS,其引导程序(Bootrom)通常直接与硬件交互,依赖精确的时序和状态机逻辑。当这类底层驱动在模拟器环境中运行时,常因硬件行为差异导致兼容性问题。Bochs作为指令级x86模拟器,提供了高精度的硬件模拟,是嵌入式开发中宝贵的调试工具。本文聚焦于VxWorks在Bochs虚拟ATA硬盘上引导失败的典型场景,深入剖析Bootrom驱动与模拟器在时序、状态机及初始化流程上的差异。通过结合Bochs的详细调试日志与V

weixin_30701575的博客 303

bochs linux.img下载,bochs win10 img镜像文件

bochs win10 img镜像文件是专门搭配bochs模拟器一起使用的镜像文件,用户往bochs模拟器中导入bochs win10img镜像完整版,便可以在一些移动设备上运行win10系统,这样用户就能够轻松打开各种电脑文件。bochs win10 img镜像文件概括介绍bochs win10 img镜像文件是bochs模拟器的WIN10系统软件,通过bochs win10 img镜像文件用户...

weixin_42515089的博客 2789

使用Bochs模拟器深入理解操作系统引导过程

Bochs的配置文件功能强大,允许用户根据需要自定义模拟硬件的详细参数。例如,用户可以通过配置项指定显卡的类型,包括VGA、S3等,或者添加并配置网络接口卡(NIC)。下面是一个简单的配置示例,展示如何添加并配置一个网络适配器:# 模拟的网卡类型可以是ne2000或pcnet# 自定义的网卡配置通过这种方式,可以模拟不同的硬件设备,提高模拟环境的灵活性和可用性。调试器是一种强大的工具,它允许开发者在程序执行的每个步骤中进行控制和检查。

weixin_32306683的博客 1087

linux-0.11调试教程,Bochs-2.1.1配置文件,精简版可拷贝,及img文件制作过程

说明1:BIOS-bochs-latest文件和VGABIOS-elpin-2.40文件都在bochs安装目录下,既C:\Program Files\Bochs-2.1.1 说明2:bootimage-0.11-hd和diskb.img和hdc-0.11.img都是用户自己制作或下载的别人制作好的文件。 下面是bochsrc-hd.bxrc文件的内容: romimage: file=

linux-0.11调试教程 4957

windows1.0img虚拟镜像

windows1.0虚拟软盘镜像,解压后可以直接载入到虚拟机。(需要安装winimage)

GPU算力租用平台推荐

阿里云作为中国领先的云计算服务提供商,提供了丰富的GPU云服务器实例,包括NVIDIA Tesla V100、A100等多种高性能GPU型号。阿里云GPU云服务器适用于深度学习、科学计算、图形渲染等多种场景,能够满足不同用户的计算需求。

hong161688的博客 8159

bochs上网镜像怎么上网_【bochs win10镜像可上网版】bochs win10镜像img下载 完整版-趣致软件园...

bochs win10镜像可上网版是一款专针对bochs模拟器所推出的系统文件,用户可以将该镜像文件导入到bochs模拟器中去,这样就能够直接在手机上运行win10系统。这样一来用户可以直接通过手机进行办公、玩游戏等操作,真正实现随时随地玩电脑的体验。趣致软件园提供bochs win10镜像img下载,这是一款专门针对安卓手机所打造的系统镜像文件,在使用这款镜像之前,用户必须注意一下几个问题:必须...

weixin_35531726的博客 3044

fastadmin云快充充电桩系统部署文档uniapp

多商户 嘎嘎快充V1.0部署文档 一、服务器环境: 服务器配置4核心8GB内存5M带宽以上配置 VX next1402 只支持linux环境 nginx1.22 php7.2 开启redis、fileinfo扩展,关闭禁用workerman gatewayworkerman需要的函数,如pcntl相关的函数 mysql5.7 supervisor redis 注意: 1.站点必须配置https、websocket配置wss 2.注意开放直连服务端口:2024,并添加到安全组 二、必

itholiday2014的博客 1626

ubuntu安装bochs&nasm并运行img文件

一:安装nasm 1、首先下载nasm的压缩包http://www.nasm.us/pub/nasm/releasebuilds 找到2.14rc16 (版本号,可以选择其他的版本),之后进入找到nasm-2.14rc16.tar.gz 这个压缩包(一般在linux上面使用这个压缩形式),下载下来 2、解压: tar zxvf nasm-2.14rc16.tar.gz 3、之后进入到解压的...

guaizaiguaizai的博客 2473

ROS2仿真抓取分拣案例,使用myCobot 280机械臂结合ROS2系统搭建机械分拣站

本案例展示了如何利用myCobot 280 urdf模型构建一个对象分类站,并在ROS2 jazzy中完成运动规划。

m0_71627844的博客 2115

R语言实战:5分钟搞定相加交互效应分析(逻辑回归/Cox回归/GLMM/GEE全支持)

本文详细介绍了如何利用R语言中的`scitable`包快速实现相加交互效应分析,支持逻辑回归、Cox回归、GLMM和GEE等多种模型。通过自动化计算RERI、AP和SI等指标,大幅提升临床研究和流行病学分析的效率与准确性,特别适合处理多因素联合作用的复杂场景。

fanta的博客 663

用bochs调试自己写的系统引导代码

https://blog.csdn.net/u011006622/article/details/55504657 1 安装和配置bochs   首先从bochs.sourceforge.net里面把BOCHS给download下来,鉴于Windows的普及,仅仅谈BOCHS在win下的使用方法,其实在其它的OS中方法差不多,不过我仅仅在Window和Linux下安装使用过。   在boch...

guozuofeng的博客 490

vhr 微人事系统安装与部署教程(SpringBoot + Vue 项目实战)

vhr(微人事)是一个开源的人力资源管理系统项目。系统采用前后端分离架构,主要技术栈包括:后端:MyBatis前端:VueElement UIAxios数据库:MySQL系统通常包含以下模块:员工管理部门管理职位管理薪资管理权限管理系统管理整体功能已经接近企业级后台系统。vhr(微人事)是一个非常经典的开源人力资源管理系统项目,基于SpringBoot + Vue 前后端分离架构。系统包含:员工管理部门管理权限管理薪资管理。

m0_69484557的博客 477

在bochs上运行grub引导盘镜像文件

1、安装和配置bochs(版本号:2.3)bochs的源代码可以从其官方网站http://bochs.sourceforge.net免费下载,该网站有详尽的文档,下载的压缩包解压后也包含相同的文档。解压后进入bochs-2.3目录,里面有一个configure文件,用于配置bochs的安装。基于调试操作系统的考虑,我选择调试和反汇编选项:cd ~/bochs-2.3./configure --en

hbrqlpf的专栏 7352

OpenClaw人人养虾:配置通义千问(Qwen)

通义千问(Qwen)是阿里云推出的大语言模型系列。OpenClaw 支持通过 Qwen Portal 插件实现 OAuth 免费额度认证,每日可免费使用 2000 次请求,无需绑定支付方式。

王国平的博客 1224

5、卡尔ibration中Denavit - Hartenberg与Hayati约定的转换

本文详细介绍了机器人运动学中Denavit-Hartenberg(DH)参数与Hayati参数的定义、适用场景及其相互转换方法。重点分析了两种参数在描述关节坐标系变换时的差异,特别是在处理平行或接近平行关节轴时的稳定性问题,并给出了从DH到Hayati及反向转换的具体数学公式与流程图。通过参数转换,可在不改变运动学模型的前提下提升建模精度与计算鲁棒性,适用于机器人标定与运动学分析等应用场景。

h0i1j2k3l的博客 118

使用bochs和grub建立可引导硬盘镜像

bochs,发音同box,是我非常喜欢的虚拟机,灵活易用方便配置,功能极强,用来调试Linux内核是非常合适的。这篇博文主要讲解如何建立硬盘镜像,并且将grub安装上去,最后的结果就是bochs启动后能进入到grub引导界面。下一篇博客再讲解如何在镜像上安装Linux内核。 硬盘基础知识 硬盘的专业术语中有:柱面,磁头,扇区,每磁道扇区数这几个概念。 每个盘片有两个磁头,分别位于

Linux Kernel Developer 3468

《YOLO11改进有效涨点》 专栏目录 | 目前已有100+篇内容,内含各种Head检测头、损失函数Loss、Backbone、Neck等创新点改进【持续更新】

YOLO11改进专栏目录,YOLO11改进目录

kay_545 1万+

Bochs简易教程

同步更新于雪梨教育 Bochs是个啥? 简单来说bochs是一个模拟器,能够完整的模拟一台计算机。详细来讲bochs是X86硬件平台的开源模拟器,完全可以通过软件来给我们提供各种所需的硬件资源。 和bochs类似的虚拟机软件还有我们常用的VMware、Virtuabox,但区别也是明显的。bochs是完全依靠软件来模拟整个环境的:从启动到重启包括PC的外设键盘、鼠标、磁盘以及网卡等,全部都是由软件...

码匠联盟 9846

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

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

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

linux中使用bochs调试helloword引导程序

1.环境工具 ubuntu 18.04.1 nasm bochs 2.nasm安装:sudo apt-get install nasm 编译bochs依赖包的安装库:sudo apt-get install vgabios xorg-dev bochs-sdl bochs bochs-x bochsbios bochs-doc libgtk2.0-dev 下载bochs源码,http:...

weixin_30566063的博客 257

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

哈工大操作系统实验一--调试分析 Linux 0.00 引导程序

Bochs。

weixin_63064634的博客 4974

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

基于 Bochs 的操作系统内核实现

简介 Bochs 简介 Bochs(读音Box)是一个开源的模拟器(Emulator),它可以完全模拟x86/x64的硬件以及一些外围设备。与VirtualBox / VMware等虚拟机(Virtual Machine)产品不同,它的设计目标在于模拟一台真正的硬件,并不追求执行速度的高效,而追求模拟环境的真实,同时带有强大的调试功能,比如观察寄存器、对实地址/虚拟地址下断点、装载符号

xyjikl 4177

03 - 调试环境的搭建(Bochs)

03 - 调试环境的搭建(Bochs)

嵌入式wu 2212

Bochs调试及相关仿真工具的使用方法

关键词:bochs,自己动手写操作系统  一 安装具有调试功能的bochs 注意:安装bochs以后,常常发现bochs不能调试,原因如下: $ sudo apt-get install vgabios bochs bochs-x bximage 敲入这样一行命令,不一会儿就装好了。缺点:没有调试功能的,这显然不能满足我们的需要,所以最好的方法还是从源代码安装. 首先下载最新版本

xyjikl 1295
下一篇: 关于bochs调试linux的原理解读
m47838704
博客等级 码龄16年 91粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值