Bochs源码分析 - 3: 同步到github上

bochs编译安装和调试方法 最近在研究从0开始编写操作系统,使用bochs模拟器进行调试,bochs支持单步运行汇编代码,比qemu-system-x86_64会更加方便,这里记录一下bochs的操作方法。 阅读详情


这次打算长久更新,创建了一个仓库,里面放了有关代码与工具。

github https://github.com/kkgh0st/kkbochs

bochs及qemu调试内核 环境搭建        首先,下载bochs及qume资源。github下载编译安装一般执行下面的指令即可:        ./configure; make; make 阅读详情

相关推荐

Bochs源码分析 - 1: Bochs工程项目的编译

编译环境 操作系统: Windows 10 IDE: Visutal Studio 2019 + SDK10 ---------------------------------------------------------------- 备注: 编译环境没啥要求,正常的vs2017,vs2019 win10SDK都是可以的。 ---------------------------------------------------------------- 下载地址 https://sou.

WriteAnything_的博客 992

【实现操作系统 01】CentOS 9 安装配置 Bochs 2.7 虚拟机,及编写简单的 bootloader 并写入软盘启动

在 CentOS 9 下安装 Boch 2.7,并运行一段简单的 boot 代码——从零开始写操作系统的第一步

Imagine Miracle的博客 4884

自己动手写操作系统(二)——搭建bochs环境

在学习《自己动手写操作系统》第三章时候遇到了运行环境的问题,经过一些思考决定使用bochs,但是网上对bochs的总结零零散散,所以我在这里以第三章程序运行环境搭建来的bochs进行一定的总结

YuDale的博客 1万+

bochs简单使用

1、安装 指令安装 sudo apt-get install vgabios bochs bochs-x bximage 源码安装,如果不需要调试功能configure后不用加选项,源码包下载地址 tar vxzf bochs-xxx.tar.gz cd bochs-xxx ./configure --enable-debugger --enable-disasm make ...

lingxufire的博客 7596

Bochs源码分析 - 8:bochs的CPU代码初步分析

前言 上一篇文章,我们分析了floppy设备的初始化,本来我们希望看看floppy的工作原理,但是调试时发现其运行cpu,通过BIOS启动指令来调用floppy。(从现在来看这是肯定的,floppy是外设,要想调用必须通过cpu,还是自己对底层不太熟悉) Bochs的CPU模块特别复杂,函数众多,我们是第一次分析,对其结构还是不太熟悉,我们先尝试来看其执行流程。在分析前,我浏览了一遍喻强老师的《Bochs项目源码分析与注释》,其CPU模块的核心图如下。 CPU模块的...

WriteAnything_的博客 2887

Bochs源码分析 - 4: 使用ida来调试bochs

前言 bochs内部提供了一个调试器,但是这个命令行调试器相当难用,想找一个gui的debugger。第一次是在百度百科的bochs词条中介绍的peter-bochs-debugger调试器(java编写),但是后来发现ida也有一个bochs调试器,因为对ida比较熟悉,就选用此作为bochs调试器。 在配置过程中参考博客 https://blog.csdn.net/cssxn/article/details/90738498 中的配置,但是这是直接发布版本,拿源码编译...

WriteAnything_的博客 2745

一个简单的多任务内核实例

这是在上篇博文的基础上又新增了一个任务,两个任务通过时钟中断交替运行。 编译器:nasm 虚拟机:bochs 操作系统:macosx github interrupt源码 参考:赵炯《Linux内核完全剖析》 init.s [BITS 32] LATCH equ 1193180 SCRN_SEL equ 0x18 LDT0_SEL equ 0x28 TSS0_SEL equ 0x...

fxnfk 1014

Bochs源码分析 - 28:bochs开启x2apic与SMP编译说明

前言 我们现在来根据《x86/x64体系探索及编程》的第十七章分析apic结构,第一个实验就是检测local apic与x2apic,但是现在bochs最新版本配置文件有些变动,需要添加有关配置属性才能开启,为解决这个问题分析了好久(主要是方向找错了)。 开启x2apic 在bochs的配置文件bochsrc.bxrc中添加下面这行配置文件,即可开启,否则按照原来的配置文件检测无效。 cpuid: apic=x2apic 运行结果如下所示,可以...

WriteAnything_的博客 1135

Bochs源码分析 - 0 文章集合

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

WriteAnything_的博客 1801

Bochs源码分析 - 11:《X86探索及编程》代码初步解释

