Bochs下载安装

在完成了linux发行版的安装后,现在到了安装bochs的环节,这是我们的操作系统最终的宿主机。

由于我的工作是运维,所以练就了任何软件包都要从源码安装的“陋习”,从来不信任任何软件包。因为只有从源码安装的版本才会在其配置和编译过程中根据所在的平台的特性去优化,这些是其它形式的软件包不可比拟的。举个例子,将别人的windows系统直接ghost到自己的机器上和从光盘安装windows比,哪个装的windows系统用的更稳定,哪个安装方法能让windows坚持到半年才重装一次……我不能再说了,我做为linux粉丝的事实已表露无遗。虽然我个人偏爱linux,但绝对不能否认,是windows把我带入计算机世界的,既然有母校一说,它就相当于是我的母操作系统…没有人呕吐吧?抱歉我没有考虑您的感受^_^。这个世界若没有windows将暗淡70%的光芒。其实原先我写的是90%,我怕有人问我这个数是怎么来的,其实这是我一拍脑门随口说出来的,所以我稳妥起见,改为了70%,总之不能无视windows的伟大功绩,从这么谨慎的一点大家可以看出,我是个公正的人…哈哈,不要打扰鄙视我的同学,咱们继续。

bochs的安装相对要麻烦一些,不光是装上去就行了,还需要配置一下。废话不多说,安装走起。

等等,出大事了,软件包得传到虚拟机上才能安装到虚拟机里,如何传上去呢。下面建议3个方案:

  1. 1.给虚拟机装个ftp,通过ftp上传。
  2. 2.让虚拟机连网,直接下载。
  3. 3.虚拟机支持usb,通过u盘上传软件包。

第1个方案需要配置下ftp服务器,我用的是proftpd,相对来说有点麻烦,也是需要单独配置的。而且默认linux的iptables会有一些规则,需要手动将其关闭。

第2个方案较简单,在您的宿主系统可以连网的情况下,需要您自己配置一下virtualBox的网卡,将网卡部分改为NAT可以通过宿主系统连网,将网卡改为桥接可以直接连网。由于大家的版本不统一,虽然不知道界面是否接近,但菜单名称总该是一样的。我用的是mac版virtualBox,给大家截个图看看。见图1-1。

图1-1 virtual box

将网卡模式改为NAT后,虚拟机就可以连网了。

第3个方式最方便了,大家自己试下吧。

好了,下面就假设大家能够把安装包上传到虚拟机中,安装走起。

  1. 1.下载bochs

官方地址是http://sourceforge.net/projects/bochs/files/bochs/,我安装的版本是2.6.2,下载后的文件是bochs-2.6.2.tar.gz。

  1. 2.解压压缩包 tar zxvf bochs-2.6.2.tar.gz
  2. 3.编译

先进入到目录cd bochs-2.6.2,开始configure、make、make install三步曲:

./configure

--prefix=/your_path/bochs

--enable-debugger

--enable-disasm

--enable-iodebug

--enable-x86-debugger

--with-x

--with-x11

注意各行结尾的’’字符前面有个空格。下面简要说明一下configure的参数:

--prefix=/your_path/bochs是用来指定bochs的安装目录,根据个人实际情况将your_path替换为自己待安装的路径。

--enable-debugger 打开bochs自己的调试器

--enable-disasm使bochs支持反汇编

--enable-iodebug 启用io接口调试器

--enable-x86-debugger 支持x86调试器

--with-x 使用x windows

--with-x11 使用x11图形用户接口

上面的编译参数是不支持gdb远程调试的,如果想用gdb调试,就要将参数--enable-debugger替换为--enable-gdb-stub。

--enable-gdb-stub是用来打开对gdb的支持,这样我们就可以用gdb来远程调试了。

不过,需要注意的是,不能同时打开这两个开关,否则bochs会报错:configure: error: --enable-debugger and --enable-gdb-stub are mutually exclusive。

也就是说,bochs本身是支持调试的,要么用本身的调试功能,要么用gdb的调试功能,鱼和熊掌在一台模拟器上不可兼得。我说的是一台模拟器上不可兼得,所以,如果您愿意的话,可以用这两个参数各编译一版,只要--prefix指向不同的路径就行了,想用哪个就启用哪个。

不过我在开发过程中,只用过不超过5次的gdb调试,还是习惯bochs自己的调试功能,个人觉得它更强大,调试粒度更细微,反而更灵活。个人建议,直接用给出的configure参数就行,不要打开--enable-gdb-stub。

configure之后,会生成Makefile,可以开始编译了。

make

若编译时没有问题,就直接执行下面这句:

make install

完成安装

补充一下,我在编译用bochs自己调试功能的版本时(用--enable-debugger),曾经安装失败过,如果您也在安装过程中失败了,恰好出现类似下面的报错:

undefined reference to 'pthread_create'

undefined reference to 'pthread_join'

您可以按照下面的方法解决。如果不是这个报错,亲,您可能要辛苦一下自行解决啦。

上面报错的原因:

pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 pthread_atfork()函数建立fork处理程序时,需要链接该库。

解决方案:

在编译中要加 -lpthread参数。用vim编译makefile,vim是linux下功能最为强大的文本编辑器。vim Makefile回车:

