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

4653843773ab8d5526bbaf28f76f100d.png

本节内容摘自《操作系统真象还原》,请大家支持正版

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回车。

【再续】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381437.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

accsess转成mysql语句_access数据库转mysql经验分享

ACCESS数据库转换MYSQL数据库的软件1.0版一、 软件介绍:DB2MYSQL是一个可以自动将ACCESS数据库文件转化为对应的SQL代码的软件。可广泛应用于ACCESS数据库转换为MYSQL或其他类型的SQL数据库的软件。DB2MYSQL能够实现可视化操作数据库,转换界面非常简单明…

Using .NET C# LDAP Library(Novell.Directory.Ldap)

说明在这里 http://www.novell.com/coolsolutions/feature/11204.html 此Library需要的Mono.Security.dll 转载于:https://www.cnblogs.com/wingfay/archive/2009/02/05/1384585.html

python语言用什么关键字来声明一个类_Python语言和标准库(第三章:类和对象)...

python如何将函数和数据整合在一起,并且通过一个对象的名称访问它们。 如何和为什么使用类与对象,以及他们如何使编程人员易于多种情形下编写和使用程序。 3.1考虑编程 现在要在python中创建一个对对象的描述,您已有足够的只是获得两个视图。…

mysql主从1594错误_3分钟解决MySQL主从1594错误

3分钟解决MySQL主从1594错误简介Part1:写在最前1594这个错误看起来挺严重的,会提示你binlog文件或者Relay log损坏了,例如binary log is corrupted、relay log is corrupted之类的看起来很吓人是吧,多数是由于掉电引发的,这也说明了机房配备U…

ci框架 mysql 超时时间_mysql 字符集和校验规则( CHARSET amp; COLLATE)

我们首先看下常见建表语句:mallAllGoodsCREATE TABLE qywl.mallAllGoods ( id varchar(64) NOT NULL COMMENT 主键id,userId varchar(64) NOT NULL DEFAULT COMMENT 发布人id,storeId varchar(64) NOT NULL DEFAULT COMMENT 发布商号id,data varchar(1000) NOT NU…

SQL 附加数据库时出现 无法打开物理文件错误

错误信息: 执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo) ------------------------------ 无法打开物理文件 "D:\SqlDataBase\Test.mdf"。操作系统错误 5:"5(拒绝访问。)"。 (Microsoft SQL Server,错误…

ehcache mysql_mybatis的ehcache缓存

1,几点说明:1、对于包的说明:ehcache-core-2.6.9.jarmybatis-ehcache-1.0.3.jarslf4j-api-2.2.jarslf4j-log4j12-2.2.jar2、对于自动加载ehcache.xml的说明:此版本的ehcache会自动到classpath下去找ehcache.xml,命名也…

Flash网页游戏辅助工具制作简析

《热血三国》好像是比较热,玩的人也挺多的,年前一个朋友希望能让我写一个这个游戏的外挂,也出于无聊,所以去玩了一下,谁知道一玩就有点喜欢这个游戏了,当然玩归玩,东西还是要做地,当…

sqlserver2008导出mysql_SQLserver 2008将数据导出到Sql脚本文件的方法

请看下面的操作图解。1.使用Sql Server Management Studio 2008 连接数据库。2.选中要导出数据的数据库节点,点鼠标右键,在菜单中选择“任务”->“生成脚本”,如图:3。在弹出的界面中,点2次“下一步”进入如图界面中…

opencv配置_Opencv在vs2012下的配置

别问我为什么记录这么老的版本,问就是因为老师推荐和因为怕自己再次把小米的搜索框给忘记了,又找个好几十分钟的【环境变量】。另外,要敲敲自己的脑袋,作为小米电脑的老用户怎么可以把搜索框给忘记了呢?第一步&#xf…

谈谈C#的私有成员的一个有趣的现象!

大家都知道,一个类的私有成员只能在他的内部访问! 但是不知道大家注意到没有,实际上在C#中一个类的实例是可以访问同一个类的另外一个实例的私有成员的。 请看这段简单的代码 public class MyClass { private int i 0; …

mysql mydumper_MySQL 之mydumper安装详解

方法二:安装1 安装依赖包yum -y install glib2-devel mysql-devel zlib-devel pcre-devel cmake gcc-c git12 下载安装文件cd /usr/MyWorkSpace/git clone https://github.com/maxbube/mydumper.gitcd mydumper//注意下面包含.cmake .make && make install[…

php7安装mysqli扩展_Ubuntu14版本下无法使用php7.2版本的bcmath扩展

在使用如下命令安装bcmath扩展的时候sudo apt-add-repository ppa:ondrej/phpsudo apt-get updatesudo apt-get install php7.2-bcmath提示如下信息Reading package lists... DoneBuilding dependency tree Reading state information... DoneE: Unable to locate packag…

Gridview一次更新所有记录

通常,我们在做Gridview更新时,都是每一笔单独更新。或是把记录选择之后,导向另外一页去做更新。 下面的Demo是实现一次性更新所有的记录。 视频文档:.wmv;大小:22,062KB;长度:00:17:48 下载地址:http://download.cnblogs.com/insus/ASPDOTNET…

input 0.1无法相加_你真的知道0.1+0.2为何不等于0.3吗?

打开chrome控制台,给一个特别简单的输入如下:0.1 0.2 // 0.30000000000000004 复制代码不知道你有没有吃惊,这么简单的一个计算,无论在js中还是在python中,都不是准确的0.3,这是为什么呢?缘起要…

python图像增强_Python图像的增强处理操作示例【基于ImageEnhance类】

本文实例讲述了Python图像的增强处理操作。分享给大家供大家参考,具体如下: python中PIL模块中有一个叫做ImageEnhance的类,该类专门用于图像的增强处理,不仅可以增强(或减弱)图像的亮度、对比度、色度&…

微软项目技术结构思路 ExtJs/JQuery + Asp.net MVC + Wcf service + Entity Framework

正文: 这一阵子在做一个项目, 客户要求使用ExtJs/ vs2008 sql server 2005, 也是好长时间没有去看新的技术和一些框架; 初步设计是准备使用 ExtJs HTTPHandle方式提供json google上的josnserialization linq to sql, 基本能满足应用(开始也没有查太多资料,不知道linq to sql…

python 二项分布_二项分布的理论基础、应用及Python实践

二项分布是概率统计中非常基础、非常实用的一种分布,可以说它在我们的生活中无所不在。它说明了这样一种现象:在给定的试验次数中,某一结果会发生多少次。比如:这个月有多少天会刮北风?今年有多少天会下雨?…

python网络爬虫_python小知识,基于Python 的网络爬虫技术分析

在现阶段大数据的时代中,想要实现对数据的获取和分析,要先具备足够的数据源,网络爬虫技术就为其数据获取提供了良好的条件,且还能够实现对数据源的目的性采集。在网络爬虫技术应用中,Python 脚本语言的使用十分广泛&am…

阿诗玛的传说|阿诗玛民间故事

是彝族的 阿诗玛的传说 撒尼族阿着底地方,格路日明夫妻耕种山地住着草房。他们有个勇敢的儿子阿黑,又生下一个可爱的小姑娘。 天空闪出一朵花,小姑娘名叫阿诗玛。她的名字像香草,从此美名传四方。不知不觉长到十六岁,就…