前言 现在我们来阅读邓志老师的《x86/x64体系探索及编程》,边阅读边将其代码放到bochs中运行,然后观察bochs的CPU是如何来模拟的。现在我们来详细分析ex3-2目录里面的内容。 boot.asm 代码解读 自己在工作中经常看汇编代码,但是写汇编代码真的很少写过,我们现在一边分析着这段boot汇编代码一边回顾其如何编写。 ; Int 19h 加载 sector 0 (MBR) 进入 BOOT_SEG 段, BOOT_SEG 定义为 0x7c00 ...

WriteAnything_的博客 1019

Bochs 项目源码分析与注释

Chapter 1 x86 体系结构与PC 系统概要.....................................1 1.1 x86 CPU 结构...............................................................................................................1 1.1.1 冯诺依曼架构和CISC 指令集......................................................................1 1.1.2 CPU 结构........................................................................................................1 1.1.3 CPU 工作模式................................................................................................2 1.2 x86 体系结构概览........................................................................................................3 1.3 PC 系统.........................................................................................................................5 1.3.1 PC 系统概述...................................................................................................5 2.3.2 总线拓扑.........................................................................................................6 2.3.3 存储器与I/O 编址.........................................................................................6 2.3.4 关于系统的启动与引导.................................................................................8 Chapter 2 Bochs 工程概述....................................................... 11 2.1 开源项目Bochs 介绍.................................................................................................11 2.2 版本2.2.1 源码组织..................................................................................................11 2.3 工程类结构.................................................................................................................12 2.4 主体框架结构分析.....................................................................................................13 2.4.1 Bochs 工程中的重要类................................................................................13 (1) VM 控制台界面类.............................................................................................13 (2) CPU 模拟............................................................................................................14 (3) Memory 模拟......................................................................................................14 (4).I/O device 模拟...................................................................................................15 2.4.2 入口函数main()及Win32 Gui 初始化........................................................15 2.5 Bochs 的工作方式......................................................................................................18 Chapter 3 CPU 类的源码分析...................................................20 3.1 CPU 类概述................................................................................................................20 3.1.1 CPU 逻辑结构框图......................................................................................20 3.1.2 类BX_CPU_C 成员归纳.............................................................................20 3.2 类BX_CPU_C 源码分析..........................................................................................21 3.2.1 CPU 特性声明..............................................................................................21 3.2.2 类bxInstruction_c 成员分析........................................................................22 3.2.3 类BX_CPU_C 源码注释.............................................................................22 3.3 通用寄存器.................................................................................................................29 3.3.1 数据结构与注释...........................................................................................29 3.3.2 通用寄存器归纳...........................................................................................30 3.4 段寄存器、全局寄存器GDI 和IDT ........................................................................31 3.4.1 数据结构与注释...........................................................................................31 3.4.2 段寄存器结构分析.......................................................................................33 3.5 CPU 状态字EFLAGS................................................................................................35 3.5.1 数据结构与注释...........................................................................................35

Bochs源码分析 - 6: bochs的物理内存初始化

