☰
第1章:开发环境搭建,在乌班图中安装 Bochs
2026/9/30 2:44:08 网站建设 项目流程

专栏导航

上一篇:第1章:开发环境搭建,在乌班图中安装 pluma

回到目录

下一篇:第1章:在乌班图中安装 Visual Studio Code

本节前言

对于本节所讲解的知识,有可能,你会需要时不时地参考本专栏的其它文章。真的遇到了需要参考之前的文章的知识点,请你自行查阅。

我呢,也会提到一部分的参考课节。但是呢,你不应该依赖于我的主动提及。最好呢,你自己能够多去了解和查看本专栏目录。

另外呢,本专栏是一个整体,是用来系统化地讲解 Linux 0.12 内核的一套教程。所以呢,也需要你在学习本节课程的时候,注意专栏的体系完整性。

比如软件安装,我们需要在整个专栏中,安装一套软件,那你如果是为了学习 Linux 0.12 内核,那么,你就需要跟随着本教程,安装好一整套软件,而不可以孤立地看着某个课节。

比如说,我们的专栏中,会讲解 Bochs 模拟器 的安装。这个软件的安装,就需要在我们专栏中所指定的乌班图 26.04.1 版本里面进行。脱离了这个系统版本,你在其它的版本的乌班图里面,或者是在其它的 Linux 发行版里面来安装,那么,你可能会安装不上。

所以,请大家在学习本专栏的课节的时候,务必要注意本专栏的体系完整性,注意查看本专栏的目录。

我们来查看一下我们当前软件安装任务进度。

就剩下三项了。

本节,我们来安装 Bochs 模拟器。

Bochs 模拟器,在乌班图里面可以安装,在 Windows 里面也可以安装。

Bochs,它的发音与 “box” 相同。

Bochs,有的教程也将其称作是【虚拟机】。官方网站上,会将其称为【模拟器】。

本专栏沿用官方的叫法,将其称作【模拟器】。

本节,我们来讲解,在乌班图里面安装 Bochs 模拟器。

本节内容,预计会比较长。

建议,在开始本节的正式内容的学习之前,你可以去做一点热身运动,或者听一首歌,以此来放松心情,进行心灵上的蓄力。

为了使本节的软件安装工作能够顺利开展,请务必确保,你安装的乌班图版本与我的版本严格一致,也需要确保你已经更新了软件仓库列表。

也就是说,以下的几个课节,你需要已经阅读过,并且跟我的专栏课程,进行了同样的软件安装操作。

参考课节:第1章:开发环境搭建,安装乌班图系统

参考课节:第1章:开发环境搭建,安装部分编译工具链

参考课节:第1章:开发环境搭建,在乌班图中安装 pluma

Linux 的世界里,软件安装操作,很多时候是比较麻烦的。

同样是乌班图 26.04,26.04.1 和 26.04.2,可能就不一样。同样的配置参数在这个版本里面可用,换了另一个版本可能就用不了了。

如果是 26.04.1 与 28.04.3 呢?可能更是会有着区别。这一点区别,也许就会造成,我所讲述的软件安装方法,在 26.04.1 里面能够正常安装和运行,而在 26.04.2 和28.04.3 里面不能够安装好。

所以,如果你是初学者,暂时缺乏解决各种奇奇怪怪的问题的能力,请务必和我的专栏里面的软件安装教程保持一致。

另外,我们也再次重申学习要求。

Linux 操作系统,包括乌班图系统,它的不同版本之间的兼容性可能不稳定。以我们的专栏为例,我们需要在乌班图里面安装 Bochs、QEMU 模拟器。安装好了以后,在现有的系统里面运行起来没问题。可是,哪一天,如果你升级了系统版本,到了新的系统版本里面,可能你的 Bochs 和 QEMU 模拟器就运行不了了。

所以,本专栏的学习要求是,作为一个学习型的虚拟机系统,安装好了乌班图以后,你就不要去升级乌班图了。无论是说,新来了 26.10,还是28.04,你呢,都不要去升级系统了。

我们开始。

一. 以 apt install 命令安装 Bochs 及相关依赖

首先呢,还是请大家打开虚拟机乌班图系统。然后呢,在桌面上打开终端,并将终端调整为下图所示的纯净状态。

接下来呢,我们先来看一看我们需要在终端里面执行的命令,先不要去执行。命令内容如下。

sudo apt install bochs bochs-x bochs-doc bochs-sdl bochsbios vgabios xorg-dev libltdl-dev libsdl1.2-dev

命令的内容还是比较长的,你需要使用 CSDN 的代码块的滚动条滑块,才能看得完整。

我们来调整一下命令内容。

