《一个操作系统的实现》学习笔记(一) bochs源码安装及配置
前言:本机环境ubuntu 14.04 bochs 2.4.5
一.下载
官网 http://bochs.sourceforge.net/
二.安装
1.将下载好的压缩包解压并进入该目录
tar vxzf bochs-2.4..tar.gz
cd bochs-2.4.
2.安装编译程序依赖的包
sudo apt-get install build-essential
3.检测环境,打开调试功能的开关
./configure --enable-debugger --enable-disasm
(1)如出现 ERROR: X windows gui was selected, but X windows libraries were not found. 输入
sudo apt-get install xorg-dev
(2)如出现 ERROR: pkg-config was not found, or unable to access the gtk+-2.0 package. 输入
sudo apt-get install libgtk2.-dev
如有ERROR,依赖包安装好后,需重新configure
(注*:我下载bochs-2.3.5时出现错误1,安装xorg-dev也无法解决,不知什么原因。还请前辈们多多指教!于是换成了bochs-2.4.5,亲测可用)
4.编译
make
(1)如出现 Error: collect2: error: ld returned 1 exit status
make: *** [bochs] Error 1
编辑boches-2.4.5/Makefile.in文件,找到 LIBS = ... 一行,在行尾加上 -lpthread,保存
重新configure之后,再重新make,成功
5.安装
sudo make install
三.配置
如书中11页所言,安装好bochs后需要自己编写配置文件。存储路径却并未明确指出,但原书中后面有提示:“如果你输入一个不带任何参数的Bochs并执行之,那么Bochs将在当前目录顺序寻找以下文件作为默认配置文件:
.bochsrc
bochsrc
bochsrc.txt
bochsrc.bxrc(仅对windows有效)”
意思是配置文件存放位置为你当前的工作目录,即存放.bin .asm .img的文件夹。
于是我在工作目录下新建 bochsrc 文件,如书中代码2.1所示,并更改路径匹配我电脑中的bochs
#Configuration file for Bochs #how much memory the emulated machine will have
megs: #filename of ROM images
romimage: file=$BXSHARE/BIOS-bochs-latest
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest #what disk images will be used
floppya: 1_44=a.img, status=inserted #choose the boot disk.
boot: floppy #where do we send log messages
log: bochsout.txt #disable the mouse
mouse: enabled= #enable key mapping, using US layout as default
keyboard_mapping: enabled=, map=/usr/local/share/bochs/keymaps/x11-pc-us.map
第7,8行的romimage和vgaromimage对应真实机器的BIOS和VGA BIOS,路径该如何设置呢?
(注:此处不同系统,不同软件版本下,路径可能会有差异)
方法一:在我的电脑里 /usr/local/share/doc/bochs下有示例文件,名为bochsrc-sample.txt,打开之后,查找romimage和vgaromimage可得到路径;
方法二:以23行的map为例,用find命令,在/usr文件夹下查找x11-pc-us.map即可
find -name x11-pc-us.map
配置文件写好之后,在当前目录下输入bochs,可看到:
========================================================================
Bochs x86 Emulator 2.4.
Build from CVS snapshot, on April ,
========================================================================
00000000000i[ ] reading configuration from bochsrc
------------------------------
Bochs Configuration: Main Menu
------------------------------ This is the Bochs Configuration Interface, where you can describe the
machine that you want to simulate. Bochs has already searched for a
configuration file (typically called bochsrc.txt) and loaded it if it
could be found. When you are satisfied with the configuration, go
ahead and start the simulation. You can also start bochs with the -q option to skip these menus. . Restore factory default configuration
. Read options from...
. Edit options
. Save options to...
. Restore the Bochs state from...
. Begin simulation
. Quit now Please choose one: []
此时默认选项为6. Begin simulation
回车,弹出Bochs虚拟机界面,成功!
(注:若缺少配置文件,默认选项为2;若配置文件错误,则会报错)
参考资料: http://www.cnblogs.com/sobe/archive/2010/09/05/1818367.html
http://m.blog.csdn.net/blog/u010066564/26068283
《一个操作系统的实现》学习笔记(一) bochs源码安装及配置的更多相关文章
- memcached学习笔记——存储命令源码分析下篇
上一篇回顾:<memcached学习笔记——存储命令源码分析上篇>通过分析memcached的存储命令源码的过程,了解了memcached如何解析文本命令和mencached的内存管理机制 ...
- memcached学习笔记——存储命令源码分析上篇
原创文章,转载请标明,谢谢. 上一篇分析过memcached的连接模型,了解memcached是如何高效处理客户端连接,这一篇分析memcached源码中的process_update_command ...
- Laravel学习笔记之Session源码解析(上)
说明:本文主要通过学习Laravel的session源码学习Laravel是如何设计session的,将自己的学习心得分享出来,希望对别人有所帮助.Laravel在web middleware中定义了 ...
- Hadoop学习笔记(10) ——搭建源码学习环境
Hadoop学习笔记(10) ——搭建源码学习环境 上一章中,我们对整个hadoop的目录及源码目录有了一个初步的了解,接下来计划深入学习一下这头神象作品了.但是看代码用什么,难不成gedit?,单步 ...
- nginx在Centos7.5下源码安装和配置
安装nginx 安装nginx依赖包 yum install -y pcre-devel zlib-devel openssl-devel wget gcc tree vim 进入目录/root/se ...
- Sping学习笔记(一)----Spring源码阅读环境的搭建
idea搭建spring源码阅读环境 安装gradle Github下载Spring源码 新建学习spring源码的项目 idea搭建spring源码阅读环境 安装gradle 在官网中下载gradl ...
- CentOS 7运维管理笔记(10)----MySQL源码安装
MySQL可以支持多种平台,如Windows,UNIX,FreeBSD或其他Linux系统.本篇随笔记录在CentOS 7 上使用源码安装MySQL的过程. 1.下载源码 选择使用北理工的镜像文件: ...
- 学习Tensorflow,使用源码安装
PC上装好Ubuntu系统,我们一步一步来讲解如何使用源码安装tensorflow?(我的Ubuntu系统是15.10) 安装cuda 根据你的系统型号选择相应的cuda版本下载 https://de ...
- 源码安装和配置zabbix 3.0 LST
Zabbix是什么 Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持. Zabbix 是一个企业级的分布式开源监控方案. Zabbix是一款能够监控各 ...
随机推荐
- XUT 1245
这是一道2016湘潭邀请赛的题目,记得那个时候看到这个题目就想到了最短生成树,然后给别人做,WA了,最后发现是有向图,然后我自己去写了个搜索,结果是RE吧 今天刚刚好想到这个题目,然后再来做,发现这个 ...
- Uiautomator--断言的使用
一.断言函数的使用 1.用例结构: 自动化用例结构,一般可以分成一个用例集,然后用例集下面会有非常多的用例组成,我们可以从多个用例中抽出一些用例组成测试套件. 2.用例的标准结构: setUp:初始化 ...
- Reverse Core 第三部分 - 21章 - Windows消息钩取
@author: dlive @date: 2016/12/19 0x01 SetWindowsHookEx() HHOOK SetWindowsHookEx( int idHook, //hook ...
- JavaScript 嵌套 书名号 查询
字符串中查找嵌套书名号 ,一开始想用正则来做的,最后发现正则不可能达到我的需求(可能是我正则理解不够,哈哈),所以写下了这个方法:只做了三层,如果你要更多,可以自己添加,哈哈//提取查询关键字,sou ...
- JSON resource 启示
好久没写博客了,刚走完20000步,不废话了,先吐为快. 上面的en-us.json 是一个简单得不能再简单的json对象,当你写下"key-2": "duplicate ...
- 解决MVC4 时间验证Bug
MVC验证时间控件(my97,时间格式:yyyy-MM-dd HH:mm:ss) 在谷歌浏览器上一切正常.但在火狐和IE 上一直验证不通过 (错误信息:日期格式不对) 猜想是 时间格式的问题..日期 ...
- 《Scalable IO in Java》笔记
Scalable IO in Java http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf 基本上所有的网络处理程序都有以下基本的处理过程:Read reque ...
- 数据库连接池c3p0学习
这里只记录c3p0的数据源,不会涉及到其它方面和别的数据库连接池的对比 配置文件主要的实现方式有三种: 1.手写代码去加载一个配置文件 创建一个config.properties文件如下: drive ...
- JSON对象格式美化
JSON.stringify(obh, null, "\t"); 这段代码就可以对某个js对象美化输出
- 远程登录VirtualBox虚拟机Linux
通过端口转发的方式,使用终端(如MobaXterm,Xshell,putty等终端)远程登录本机虚拟机Linux, 打开虚拟机,找到 [设置]-->[网络]--> [网卡1] 确认以下设置 ...