编辑第92行,将thread库加入,将其放在行末尾就行了。

IBS = -lm -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 –lpthread

重新编译,make 回车,看问题是否解决,成功解决后直接make install回车。

一步步编写操作系统4 安装x86虚拟机 bochs相关推荐

  1. ftp无法连接虚拟机_一步步编写操作系统4 安装x86虚拟机 bochs

    本节内容摘自<操作系统真象还原>,请大家支持正版 Bochs下载安装 在完成了linux发行版的安装后,现在到了安装bochs的环节,这是我们的操作系统最终的宿主机. 由于我的工作是运维, ...

  2. 一步步编写操作系统 71 直接操作显卡,编写自己的打印函数71-74

    一直以来,我们在往屏幕上输出文本时,要么利用bios中断,要么利用系统调用,这些都是依赖别人的方法.咱们还用过一个稍微有点独立的方法,就是直接写显存,但这貌似又没什么含量.如今我们要写一个打印函数了, ...

  3. 一步步编写操作系统 69 汇编语言和c语言共同协作 70

    由于有了上一节的铺垫,本节的内容相对较少,这里给大家准备了两个小文件来实例演示汇编语言和c语言相互调用. 会两种不同语言的人,只是掌握了同一件事物的两种表达方式.人在学习一种新语言时,潜意识里是建立了 ...

  4. 一步步编写操作系统 62 函数调用约定

    由于我们要将c语言和汇编语言结合编程啦,所以一定会存在汇编代码和c代码相互调用的问题,有些事情还是要提前交待给大家的,本节就是要给大家说下函数调用规约中的那些事儿. 函数调用约定是什么? 调用约定,c ...

  5. 一步步编写操作系统 20 x86虚拟bochs一般用法 上

    bochs一般用法 bochs是一个开源x86 虚拟机软件.在它的实现中定义了各种数据结构来模拟硬件,用软件模拟硬件缺点是速度比较慢,毕竟全是软件来模拟,您想,虚拟机还要在软件中模拟各种中断,能不慢吗 ...

  6. 一步步编写操作系统(1)

    为什么80%的码农都做不了架构师?>>>    平台:VMwave workstation 虚拟机,linux 5操作系统. 安装arm-elf-gcc 1.下载leeos_tool ...

  7. 一步步编写操作系统 6 启动bochs

    运行bochs 终于安装完成了,虽然这过程中有可能会出现各种各样的问题,但还是值得庆祝的,对Linux不熟的朋友第一次就搞定了这么个硬货,我理解您此时的喜大普奔之情,哈哈,给大家点赞.顺便说一句,其实 ...

  8. 一步步编写操作系统3 部署工作环境 3

    盗梦空间般的开发环境,虚拟机中再装个虚拟机. 很多同学电脑的系统都是windows,个别的是mac os,还有的同学用的是linux.做为一名Linux粉丝,我的开发环境必然建立在Linux平台下.那 ...

  9. 一步步编写操作系统21 x86虚拟机bochs 跟踪bios

    为了让大家更好的理解bios是怎样被执行的,也就是计算机中第一个软件是怎样开始的,咱们还是先看下图3-17.在图的上面第5行,显示的是下一条待执行的指令,这是程序计数器(PC)中的值,在x86上的程序 ...

最新文章

  1. java hellowordk_Rhythmk 一步一步学 JAVA(4):Spring3 MVC 之 Hello Word
  2. VS2010 出现打开关联文档错误的解决方案
  3. pixysoft.framework.messageflow enterprise edition 开发实录
  4. jquery DataTable默认显示指定页
  5. qt 利用 HTML 生成PDF文档,不能显示jpg图片
  6. 二级list列表python_Python list 列表
  7. accdb原有的数据怎么清除_VBA中利用数组对数据批量处理的方法
  8. 为了摸清敌人对自己了解多少,高阶国家黑客组织Turla 决定偷走反病毒日志
  9. CentOS 7.5基于Docker部署4.2 版本的zabbix监控平台
  10. Windows Tips
  11. Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式
  12. 斯凯奇诉爱马仕侵权——品牌发展需警惕知识产权侵权
  13. 软件促进两化深度融合 ——记2016中国软件和信息技术服务业发展高峰论坛
  14. IE浏览器怎么设置兼容性 添加兼容站点方法
  15. mysql 查询当前日期
  16. k8s教程(pod篇)-污点与容忍
  17. 3D角色硬表面建模技巧与思路分享
  18. soot 简介 | 安装运行
  19. linux下测试远程端口
  20. [Python]WEB编程--个人日记网站搭建(一)

热门文章

  1. 【微信小程序】数组操作
  2. 链表反转python
  3. Memory及其controller芯片整体测试方案(上篇)
  4. 【VirtualBox】VirtualBox的桥接网络模式,为啥网络不稳定?
  5. 动态规划6个题目总结比较
  6. [Leedcode][JAVA][第84题][柱状图中最大的矩形][暴力][单调栈]
  7. OpenCV中cvResize函数图象放缩
  8. boot返回码规范 spring_sprigboot-new-coding-standards
  9. 个人博客网页设计_博客个人网页制作网页设计-1
  10. 从java到C++入门