当前位置: 首页 > news >正文

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

今天读了《操作系统真象还原》这本书,写上比较幽默通俗。书中例子需要安装一个bochs系统,记录一下安装过程。参考了书中1.4,1.5两节,书中尽让有两处问题,也记录了下来。

1.3 操作系统的宿主环境

下载地址:Bochs x86 PC emulator - Browse /bochs at SourceForge.net

书中使用2.6.2版本,虽然比较老(2024年还在更新,已经是2.8版本了),但是为了和书上完全一致,我也不太熟悉这个系统,就下载了2.6.2(2013年5月的版本,已经11年过去了)

download in /media/vdc/emu

tar zxvf bochs-2.6.2.tar.gz

cd bochs-2.6.2

./configure --prefix=/media/vdc/emu/bochs --enable-debugger  --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11

敲这几个选项时,顺序错了,iodebug放前面,结果configure不过,提示是否是交叉编译,需要设置host,我搜了半天,以为少了配置项:--build=i386-linux --host=i386-linux  结果不起作用. 最终按书上顺序修改后就好了,看来提示很不靠谱啊。

然后:make

提示错误gtk/gtk.h: No such file or directory,这次搜到了正确答案

安装bochs问题记录 - 知乎

yum install gtk2 gtk2-devel gtk2-devel-docs

这时再make还不行,就有删了目录,重新tar,重新执行,终于又出了错误:提示少pthread

这个书上有,修改Makefile,增加pthread链接:

vim Makefile
line 92: -lpthread
 

1.4节 配置bochs

share/doc/bochs/bochsrc-sample.txt  这是个例子,可以基于书上内容,从这个例子上改

这里有两个坑,书上是错的:

1.keyboard_mapping已经废弃了,不知道为啥还用,网上搜了,有人遇到同样问题:

Bochs出现'keyboard_mapping' is deprecated - use 'keyboard' option instead.解决方法_bochs keyboard-CSDN博客

2.下面这句不可加,因为编译是没有加:
gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0

最终的bochsrc.disk配置文件如下:

megs: 32
romimage: file=/media/vdc/emu/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/media/vdc/emu/bochs/share/bochs/VGABIOS-lgpl-latest
boot: disk
log: bochsout.txt
mouse: enabled=0
keyboard: keymap=/media/vdc/emu/bochs/share/bochs/keymaps/x11-pc-us.map
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
 

1.5 运行bochs

bin/bochs
bochsrc.disk

插曲:因为是debug模式,运行进去后,boch提示一个命令行,需要输入c,继续执行,才能运行。

参考了:bochs: The Open Source IA-32 Emulation Project (New Bochs Documentation)

bin/bximage --help
bin/bximage -hd -mode="flat" -size=60 -q hd60M.img

bochsrc.disk
line 35: ata0-master: type=disk, path="hd60M.img", mode=flat, cylinders=121, heads=16,spt=63

bin/bochs -f bochsrc.disk

相关文章:

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

今天读了《操作系统真象还原》这本书,写上比较幽默通俗。书中例子需要安装一个bochs系统,记录一下安装过程。参考了书中1.4,1.5两节,书中尽让有两处问题,也记录了下来。 1.3 操作系统的宿主环境 下载地址&#xff1a…...

windows平台安装labelme

之前写过一篇文章也是关于在windows平台安装labelme的:《windows平台python版labelme安装与使用_labelme下载-CSDN博客》,随着软件与工具的更新换代,按照同样的方法最近在使用的时候出现了错误,出现创建虚拟环境失败,具…...

微服务之SpringCloud AlibabaSeata处理分布式事务

一、概述 1.1背景 一次业务操作需要跨多个数据源或需要跨多个系统进行远程调用,就会产生分布式事务问题 but 关系型数据库提供的能力是基于单机事务的,一旦遇到分布式事务场景,就需要通过更多其他技术手段来解决问题。 全局事务:…...

2005-2021年全国各地级市生态环境注意力/环保注意力数据(根据政府报告文本词频统计)

2005-2021年全国各地级市生态环境注意力/环保注意力数据(根据政府报告文本词频统计) 2005-2021年全国各地级市生态环境注意力/环保注意力数据(根据政府报告文本词频统计) 1、时间:2005-2021年 2、范围:2…...

熟悉这些道理可以让人更好地应对各种挑战和困难。

1. 为别人尽最大的力量,最后就是为自己尽最大的力量。——罗斯金 2. 世上有一条永恒不变的法则:当你不在乎,你就得到。当你变好,你才会遇到更好的。只有当你变强大,你才不害怕孤单。当你不害怕孤单,你才能够宁缺毋滥。…...