前言 上一篇文章,我们走马观花地介绍了bochs从启动到CPU执行流程的大体流程,里面相关数据结构没详细分析。这篇文章我们尝试来详细分析一下bochs的物理内存初始化,首先有个概念需要理清(相信来看bochs源码的人肯定会知道):bochs只负责处理物理内存,而虚拟内存是运行在bochs中运行的OS来负责的,我们只需要关注物理内存。 找到内存初始化函数 在上篇文章中,我们提到过一个比较重要的函数bx_init_hardware(),该函数负责初始化各种硬件(内存,Io...

WriteAnything_的博客 940

Bochs项目源码分析与注释.pdf

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

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

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

xyjikl 4176

Matlab Arduino 硬件支持包安装 MATLAB_Support_Package_for_Arduino_Hardware

Matlab Arduino硬件支持包离线安装

weixin_43283734的博客 2833

本地化搭建DeepSeek+RAGFlow,构建个人知识库

本地化搭建DeepSeek+RAGFlow,构建个人知识库。至少32G以上内存、500G以上空余磁盘空间。

gogospecter的专栏 7415

Bochs源码分析 - 5: 从启动到cpu运行之前的一系列初始化

前言 现在正式开始调试bochs源代码,在这之前我也没读过bochs源码,算是从零开始读,自己可能会走入一些误区,有些可能猜错,如果发现之后会来改正。我们先大体走一遍整个系统,不要纠结于各种复杂细节流程。 这篇文章开始分析程序在点击启动后如何开始并且一步步初始化完成初始化,完成相关配置文件。说实话,如下图bochs启动时一系列的配置参数,对像我这种新手来说是相当恐怖的,各种启动参数信息。其实调试过一遍之后,虽然里面很多细节还是不太懂,但是再看这些信息心里踏实多了。 启...

WriteAnything_的博客 1312

CZT与FFT频谱分析方法对比:从任意频带重采样到高精度频谱分析

M = 85 % 输出点数f0 = 70 Hz % 起始频率DELF = 0.4 Hz % 频率步长频率分辨率提高到0.4 Hz分析带宽聚焦在[70, 103.6]Hz更清晰地分辨出78Hz和82Hz的频率分量。

2403_88098319的博客 1853

bochs2.6中bochsrc的介绍

我在看<<oranges 一个操作系统的实现>>一书中,有对对bochs的配置文件bochsrc的书写,但是,上面有些已经更新了,所以,现在介绍一下. 就像第一章中动手写一个极其简单的引导系统中bochsrc,应该改成下面的形式才不会出现问题. <script src="https://code.csdn.net/snippets/547939.js" t...

hongbochen1223的专栏 736

tft_espi 中文字体及自定义字体制作(tft.eSPI模块)

tft.eSPI库自定义字体方法 先下载 processing 然后安装到mixly安装目录下找到tft_eSPI文件夹。

琢磨侠的博客 2749

保姆级教程:用BMS的HVIL检测电路,手把手教你排查高压互锁故障(附PWM/直流源方案对比)

本文详细解析了BMS中的HVIL检测电路,通过对比直流源与PWM两种方案,提供了一套系统化的高压互锁故障诊断流程。从电路原理到实战技巧,帮助维修人员精准定位故障根源,提升电动汽车高压系统的安全性和可靠性。

weixin_29300241的博客 383

bochs 详细介绍

BOCHS 简介及配置 Bochs 简介 Bochs(读音同 Box)是用C++开发的以 LGPL 许可证发放的开放源代码的x86,x86-64模拟器,模拟整个PC。它被设计成可以运行于多种主流平台下,包括x86, PPC, Alpha, Sun和MIPS。 和 Bochs 类似的虚拟机软件还有:VMware,Virtual PC,VirtualBox,但这些都使用了虚拟化技术,部分指...

wanyongtai的博客 2万+

基于MATLAB的井筒多相流模拟

井筒多相流的模拟可以基于不同的数学模型和计算方法。其中,最常用的模型之一是多相流模型,它基于质量守恒、动量守恒和能量守恒等原理,描述了流体在井筒中的流动行为。对于井筒多相流的模拟和分析可以帮助我们理解和优化油气田开发过程中的流体行为,从而提高产量和效率。在本文中,我们将介绍如何使用MATLAB进行井筒多相流的模拟,并提供相应的源代码。需要注意的是,以上示例是一个简化的模拟,仅用于演示如何使用MATLAB进行井筒多相流模拟。实际应用中,我们需要考虑更多的物理过程和参数,并使用更复杂的数值方法和模型进行模拟。

AtdiHtml的博客 702

Bochs源码分析 - 2:使用bochs运行引导代码

前言 这一篇文章中,我们尝试使用编写引导代码,然后配置bochs让其可以运行这份代码,过程中遇到的问题,为什么这么做,我会尽可能详细的描述给大家,当然自己可能存在错误,请见谅!! 安装 nasm 编译器 ...

WriteAnything_的博客 1309

Python爬虫案例——解密抓取西红柿小说《我不是戏神》全章节!!!

本文介绍了抓取番茄小说网站《我不是戏神》全本内容的完整流程。首先分析网站反爬机制,发现采用自定义混淆字体加密文本内容。通过下载字体文件并解析字符映射关系,组建本地字体映射表。随后编写Python爬虫程序,实现自动获取章节链接、请求加密内容、解密替换字体、保存为本地txt文件等功能。代码包含UA伪装、请求头设置、进度条显示等细节处理,最终实现小说内容的完整抓取与解密存储。

@CSDN盲敲代码的阿豪的博客 652

【100%通过率】华为od机试C卷【出差 / 员工派遣】Java&Go 实现

某公司部门需要派遣员工去国外做项目。现在,代号为 x 的国家和代号为 y 的国家分别需要 cntx 名和 cnty 名员工部门每个员工有一个员工号 (1,2,3,......),工号连续,从 1开始。部长派遣员工的规则:

MISAYAONE的博客 2619
上一篇: Bochs源码分析 - 2:使用bochs运行引导代码
下一篇: Bochs源码分析 - 4: 使用ida来调试bochs
WriteAnything_
博客等级 码龄5年 66粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值