sudo apt install \ bochs bochs-x bochs-doc bochs-sdl \ bochsbios vgabios xorg-dev \ libltdl-dev libsdl1.2-dev

上面的多行代码块的内容与之前的单行的代码块里面的内容,其作用是一样的,都是用【sudo apt install】命令来安装一系列的软件。所安装的软件,是一模一样的。

想要让单行写不下,强行在单行书写又不便于观察与审阅的代码内容,我们可以采用多行书写的方式。

在采用多行书写的时候,可以在某一个单词之后,输入一个或多个空格、Tab 键,然后输入一个反斜杠【\】。这个反斜杠,叫做【续行符】,它是专门为多行书写代码而准备的。我们也可以在 C 语言的宏定义场合使用它。以后,我们会在 Linux 0.12 内核代码中遇到它的。

书写完了续行符以后,立即按下回车键,另起一行,接着书写剩余的内容。

注意,是【立即】。也就是说,在续行符之后,不要再有空格、Tab 键,也不要再有可显示字符。如果续行符之后,再有空格、Tab 键、可显示字符等等的内容,那么续行符就不再是续行符了。

我们若是想要将代码进行多行书写,则续行符【\】必须是某一行的最后一个字符,书写完了续行符以后,必须立即按下回车键,另起一行,书写剩余的内容。

在一次书写里面,可以通过插入多个续行符的方式,来进行代码的多行排版。

还要注意,在最后一行代码的结尾,不要书写续行符了,再写就错了。

好了,该嘱咐的,我都说完了。我们将上面的多行书写的安装命令,再次贴在下面。

sudo apt install \ bochs bochs-x bochs-doc bochs-sdl \ bochsbios vgabios xorg-dev \ libltdl-dev libsdl1.2-dev

这一块安装命令,实在是有点长。不建议你直接在终端书写,将其复制下来吧,然后粘贴到你的乌班图的终端里面,然后回车执行。老样子,该输入密码的,就输入密码然后回车;问你【Y/n】的,那就输入【y】之后按下回车。

然后呢,安装命令就会执行了。

当同时出现白色闪烁的光标及其左侧的命令提示文字的时候,命令就执行完毕了。

结果如下图所示。

到了这里,其实 Bochs 模拟器,我们就已经是安装完了。

只不过呢,此时,我们是以【sudo apt install】命令,以默认安装的方式,来安装的 Bochs 模拟器。

此时,其实已经是可以运行它了。

我们来测试一下。

我们在终端里面输入【bochs】,然后回车,结果如下图所示。

在图3 里面,我们看到了 1 到 7 这六行选项与文字。如果你那里出现了这些个东西,就说明 bochs 模拟器安装好了。

此刻,由于我们并未准备好可运行的操作系统供 Bochs 模拟器来运行,所以呢,我们得马上退出了。

我们在终端里面,输入【7】,然后按下回车,这样就可以退出 bochs 模拟器了。结果如下图所示。

到了这里,基础的 Bochs 模拟,以及为进行源码安装 Bochs 而需要的各项依赖,已经算是准备好了。

关闭图4 所示的终端吧。

我们来看下一分节。

二. 源码安装 Bochs

(一)找到 Bochs 的官网

源码安装 Bochs,这是我们需要去掌握的一项技能。

在本专栏里面,我们基本上,不会怎么使用以源码安装方式来安装的 Bochs,而仅仅使用默认安装的 Bochs 。

但是呢,源码安装的方法,我还是得讲解。你可以不用,但是你得会。因为,说不定以后啥时候,我们就会需要去使用源码安装的 Bochs 呢。

在下述课节中,我们讲解过在乌班图里面使用浏览器的方法。

参考课节:第1章,了解乌班图环境,使用浏览器和邮箱

接下来,请大家打开浏览器,并调到百度首页,如下图所示。

在百度的搜索框里面,我们输入【bochs】,然后搜索,然后呢,请找到下述词条。

点击图6 的红色框线所示的词条,进入下图所示的页面。

图7 就是 Bochs 模拟器的官网了。

在 Windows 系统里面,有可能,在某些浏览器里面,你输入了 bochs 然后按回车,在寻找官网词条的时候,你半天也找不到。那么,你也可以通过在浏览器的地址栏输入网址的方式,来找到 bochs 模拟器的官网。

在这里,我以我本机的 2345 浏览器为例,来演示。

在图8 里面,上方的红色框线所示的输入框,就是 2345 浏览器的地址栏。其它的各种浏览器,它的左上角的输入框,也是它们的地址栏。

接下来,我们在地址栏里面输入 bochs 模拟器的网址。

https://bochs.sourceforge.io/

