【操作系统真象还原】01 Ubuntu环境下配置bochs和nasm

2023-11-05 00:10

本文主要是介绍【操作系统真象还原】01 Ubuntu环境下配置bochs和nasm,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

开始学习《操作系统真象还原》这本书,记录一下学习过程。

配置 nasm

nasm 简介

nasm 是一个年轻、开源、免费的汇编器。

安装 nasm

sudo apt install nasm

配置 bochs

选择自行编译 bochs 源码来进行安装。

下载 bochs 源码

下载链接: bochs下载链接
选择下载压缩包: bochs-2.6.1.tar.gz

解压

tar zxvf bochs-2.6.1.tar.gz

生成 MakeFile

bochs有不同的调试方式,可编译成不同的版本。
下面两个任选一个版本安装。
书上推荐使用的是 gdb调试版。但介绍 bochs 调试方法时,用的却是 bochs 提供的debugger。所以我两个版本都有安装。

注意:下面的命令中 --prefix 参数中的 path 需要更换为你想要的安装路径。
生成使用 bochs 提供的debugger的版本

cd bochs-2.6.1
./configure --prefix=path/bochsTwo --enable-debugger --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11

生成使用 gdb 进行调试的版本

cd bochs-2.6.1
./configure --prefix=path/bochsTwo --enable-gdb-stub --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11

编译

在终端中输入 make ,回车。
可以看见开始编译。
编译过程

可能会发生的错误

① 缺少头文件 <gtk/gtk.h>
解决方法:sudo apt-get install libgtk2.0-dev
② 缺少 pthread 引用
解决方法:在生成的MakeFile文件中的大概93行,LIBS=... 最后加上-lpthread

安装

make install

编写 bochs 配置文件

我的配置 (path需要替换)

# bochs配置文件
# bochsrc.diskmegs: 32romimage: file=path/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=path/bochs/share/bochs/VGABIOS-lgpl-latestboot: disklog: bochs.outmouse: enabled=0
keyboard_mapping: enabled=1, map=path/bochs/share/bochs/keymaps/x11-pc-us.map
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
# 若使用 gdb 调试,则取消下一行的注释
#gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0

将配置文件放入 path/bochs/bin 目录中。

制作镜像

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

输出
将箭头所指输出添加到你的配置文件中。

开始模拟

cd bochs/bin
./bochs -f bochsrc.disk

bochs界面
选择默认选项 6 开始模拟。因为还没有编写MBR,所以会出现以下界面:
No bootable device

这篇关于【操作系统真象还原】01 Ubuntu环境下配置bochs和nasm的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/346106

相关文章

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

如何评价Ubuntu 24.04 LTS? Ubuntu 24.04 LTS新功能亮点和重要变化

《如何评价Ubuntu24.04LTS?Ubuntu24.04LTS新功能亮点和重要变化》Ubuntu24.04LTS即将发布,带来一系列提升用户体验的显著功能,本文深入探讨了该版本的亮... Ubuntu 24.04 LTS,代号 Noble NumBAT,正式发布下载!如果你在使用 Ubuntu 23.

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

如何安装 Ubuntu 24.04 LTS 桌面版或服务器? Ubuntu安装指南

《如何安装Ubuntu24.04LTS桌面版或服务器?Ubuntu安装指南》对于我们程序员来说,有一个好用的操作系统、好的编程环境也是很重要,如何安装Ubuntu24.04LTS桌面... Ubuntu 24.04 LTS,代号 Noble NumBAT,于 2024 年 4 月 25 日正式发布,引入了众

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件

如何安装HWE内核? Ubuntu安装hwe内核解决硬件太新的问题

《如何安装HWE内核?Ubuntu安装hwe内核解决硬件太新的问题》今天的主角就是hwe内核(hardwareenablementkernel),一般安装的Ubuntu都是初始内核,不能很好地支... 对于追求系统稳定性,又想充分利用最新硬件特性的 Ubuntu 用户来说,HWEXBQgUbdlna(Har