Linux内核学习神器,Bochs安装及常见问题解决

bochs简介

可以将bochs理解成为一个虚拟化平台,它是一个完全虚拟化的软件。bochs与虚拟化产品VMware和VirtualBox很像,但又有不同,后者更多的是一个产品,用于实现计算虚拟化,而前者则更多的是一个开发工具,用于操作系统的开发调试。下面是来自官网的描述:

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.

在Ubuntu上的安装

bochs可以跨平台安装,可以安装在Linux或者Windows等操作系统,Ubuntu(本文基于16.04版本)上安装非常简单,执行如下命令既可以安装:

sudo apt-get install bochs

使用bochs

我们以运行Linux0.12版本内核为例简单介绍一下bochs的使用。关于其更详细的原理后面在详细介绍。可以从后面地址下载Linux0.12的镜像文件。

http://oldlinux.org/Linux.old/bochs/linux-0.12-080324.zip

在Ubuntu环境下解压该文件,然后切换到目录下,执行如下命令即可运行bochs:

bochs -f bochsrc-0.12-hd.bxrc

其中bochsrc-0.12-hd.bxrc为配置文件,运行结果如下,可以看到与普通虚拟机软件很像,只是比较简陋。

图片[1]-Linux内核学习神器,Bochs安装及常见问题解决-趣考网

常见问题解决

由于bochs依赖一些软件,因此在首次运行的时候可能会有一些错误。下面是常见的错误及解决方法。

错误一:

00000000000p[ ] >>PANIC<< bochsrc:10: vgaromimage directive malformed.

  1. vgaromimage: /usr/share/vgabios/vgabios.bin

改成

  1. vgaromimage: file=/usr/share/vgabios/vgabios.bin

错误二:

Event type: PANIC Device: [ ] Message: dlopen failed for module \'x\': file not found

这种情况是缺少软件包,安装相应的软件包即可,命令如下:

sudo apt-get install bochs-x

错误三:

bochs-biin: symbol lookup error: /usr/lib/bochs/plugins/libbx_x.so: undefined symbol: XpmCreatePixmapFromData

作者指出,我们换一种显示的方案就可以了。

首先按照bochs-sdl,用apt-get可以安装。

  1. sudo apt-get install bochs-sdl

在我们的bochsrc文件中,加入一句话:

  1. display_library: sdl

错误四:

00000000000p[KMAP ] >>PANIC<< line 38: unknown host key name \'XK_0\' (wrong keymap ?)

注释掉下面这行

#keyboard_mapping: enabled=1, map=/usr/share/bochs/keymaps/x11-pc-us.map

然后那红色的hello world就出来了

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容