我们引用块里的网址文本复制粘贴到 2345 浏览器的地址栏,然后按下回车,然后浏览器就会跳转到 bochs 模拟器的官网里面了,结果如下图所示。

建议你将 bochs 模拟器的官网地址给记下来。

(二)了解 Bochs 模拟器的基本信息

然后呢,我们来看一看官网里的一块内容。

我们来将红色框线所示的那一段文字给贴在下面。

Welcome to the Bochs IA-32 Emulator Project
Bochs is a highly portable open source IA-32 (x86) PC emulator written in C++, that runs on most popular platforms. It includes emulation of the Intel x86 CPU, common I/O devices, and a custom BIOS. Bochs can be compiled to emulate many different x86 CPUs, from early 386 to the most recent x86-64 Intel and AMD processors which may even not reached the market yet.

然后呢,我们用浏览器的翻译功能,来翻译一下它。

欢迎来到 Bochs IA-32 模拟器项目

Bochs 是一款高度可移植的开源 IA-32 (x86) PC 模拟器,用 C++ 编写,可在最流行的平台上运行。它包括 Intel x86 CPU、通用 I/O 设备和自定义 BIOS 的仿真。 Bochs 可以被编译来模拟许多不同的 x86 CPU,从早期的 386 到最新的 x86-64 Intel 和 AMD 处理器,这些处理器甚至可能尚未上市。

这是对 Bochs 模拟器的一段简介。

我们接着看。

Bochs is capable of running most Operating Systems inside the emulation including Linux, DOS or Microsoft Windows. Bochs was originally written by Kevin Lawton and is currently maintained by this project.
Bochs can be compiled and used in a variety of modes, some which are still in development. The 'typical' use of bochs is to provide complete x86 PC emulation, including the x86 processor, hardware devices, and memory. This allows you to run OS's and software within the emulator on your workstation, much like you have a machine inside of a machine. For instance, let's say your workstation is a Unix/X11 workstation, but you want to run Win'95 applications. Bochs will allow you to run Win 95 and associated software on your Unix/X11 workstation, displaying a window on your workstation, simulating a monitor on a PC.

然后我们再来用浏览器的翻译功能来翻译这两段。

Bochs 能够在仿真中运行大多数操作系统,包括 Linux、DOS 或 Microsoft Windows。 Bochs 最初由 Kevin Lawton 编写,目前由该项目维护。

Bochs 可以以多种模式编译和使用,其中一些仍在开发中。 bochs 的“典型”用途是提供完整的 x86 PC 仿真,包括 x86 处理器、硬件设备和内存。这允许您在工作站上的模拟器中运行操作系统和软件,就像您在机器中拥有一台机器一样。例如,假设您的工作站是 Unix/X11 工作站,但您想要运行 Win'95 应用程序。 Bochs 将允许您在 Unix/X11 工作站上运行 Win 95 和相关软件,在工作站上显示窗口,模拟 PC 上的监视器。

(三)下载 Bochs 源码

好了,接下来,我们来下载 Bochs 模拟器的源码。

我们在官网首页找到下述页面。

图11 中,红色框线所示的链接文字为【See All Releases】,点击它。然后呢,浏览器会跳转到下述页面。

我们将页面往下拉,找到下述内容。

这里显示了不同的版本。在我写作的时刻,最新的版本,是 3.1 版本。我们点击红色框线所示的【3.1】文件夹图标。结果如下图所示。

将页面往下拉,找到下述内容。

在图15 里面,两个用红色框线标注的东西,建议大家都把它们给下载回去。

其中呢,上边的框线,看那个名字,就知道,它是可以在 64 位的 Windows 操作系统中运行的 Bochs 模拟器。

而下边的红色框线所标注的东西,它就是 Bochs 模拟器的源码包。点击这个【.tar.gz】后缀的东西,然后系统会弹出下载界面,将其下载回去,如下图所示

在图16 中,点击红色框线所示的文件夹图标,结果会打开【主目录/下载】文件夹,如下图所示。

图17 的红色框线所示的文件,就是我们刚刚下载的 Bochs 3.1 版的源码包了。

(四)解压缩与复制源码包

接下来呢,我们单击一下这个源码包,然后点击鼠标右键,弹出下图所示的右键菜单。

我们点击图18 的红色框线所示的【提取】菜单项。结果呢,【.tar.gz】后缀的源码包,会被解压缩。解压缩好了的显示如下。

在未解压缩好的时候,【.tar.gz】后缀的源码包会处于选中状态。而解压缩完毕以后,红色框线所示的解压缩成果对象将会处于选中状态。

被选中的项目,周围会有灰色矩形背景。灰色矩形背景如图17 和图19 所示。