AI去衣技术在动画制作中的应用

随着科技的发展,人工智能(AI)已经在各个领域中发挥了重要作用,其中包括动画制作。在动画制作中,AI去衣技术是一个重要的工具,它可以帮助动画师们更加高效地完成工作。 AI去衣技术是一种基于人工智能的图像…...

卷积神经网络要点和难点实际案例和代码解析

卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。卷积神经网络仿造生物的视知觉机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够…...

initramfs及rpm/dracut操作

一、背景 更新bundle包后发现系统异常。 定位发现驱动升级不成功,内核启动后加载的还是更新前的旧驱动。但等内核启动完成后,卸载旧驱动手动insmod新驱动,是可以加载成功的。 驱动的安装目录在/lib/modules/$KERNELVERSION/extra目录下。 …...

Kafka 2.13-3.7.0 在 Windows 上的安装与配置指南

在本文中,我将引导您完成在Windows操作系统上安装Apache Kafka 2.13-3.7.0的全过程,包括下载Scala运行环境、Kafka软件包、配置相关设置,并最终启动Kafka服务。此外,还会简要介绍如何使用客户端工具进行查看和管理。 Kafka的命名…...

C++ 顺序线性表的功能

顺序线性表的功能 //头文件 #pragma once#define LIST_INIT_SIZE 50 #define LIST_INCREMENT 20 #define OK 1 #define ERROR 0typedef int Status;typedef char ElemType;typedef struct list_ {ElemType* elem;int length;int listize; }SqList;// 1 初始化 函数 Status…...

C++面经 每日一问(二)

将引用作为函数参数有什么影响? 传递引用给函数与传递指针的效果相同。这意味着被调函数中的形参变量将成为主调函数中实参的别名,从而直接对目标对象进行操作。相比于传递指针,这种方式消除了对指针的繁琐操作,提高了代码的清晰性…...

最新版Ceph( Reef版本)块存储简单对接k8s

当前ceph 你的ceph集群上执行 1.创建名为k8s-rbd 的存储池 ceph osd pool create k8s-rbd 64 642.初始化 rbd pool init k8s-rbd3 创建k8s访问块设备的认证用户 ceph auth get-or-create client.kubernetes mon profile rbd osd profile rbd poolk8s-rbd部署 ceph-rbd-csi c…...

Vue生命周期都有哪些?

定义 Vue的生命周期就是实例从创建到销毁的一个过程&#xff0c;即从创建、初始化数据、编译模板、挂载Dom($el)->渲染、更新->渲染&#xff0c;卸载等一系列的过程。el是挂载点如<div id"app"></div>。 Vue的生命周期分为八个阶段 1.beforeCreate…...

景源畅信:个人抖音小店怎么开通?

在数字时代的浪潮中&#xff0c;个体创业已不再是遥不可及的梦想。特别是随着短视频平台的崛起&#xff0c;抖音不仅成为人们娱乐消遣的新宠&#xff0c;更是众多创业者眼中的“新大陆”。你是否也曾憧憬过在抖音上开一家属于自己的小店?那么&#xff0c;如何开通个人抖音小店…...

python学习笔记B-16:序列结构之字典--字典的遍历与访问

下面是字典的访问和遍历方法&#xff1a; d {10:"hello",20:"python",30:"world"} print(d[10],"--",d[20],"--",d[30]) print(d.get(10)) print("以上两种访问方式的区别是&#xff0c;d[key]若键是空值&#xff0c…...

《QT实用小工具·四十八》趣味开关

1、概述 源码放在文章末尾 该项目实现了各种样式的趣味开关&#xff1a; 1、爱心形状的switch开关&#xff0c;支持手势拖动、按压效果 2、线条样式的3种开关 项目demo演示如下所示&#xff1a; 使用方式&#xff1a; 1、sapid_switch文件夹加入工程&#xff0c;.pro文件中…...

QML进阶(十四) Model-View-Delegate视图框架

