Ubuntu环境下安装Bochs
首先说一下我的Ubuntu版本,敲命令
sudo lsb_release -a
就可以看到
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty
所以,我的Ubuntu版本是14.04
也可以用
cat /etc/issue
查看版本号。
怎样查看系统是32位还是64位呢?
用命令 uname -m
然后显示:x86_64,这就说明是64位。
安装:
1.去http://nchc.dl.sourceforge.net/project/bochs/bochs/2.4.5/bochs-2.4.5.tar.gz 下载【bochs-2.4.5.tar.gz】
2.解压下载的源代码:
sudo tar zxvf bochs-2.4.5.tar.gz
3.进入bochs-2.4.5目录,运行configure脚本:
sudo ./configure -enable-debugger -enable-disasm
(-enable-debugger和 -enable-disasm 表示开启调试和反汇编功能)
4.第3步正确运行后,会产生一个Makefile文件,于是可以编译:
sudo make
5.安装:
sudo make install
至此,bochs安装已经结束。
但是你也许不会成功。不要着急,下面是编译安装过程中可能出现的一些问题及解决方法:
【错误1】
error: C++ preprocessor “/lib/cpp” fails sanity check
因为Bochs是用C++写的,所以这里要安装GNU g++编译器。
解决方法:
sudo apt-get install build-essential
sudo apt-get install g++
【错误2】
checking for default gui on this platform… x11
ERROR: X windows gui was selected, but X windows libraries were not found.
解决方法:
sudo apt-get install xorg-dev
【错误3】
ERROR: pkg-config was not found, or unable to access the gtk+-2.0 package.
解决方法:
sudo apt-get install libgtk2.0-dev
【错误4】
make的时候提示 /usr/bin/ld: gui/libgui.a(gtk_enh_dbg_osdep.o): undefined
reference to symbol pthread_create@@GLIBC_2.1 //
lib/i386-linux-gnu/libpthread.so.0: error adding symbols: DSO missing
from command line collect2: error: ld r
解决方法:
在makefile的“LIBS = ”这一行的最后面添加如下内容 :
-lz -lrt -lm -lpthread
于是变成了:
LIBS = -lm -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft 2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontcon fig -lgobject-2.0 -lglib-2.0 -lfreetype -lz -lrt -lm -lpthread
如果已经安装成功,那么我们肯定迫不及待地想用起来。
怎么用呢?这里举一个例子。
1.下载linux0.11的镜像文件
下载地址是:
http://www.oldlinux.org/Linux.old/images/bootroot-0.11
2.写一个简单的Bochs配置文件
#注意'#'后面为注内容
megs:128
#模拟器的内存
romimage:file=/usr/local/share/bochs/BIOS-bochs-latest
#这个是BIOS-bochs-latest的路径,自己慢慢找,不一定和我的一样
vgaromimage:file=/usr/local/share/bochs/VGABIOS-lgpl-latest
#这个是VGABIOS-lgpl-latest的路径,自己慢慢找
floppya:1_44=bootroot-0.11,status=inserted
#这个是启动软盘,就是我们下载的那个,就在当前目录下,如果不在当前目录,需要指明路径
boot:floppy
#表示从软盘启动
log:bochsout.txt
#日志输出文件
#选项还有很多,想了解更多可以参照原始的.bochsrc(在bochs-2.4.5/目录下)
假设我们保存为bochs_cfg.txt
3.启动Bochs
我们敲命令:
bochs -f bochs_cfg.txt
(-f 选项表示指定配置文件)
然后我们就看到:
输入6,回车
然后看到:
咦?怎么是一片漆黑呢?
注意到了吗?屏幕底端显示:
[0xfffffff0] f000:fff0 (unk. ctxt): jmp far f000:e05b
处理器在加电启动时,CS=0xF000; IP=0xFFF0,也就是说地址线的低20位是0xFFFF0,且其他地址线被强制为高电平,所以方括号中的地址就是0xfffffff0,此处是一条跳转指令jmp far f000:e05b ,这个地址指向了ROM-BIOS.
此时,Bochs停了下来,在等我们的调试命令。
我们输入c(表示continue),回车
注意看Bochs的窗口,可以看到Linux-0.11启动了!最后的画面是:
哈哈,是不是很惊喜?!
今天的学习就到这里,下回见:)
Ubuntu环境下安装Bochs的更多相关文章
- 【转载】Ubuntu环境下安装QT(转)
Ubuntu 安装 Qt 开发环境 简单实现是本文要介绍的内容,内容很短,取其精华,详细介绍Qt 类库的说明,先来看内容. 一.Ubuntu下安装Qt $ sudo apt-get install q ...
- 在Ubuntu环境下安装eclipse
Eclipse运行需要Java环境,java环境的安装见https://www.cnblogs.com/Sabre/p/10349320.html,本文不再赘述. 1.下载eclipse eclips ...
- Ubuntu环境下安装TinyOS系统
1.输入下面命令会弹出source list窗口 1 sudo gedit /etc.apt/sources.list 在尾部添加以下地址: 1 2 deb http://tinyos.sta ...
- Ubuntu环境下安装CUDA9.0
前言: 本篇文章是基于安装CUDA 9.0的经验写,CUDA9.0目前支持Ubuntu16.04和Ubuntu17.04两个版本,如下图所示(最下面的安装方式我们选择第一个,即runfile方式): ...
- Ubuntu 环境下安装 Docker
系统要求 Docker目前只能运行在64位平台上,并且要求内核版本不低于3.10,实际上内核越新越好,过低的内核版本容易造成功能不稳定. 用户可以通过如下命令检查自己的内核版本详细信息: $ unam ...
- [python] Ubuntu 环境下安装 python3.5 + pip
一般情况下先添加PPA,但是我添加PPA会报错: sudo add-apt-repository ppa:fkrull/deadsnakes ubuntu add-apt-repository: co ...
- ubuntu环境下安装docker遇到的坑
ubuntu安装docker的前提条件是: 1. Linux 的内核版本在 3.10 或以上: 2. linux 内核要开启 cgroup 和 namespace 功能 可以执行命令:uname –a ...
- ubuntu 环境下 安装虚拟环境
sudo pip3 install virtualenv 安装虚拟环境 sudo pip3 instal virtualenvwrapper #安装虚拟环境扩展包 编辑home目录下面的.bashrc ...
- Ubuntu环境下安装Scala以及安装IntelliJ Scala插件(Plugin)
一.Scala介绍 1.结合Spark处理大数据 这是Scala的一个主要应用,而且Spark也是那Scala写的. 2.Java的脚本语言版 可以直接写Scala的脚本,也可以在.sh直接使用Sc ...
随机推荐
- xcodebuild命令
一.xcodebuild命令介绍 1.基本命令 查看xcodebuild简洁用法 xcodebuild -usage 查看已安装的SDK xcodebuild -showsdks 查看安装的版本号 x ...
- DjVu转PDG的方法与步骤
作者:马健邮箱:stronghorse_mj@hotmail.com发布:2008.08.03更新:2008.08.24 补充说明:此文成文较早,当时PDG浏览器只支持纯正PDG,不支持名为PDG,实 ...
- Linux CentOS 7下Memcached 安装与配置
前言 本篇文章记录一下Linux CentOS 7中关于Memcached的安装与配置. 安装 安装memcached之前首先需要安装libevent,我这里用的版本是: •libevent-2.0. ...
- duddo在xml里面出现红叉的解决方法
原因是没有加入dubbo.xsd window-Preferences-输入xml-xmltacalog....... 配置离线约束:http://code.alibabatech.com/schem ...
- 【bzoj2751】[HAOI2012]容易题(easy) 数论-快速幂
[bzoj2751][HAOI2012]容易题(easy) 先考虑k=0的情况 那么第一个元素可能为[1,n] 如果序列长度为m-1时的答案是ans[m-1] 那么合并得 然后同理答案就是 k很小 而 ...
- Windows Server 2016 IIS10安装URLRewrite 2.0组件方法
1,打开Regedit> HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ InetStp2,编辑“MajorVersion”并以十进制设置数值数据值为93 ...
- Python翻译器
import urllib.request import urllib.parse import json content='有了我,翻译再也不是问题啦' print(content) while c ...
- 用勤哲excel服务器开发旅行社管理软件
做这个旅行社管理软件之前,旅行社给我的印象就是“拉客”与“接客”,业务模式应该比较简单.但做起这样一个旅行社管理软件,才发现麻雀虽小.五脏俱全,一个旅行社的运作,牵扯到的方方面面远远超出自己之前的理解 ...
- Flashcache的 KEEP属性自动失效
如果希望一个数据对象长期地缓存在flashcache中,则可以手动地将该数据对象的CELL_FLASH_CACHE属性设置为"keep". 其实需要说明的是,但不是数据对象的CEL ...
- C语言使用指针表示数组的注意事项
1)数组名是指针常量 如对指针变量可以进行++运算,但是对数组名却不允许,另外,对数组名的赋值运算也是错误的 2)注意指针变量的当前值 指针变量的值在程序运行过程中可能经常改变,要对此注意 3)数组越 ...