接下来呢,我们单击一下红色框线所示的文件夹,然后点击鼠标右键,在弹出的右键菜单中,单击【复制】菜单项,如下图所示。

点击了【复制】菜单项以后,解压缩成果【Bochs-3.1】文件夹就会被复制到剪贴板里面了。

接下来,我们在图20 的窗口中找到【主文件夹】字样,如下图所示。

主文件夹就是主目录,点击图21 中的红色框线所示的【主文件夹】字样,来到主目录。结果如下图所示。

接下来呢,我们像在 Windows 的资源管理器中新建文件夹一样,通过鼠标右击、点选【新建文件夹】、命名新文件夹名称的方式,新建三个文件夹,它们的名称分别是【C_SYS】、【D】和【E】。结果如下图所示。

一般地,在 Windows 电脑里面,我们会给自己的硬盘分成若干个区,比如分为 C 盘、D 盘、E 盘和 F 盘,等等。

在这里,我在主文件夹里面新建三个文件夹,就是模拟着 Windows 的硬盘分区。D 文件夹象征着 D 盘,E 文件夹象征着 E 盘。至于 C_SYS 文件夹,则是象征着 C 盘。之所以叫做【C_SYS】,是因为,Windows 电脑的 C 盘,通常用作系统盘。系统,英文为 system,取其前三个字母,与 C 连接以下划线,就成为了【C_SYS】这个名字了。

在三个文件夹里面,C_SYS 文件夹,我们用它来安装一些个源码安装的软件,比如我们本节要去安装的 Bochs 模拟器的源码编译版本。E 文件夹,我们打算用它来放置一些个文档。

D 文件夹,我们打算将刚刚复制的解压缩成果【bochs-3.1】粘贴到这里。

接下来呢,我们进入 D 文件夹中。然后点击鼠标右键,在弹出的右键菜单中单击【粘贴】菜单项,结果如下图所示。

之所以要将【主文件夹/下载】中的解压缩成果【bochs-3.1】复制到【主文件夹/D】里面,是为了将【bochs-3.1】放到一个无中文路径的地方。老外的东西,其中文支持度,往往难以确定。而将某些个东西放到不含有中文和空格的路径里,则不会有事。

(五)组建配置选项

(1)设置安装目录

接下来,我们回到主文件夹里面,然后双击进入【C_SYS】文件夹里面,然后在这里新建一个文件夹,将其命名为【bochs_gdb01】,结果如下图所示。

注意两个红色框线所标注的路径与新文件夹名称。

接下来呢,我们找到桌面上的 pluma 图标,如下图所示。

若是还没有安装 pluma 软件的话,请前往下述课节,来了解安装与配置方法。

参考课节:第1章:开发环境搭建,在乌班图中安装 pluma

点击图26 的红色框线所示的 pluma 图标,打开 pluma 软件,如下图 所示。

然后呢,我们回到图25 所示的地方,双击进入【bochs_gdb01】文件夹里面,然后在其中打开一个终端并调整到纯净状态,如下图所示。

然后呢,我们在图28 所示的终端里面,输入【pwd】,然后回车执行,结果如下图所示。

用鼠标单击并拖拽选中红色框线所示的执行结果显示文字,如下图所示。

然后呢,鼠标指针移动到白色高亮选中的文字上,点击鼠标右键,在弹出的右键菜单中单击【复制】菜单项,如下图所示。

这样,选中的白色高亮的文字,我们就将其复制下来了。

然后呢,我们将复制的文字,粘贴到 pluma 软件里面,如下图所示。

图32 中,我们所复制的文字,它是【主目录/C_SYS/bochs_gdb01】的完整路径名。这个路径名,一会儿我们还有用的。

接下来,我们关闭图31 所示的终端。

(2)在官网找到在线文档页面与配置说明页面

然后呢,我们回到打开的那个资源管理器窗口,此时,这个资源管理器,应该是还处在【bochs_gdb01】里面,如下图所示。

然后呢,我们在图33 所示的资源管理器窗口里面,先点击左侧的【主文件夹】字样,回到主目录,然后依次双击进入【D】->【bochs-3.1】->【bochs】文件夹里面,结果如下图所示。

然后呢,我们在图34 所示的文件夹界面里,打开一个终端,并调整为下图所示的纯净状态。

图35 所示的终端界面,我们先留着,不要关闭它,待会儿有用。

接下来呢,我们回到乌班图系统的火狐浏览器,重新打开 Bochs 模拟器官网首页。

bochs 模拟器的官网首页的网址是【https://bochs.sourceforge.io/】。

在 Bochs 官网首页里面,找到下述区域。

图36 的红色框线所示的字样,为【User Guide】,是【用户指南】的意思。点击这个文字连接,跳转到下述的界面。