文章目录 数据模型(Model)C++数据模型XmlListModelRepeater模型视图框架(View)ListViewTableViewGridViewPathViewMVC(Model-View-Controller)模式将视图系统拆分为模型、视图、控制器三部分,每个部分都相对独立职责单一。模型(model)负责管理视图的数据并对外提供服务。视图(…...

word:三线表的绘制【攻略】

word&#xff1a;三线表的绘制【攻略】 前言版权推荐word&#xff1a;三线表的绘制效果简单方法另外的方法 最后 前言 2024-5-7 18:25:08 以下内容源自《【攻略】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客…...

嵌入式物联网系统软硬件基础知识大全(2)

接口技术 1. Flash存储器 (1)Flash存储器是一种非易失性存储器,根据结构的不同可以将其分为NOR Flash和NAND Flash两种。 (2)Flash存储器的特点: A、区块结构:在物理上分成若干个区块,区块之间相互独立。 B、先擦后写:Flash的写操作只能将数据位从1写成0,不能从…...

Origin拟合EIS(电化学阻抗谱),怎么出来圆圈

1.先导入数据&#xff0c;以点图的形式画出来 2.重要的一步Fitting&#xff0c;按照我这个一步一步来就行 3.将其中的Function选择为Elipse&#xff0c;然后点拟合至最佳条件 4.第三步做完就会发现圆圈已经出来了&#xff0c;然后点OK就行 5.搞定...

深度解析:实战掌握神经网络架构可视化完整方案

深度解析&#xff1a;实战掌握神经网络架构可视化完整方案 【免费下载链接】Neural-Network-Architecture-Diagrams Diagrams for visualizing neural network architecture 项目地址: https://gitcode.com/gh_mirrors/ne/Neural-Network-Architecture-Diagrams 在深度学…...

从开题到定稿,okbiye 如何让本科毕业论文写作告别 “通宵焦虑”

okbiye-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPT毕业论文 - Okbiye智能写作https://www.okbiye.com/ai/bylw 一、本科毕业论文的 “三座大山”&#xff0c;正在拖垮你的毕业季 对于大多数本科生而言&#xff0c;毕业论文写作早已不是 “写一篇文章”…...

手把手教你用DaVinci Developer和Configurator Pro搞个‘联合作战’环境

实战指南&#xff1a;构建DaVinci工具链协同开发环境 在汽车电子软件开发领域&#xff0c;Vector公司的DaVinci工具链已成为AUTOSAR标准落地的重要支撑。对于需要同时处理软件组件(SWC)设计和ECU配置的团队而言&#xff0c;如何高效协同使用DaVinci Developer和Configurator Pr…...

LeetCode 数据流中第K大元素题解

LeetCode 数据流中第K大元素题解 题目描述 设计一个数据流&#xff0c;找到数据流中第 k 大的元素。 示例&#xff1a; 输入&#xff1a;k 3, arr [4,6,5]输出&#xff1a;5 解题思路 方法&#xff1a;堆 思路&#xff1a; 使用最小堆维护前 k 大的元素。遍历数据流&#xff…...

OBS面部追踪插件:让你的直播镜头自动跟随你的脸

OBS面部追踪插件&#xff1a;让你的直播镜头自动跟随你的脸 【免费下载链接】obs-face-tracker Face tracking plugin for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-face-tracker 还在为直播时频繁调整镜头位置而烦恼吗&#xff1f;OBS Face Tracke…...

手把手改造libmad:将一次性加载改为流式解码,拯救你的内存不足嵌入式系统

嵌入式音频革命&#xff1a;libmad流式解码改造实战指南 在资源受限的嵌入式环境中处理MP3音频&#xff0c;就像试图用吸管喝光整个游泳池的水——传统的一次性加载方式会让你的系统瞬间窒息。当树莓派Pico这类微控制器只有264KB的RAM时&#xff0c;一个5MB的MP3文件就能让内存…...

从零到专业:ComfyUI中文工作流全解析与技术实践

从零到专业&#xff1a;ComfyUI中文工作流全解析与技术实践 【免费下载链接】ComfyUI-Workflows-ZHO 我的 ComfyUI 工作流合集 | My ComfyUI workflows collection 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-Workflows-ZHO 在AI图像生成领域&#xff0…...

NX浮动许可利用率低:软件许可浪费,高端设计团队解脱

我去年在XX公司遇到个事&#xff0c;设计团队的NX license用着用着突然卡住了&#xff0c;明明有二十多个电脑在用&#xff0c;License Manager显示只剩三个可用。当时我就懵了&#xff0c;这配置不是白搭了吗&#xff1f;后来查资料才明白&#xff0c;这是典型的浮动许可资源浪…...

终极音乐格式转换指南:3步完成音频解密与跨平台播放

终极音乐格式转换指南&#xff1a;3步完成音频解密与跨平台播放 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地址: https:/…...

ARM+FPGA异构计算在能源电力领域的核心优势与应用实践

1. 项目概述&#xff1a;为什么是ARMFPGA&#xff1f;最近几年&#xff0c;在能源电力这个对可靠性和实时性要求极高的领域&#xff0c;我观察到一股明显的技术趋势&#xff1a;越来越多的项目开始采用“国产ARM处理器 FPGA”的异构计算架构。这不再是实验室里的概念验证&…...