图37 所示的界面,就是 Bochs 模拟器的在线文档。有空,你可以自己去阅读。

我们将界面往下拉,找到下述的位置。

点击图38 的红色框线所示的蓝色链接文字,然后浏览器会跳转到下述页面。

图39 所示的两个红色框线处的文字,是有点用处的。

(3)编译安装总流程

我们先来看第一个红色框线处的句子。

The standard compile process has three basic steps: configure, make, and make install.

它的意思如下。

标准编译流程有三个基本步骤:使用 configure 程序进行编译配置,使用 make 软件进行编译,使用 make install 命令进行软件安装。

这三个步骤,不能够跳跃,必须要顺次执行,前一个步骤若失败了,后面的步骤就不能启动执行。

我们来到图39 所示的页面,就是为了找可用的配置选项。

(4)--prefix 选项

我们接着看图39 的第二个红色框线所示的部分句子。

One useful configure option is --prefix=directory, which sets the root directory in which Bochs will be installed (default is /usr/local).

它的意思如下。

一个有用的配置选项是 --prefix=directory,其中 directory 参数用于设置 Bochs 模拟器将被安装到的根目录。默认安装到的目录是 /usr/local 。

我们找到图39 所示的浏览器页面,就是为了寻找可用的编译配置选项。

接下来,我们回到 pluma 软件中,另起一行,在其中写入下图所示的东西。

注意,在图40 里面,第 3 行的行末字符是续行符【\】,续行符的右边没有任何字符,没有空格也没有 Tab 键。在第 3 行输入了【\】续行符之后,立即按下回车键,另起一行,将光标定位到第 4 行的开头位置。

然后呢,既然图39 说 --prefix=directory 配置选项很有用,那么,我们就将其粘贴到 pluma 里面。如下图所示。

在图41 里面,第 1 行的文本,其实就是我们准备好,用来作为源码安装的 Bochs 模拟器的安装目录的。现在,请将第一行文本复制下来,并替换【directory】,结果如下图所示。

注意,在第 4 行的开头,是两个减号【-】,而不是一个减号【-】。在等号与其右边的斜杠【/】之间,不可以有空格,必须是紧挨着。

注意了以上两点以后,我们接着在图42 中,输入一个空格,然后输入一个续行符【\】,然后立即按下回车,让文本光标回头第 5 行开头,如下图所示。

(5)make all-clean 和 make clean

然后,我们还是回到图39 所示的浏览器页面。将界面往下拉,找到下图所示的东西。

我们将图44 的红色框线周围的部分句子贴在下面。

Of course, make can only do the right thing if the Makefile lists all the dependencies correctly, so human error can sometimes lead make astray. If make refuses to build something that you think it should, or you are getting strange compile errors, try doing make all-clean and then make again. All-clean means to clean up the compiled files in every subdirectory, while make clean means to clean up just the current directory[2]. However, it's important to note that make all-clean leaves the configuration intact. You do not have to run configure again.

我们用浏览器的翻译功能来翻译一下它。

翻译结果整理如下。

当然,只有当 Makefile 正确列出所有依赖项时,make 才能做出正确的操作,因此人为错误有时会导致 make 误入歧途。如果 make 软件拒绝构建你认为应该构建的东西,或者你遇到了奇怪的编译错误,可以尝试执行 make all-clean 命令,然后再次执行 make 命令。all-clean 参数意味着清理每个子目录中已编译的文件,而 make clean 命令则是只清理当前目录的已编译文件。然而,需要注意的很重要的一点是,make all-clean 会保留配置不变。您无需再次运行 configure。

不知道,你是否看明白了这段话的翻译。

没明白的话,一会儿再回头看这段话吧。一会儿,完成了整个流程以后,我们再回头来解释这段话。

(6)--with-x11 选项

我们将界面往下拉。

在图45 中,红色框线所示的选项,我们需要将其复制到 pluma 中,复制结果如下。

为了防止抄错,干脆就复制粘贴吧。然后呢,从46 中也可以看到,复制的前头,是连续两个减号【-】,而不是只有一个减号【-】。

然后呢,我们键入一个空格,然后输入一个续行符【\】,然后立即按下回车键,使得光标回到第 6 行开头,如下图所示。

又抄完了一个参数。

(7)--with-sdl 选项

我们继续将浏览器的页面往下拉,找到下述的东西。

图48 的红色框线所示的参数,我们也需要将其复制下来。那个参数中,with 后面的东西,是 SDL,而不是 SD1 。是 L 的小写,而不是阿拉伯数字1 。为了防止出错,依然建议用复制粘贴的办法。结果如下图所示。

还是要提醒大家注意,with 的左边,是两个减号【-】,而不是一个减号【-】。

然后呢,我们还是在其后输入一个空格,然后输入一个续行符【\】,然后立即按下回车键,使得文本光标回头第 7 行开头。结果如下图所示。

(8)三个 --enable 选项

然后呢,我们还是将浏览器的页面往下拉,找到下图所示的位置。

图51 中的三个红色框线所示的参数,也是我们需要复制的。这三个参数的英文解释,大家自己看吧。借助于浏览器的翻译功能,自己看吧。

在这里,我们还是说一点,我们想要源码安装 Bochs,其核心的选项,是图51 中间的红色框线所示的选项,【--enable-gdb-stub】,这个选项,可以使源码安装后的 bochs,具备 gdb 远程调试的功能,这是我们本次源码安装的核心目的。

每一个参数,都令其单独占一行。每一个参数的左边,都是两个减号【-】,而不是一个减号【-】。然后呢,每一个参数粘贴完了,都输入一个空格,然后输入续行符【\】,然后立即按下回车键,让文本光标回到下一行的开头,以备输入下一个配置参数。

结果如下图所示。

(9)--enable-cpu-level 选项

然后呢,我们继续将浏览器页面往下拉,找到下述的位置。

我们将红色框线所示的参数复制到 pluma 里面,如下图所示。

然后修改等号右边的值,只保留【6】这个数,结果如下。

注意,enable 的左边是两个减号【-】而不是一个减号【-】,等号与数字【6】之间是紧挨着的,两者之间并无空格间隔,也不能有空格。

第 10 行参数,已经是最后一个配置参数了,它的右边,不需要写续行符【\】,也不能写续行符【\】。

(10)执行配置程序 configure

然后呢,我们将图55 中,第 3 行到第 10 行的内容,复制下来,粘贴到之前的【主目录/D/bochs-3.1/bochs】文件夹中打开的终端里面,过程如下图所示。

注意,图56 所示的选中文本,必须是粘贴到图58 的终端的位置。

这一复制要求,有以下两点要求。

第一点,选中的文本,必须是以【./configure】开始,如果少了一个字符,变成了以【/configure】开头,那是不行的。也最好不要多复制字符,而最好与我在图56 中的复制文字范围严格一致。

第二点,粘贴到的终端,它必须和图58 所示的终端的命令提示文字所指示的当前工作目录一致。图58 所示的终端,其命令提示文字是【study@vmware:~/D/bochs-3.1/bochs$】,这一命令提示文字指示,该终端的当前工作目录,为冒号右侧、$ 符号左侧的内容,【~/D/bochs-3.1/bochs】,也就是【主目录/D/bochs-3.1/bochs】。

为啥必须所粘贴到的终端,其命令提示文字,必须得是【主目录/D/bochs-3.1/bochs】呢?

因为,在之前,我们将 Bochs 3.1 的源码包解压缩以后,将解压缩的成果,【bochs-3.1】文件夹复制到了【主目录/D】路径里面。复制到了这里以后,【主目录/D/bochs-3.1/bochs】文件夹里面,它才包含着各种用于编译 Bochs 模拟器的 C++ 代码文件,它才包含着 Bochs 源码中适配于本次的源码编译与安装的 configure 程序。

如果不是将图56 中选中的命令文本复制到在【主目录/D/bochs-3.1/bochs】文件夹里面打开的终端,比如说将图56 中选中的命令文本粘贴到桌面上打开的终端里面,那么,这样的配置活动没用,也编译不出我们所需要的 Bochs 模拟器。

所以,必须要将图56 中选中的命令文本复制到在【主目录/D/bochs-3.1/bochs】文件夹里面打开的终端,然后回车执行,我们的配置工作,才可能达到目的。

好了,我们接着往下讲。

然后呢,在图58 所示的终端界面里,按一下左方向键,结果如下图所示。

然后呢,在图59 所示的终端界面里,按下回车键。然后 configure 程序就会运行了。

当同时出现闪烁的白色光标及其左侧的命令提示文字之时,标志着命令运行完毕。

结果如下图所示。

这一步如果报错,通常是因为缺少某些依赖库。在讲解本节课之前,由于我这里已经查好了所需的以依赖库,所以,应该没啥问题。

当然了,也有前提。那就是,你安装的乌班图版本,和我的一样,都是乌班图 26.04.1 。如果是此后的版本,那么,可能会出现,我这里能够正常安装,而你那里不能正常安装的。

所以,在安装流程方面,尽量地,与我的专栏演示保持一致。

以下,是我的百度网盘链接。

链接:https://pan.baidu.com/s/1BmqNW4mVqddW12JI_Q7MVQ

提取码:yhql
--来自百度网盘超级会员V4的分享

进入水饺共享包以后,接着进入【操作系统】文件夹 ,找到下述的文件。

图60-1 中红色框线所示的【iso】后缀的乌班图系统镜像文件,是我在本专栏教学中所用的系统镜像文件。请务必与我所用的乌班图系统版本保持一致。

如果你的乌班图版本与我的不一致,请务必将图60-1 的红色框线所示的乌班图系统镜像文件给保存到你的网盘,并下载回去。下载到的路径,最好不含中文与空格。下载好了以后,重新安装虚拟机乌班图系统。在安装乌班图的时候,以及安装了乌班图以后的相关软件安装过程,务必要参照本节前言的几个参考课节的内容,来进行乌班图系统与相关软件的安装。

如果你那里出了问题,也请及时联系我。

(11)make 命令和 make install 命令

然后呢,我们在图60 所示的终端里,输入【make】,如下图所示。

然后,我们在图61 所示的终端环境中,按下回车键,然后编译过程就开始执行了。这个过程,有可能会耗时久一些。

当同时出现闪烁的白色光标及其左侧的命令提示文字之时,命令执行结束。结果如下图所示。

图62 里面,没啥报错信息,就证明编译成功了。如果有报错信息,则终端里面会有醒目的红色字体。图62 中没有红色字体,我们的编译成功了。

当然是成功的啊,因为我这里,课下已经将所需的依赖库啥的,都给查清楚了。

接下来,我们在图62 所示的终端里面,输入【make install】,如下图所示。

然后呢,我们按下回车键。然后安装工作就开始进行了。

当同时出现闪烁的白色光标及其左侧的命令提示文字之时,命令执行结束。结果如下图所示。

到了这里,Bochs 的源码安装任务,已经是完成了。

接下来,请大家关闭图64 所示的终端、打开的资源管理界面、浏览器。

关于 pluma,暂且不要关闭,先保留着它。

接下来呢,我们双击桌面的主目录,进入主文件夹。然后依次双击进入【C_SYS】->【bochs_gdb01】文件夹,结果如下图所示。

如图65 所示,在【bochs_gdb01】文件夹里面,多了三个文件夹。这就是我们刚刚执行了【make install】命令的结果。在【./configure】和【make】两个命令执行结束时,图65 所示的界面并不会有【bin】、【lib】和【share】三个文件夹。

接下来,我们双击 bin 文件夹,进入里面,如下图所示。

带有齿轮图标的【bochs】和【bximage】,是两个可执行文件。在 Linux 里面,可执行文件,不见得要以 exe 作为后缀。

在 Linux 里面,不带有任何后缀的文件,可以是可执行文件,也可以是文本文件。不同的操作系统的规矩,还真的是不一样啊。

(12)测试源码安装的 Bochs 软件

接下来,我们在图66 所示的界面里打开一个终端,并调整为如下的纯净状态。

然后呢,我们在图67 所示的终端里面,输入【pwd】,然后回车执行,结果如下图所示。

然后呢,我们将图68 里面的执行结果,给复制下来,粘贴到 pluma 里面。过程如下图所示。

在图70 里面,在 12 行的紧接着【bin】的右边,添上几个字符,结果如下图所示。

图71 的 12 行的字符串,便是我们源码安装的 Bochs 模拟器的完整路径名。将这个完整路径名给复制下来,然后在任意一个打开的终端里面粘贴下来,然后回车执行,都可以启动我们源码安装的 Bochs 模拟器。

接下来,我们将图69 所示的终端界面,也是目前系统中的唯一一个终端界面给关闭。

然后呢,我们在桌面上打开一个终端,并调整为纯净状态,如下图所示。

然后呢,我们将图71 中的第 12 行的文本,复制到图72 所示的终端界面里,结果如下图所示。

按一下左方向键,结果如下图所示。

然后呢,我们在图74 所示的终端界面里,按下回车键。然后呢,源码安装的 Bochs 模拟器也就会运行起来了,结果如下图所示。

看起来,和之前的默认安装的 Bochs 的运行效果,也没啥区别嘛。实际上,两者是不一样的。只是,在当前,我们暂时看不出来而已。

以后,我们去编译 Linux 0.12 内核的时候,会尝试着用源码安装的这个 Bochs 来调试内核的。不过呢,到时候,也只是试验性地,领着大家一起操作一下。

我们源码安装的这个 Bochs,它可以支持 GDB 远程调试。然而,在 GDB 远程调试方面,QEMU 也有这个能力,且 QEMU 的运行速度比 bochs 快很多。所以,当我们的 Linux 0.12 内核,编译到了 C 语言代码的阶段以后,我们主要采用的模拟器,会是 QEMU,而非 Bochs 。

Bochs 模拟器,在我们的专栏里,它主要是用来调试用汇编语言来编写的引导启动代码。

剧透的应该是差不多了。

接下来,我们在图75 里面,输入数字【7】,然后按下回车键,源码安装的 Bochs 就会退出了,结果如下图所示。

接下来呢,我们将图76 所示的终端给关闭掉。

将目前还打开着的一个资源管理器,也就是源码安装的 Bochs 模拟器所在的文件夹,也给关闭掉。

(13)将 pluma 中的内容保存下来

到这里,系统中,就只剩下 pluma 还在打开着了。

这个可怜的 pluma,一直在打开着,它里面的内容,我们也还没有保存着。接下来,我们就将 pluma 中的内容给保存下来。我们回到 pluma 软件,然后依次执行【文件】->【保存】菜单命令,过程如下图所示。

我们双击红色框线所示的【文档】文件夹,结果如下图所示。

然后呢,我们在图79 的红色框线所示的位置,来设置一下保存的文件名吧。我们将其设置为【bochs-info.txt】,如下图所示。

然后呢,我们点击图80 所在界面的右上角的【保存】按钮,然后文件就被保存下来了。

然后呢,我们关闭 pluma 软件。

然后呢,我们双击桌面的【主目录】,然后双击【文档】文件夹,结果如下图所示。

我们双击图81 所示的文件,结果如下图所示。

图82 中文件内容,正是我们之前编辑的 bochs-info.txt 的内容啊。

这个文件的内容,建议大家保存下来。因为,万一以后你需要重新安装虚拟机乌班图系统,然后你也需要配置环境,需要安装 Bochs 模拟器,那么,这个文件中的内容,就是有用的。好记性不如烂笔头啊。

你也可以将这个文件复制到本机中。

将虚拟机系统中的文件复制到本机中,我们仍然可以利用浏览器与邮箱。

关于使用浏览器和邮箱的方法,我们在下述课节中有讲述。

参考课节:第1章:开发环境搭建,安装部分编译工具链

接下来,我们可以将乌班图系统中的全部界面都给关闭掉了。

(14)解决 make all-clean 命令的遗留问题

在 二.(五).(5) 里面,我们谈到了 make all-clean 命令。其中,对于 make all-clean,我们说了,当整个的编译完成之后再来说。我们现在就来说。

我们在 configure 和 make 命令的执行阶段里,有可能会因为各种原因失败。

失败之后,configure 程序执行和 make 命令执行的过程中,所成功生成的那部分代码文件,并不会自动删除。

这时,我们可以用 make all-clean 命令来将这些个因 configure 程序的执行和因 make 命令的执行而生成的代码文件都给删除掉。

删除掉以后,我们可以调整 configure 程序的参数,或者是安装一下先前没有安装好的其他的依赖库,处理好了以后,我们可以用新的 configure 程序的参数,来重新执行 configure 程序、make 命令和 make install 命令。如果成功了,那当然是最好啦。

如果依然没有成功,则依然可以重复之前的工作,直到成功编译和安装。

在线文档给出的使用 make all-clean 的条件是编译失败。

实际上,不见得非得是编译失败才使用这个命令。也可以是说,我们编译了一个版本以后,觉得还想要其他的版本,那么,我们就可以用 make all-clean 来删除所有的中间文件,然后重新配置参数,进行 configure、make 和 make install 的流程。通过这样的方式,我们可以在同一个乌班图系统里,编译多个版本的 Bochs 模拟器软件。

所以,Linux 世界的这种源码安装方式,也算是对程序员很友好的一种运作方式啊。

结束语

本节内容,实在是很长,我自己写得也有些累了。

希望你能够学会本节内容。有问题的,欢迎评论区留言讨论。

最后,再帮你把本节的核心要点梳理一遍,方便你日后回顾:

另外,我们也再次重申学习要求。

Linux 操作系统,包括乌班图系统,它的不同版本之间的兼容性可能不稳定。以我们的专栏为例,我们需要在乌班图里面安装 Bochs、QEMU 模拟器。安装好了以后,在现有的系统里面运行起来没问题。可是,哪一天,如果你升级了系统版本,到了新的系统版本里面,可能你的 Bochs 和 QEMU 模拟器就运行不了了。

所以,本专栏的学习要求是,作为一个学习型的虚拟机系统,安装好了乌班图以后,你就不要去升级乌班图了。无论是说,新来了 26.10,还是28.04,你呢,都不要去升级系统了。

祝你学习顺利!

专栏导航

上一篇:第1章:开发环境搭建,在乌班图中安装 pluma

回到目录

下一篇:第1章:在乌班图中安装 Visual Studio Code

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询