emulator教程 lbochs pc_bochs 开启调试选项

安装

从http://bochs.sourceforge.net/下载

./configure --with-all-libs --enable-vbe --enable-debugger

make

make install

#需要声卡加--enable-sb16,需要网卡加--enable-ne2000,

#64位机使用--enable-x86-64,mmx和sse, smp默认不支持

用SLS Linux  测试

下载SLS Linux    从http://bochs.sourceforge.net/cgi-bin/topper.pl?name=Disk+Images&url=http://sourceforge.net/project/showfiles.phpqmrkgroup_ideq12580amppackage_ideq27799

把SLS Linux 解压缩到一个文件夹

在终端下进到SLS Linux 所在的目录:sls-0.99pl

然后运行bochs

出现问题:

========================================================================

Bochs x86 Emulator 2.3

Build from CVS snapshot on August 27, 2006

========================================================================

00000000000i[     ] reading configuration from bochsrc

00000000000i[     ] WARNING: syntax has changed, please use 'vgaromimage: file=...' now

00000000000e[     ] bochsrc: unknown parameter for parport1 ignored.

00000000000e[     ] bochsrc: floppy_command_delay is DEPRECATED (now using hardware timing).

00000000000e[     ] bochsrc: ips directive is DEPRECATED (use cpu directive parameter 'ips').

------------------------------

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.

1. Restore factory default configuration

2. Read options from...

3. Edit options

4. Save options to...

5. Begin simulation

6. Quit now

Please choose one: [5]

00000000000i[     ] installing x module as the Bochs GUI

00000000000i[     ] using log file bochsout.txt

========================================================================

Event type: PANIC

Device: [MEM0 ]

Message: ROM: couldn't open ROM image file '/usr/local/share/bochs/bios/BIOS-bochs-latest'.

A PANIC has occurred.  Do you want to:

cont       - continue execution

alwayscont - continue execution, and don't ask again.

This affects only PANIC events from device [MEM0 ]

die        - stop execution now

abort      - dump core

Choose one of the actions above: [die]

========================================================================

Bochs is exiting with the following message:

[MEM0 ] ROM: couldn't open ROM image file '/usr/local/share/bochs/bios/BIOS-bochs-latest'.

========================================================================

修改几个地方就可以了:

romimage: file=$BXSHARE/bios/BIOS-bochs-latest, address=0xf0000

修改为:romimage: file=$BXSHARE/BIOS-bochs-latest, address=0xf0000

vgaromimage: $BXSHARE/bios/VGABIOS-elpin-2.40

修改为:vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest

在出现的界面login:输入root

就进入系统

表示bochs的安装成功

创建image文件

dd if=/dev/zero of=hdc.img bs=512 count=524160

Bochs 配置文件 bochsrc.bxrc。在 ata0-master 一行下加

入我们的硬盘 Image 文件的配置参数行:

ata0-slave:type=disk, path=hdc.img, cylinders=520, heads=16, spt=63

此处有些不明白,创建的hdc.img是否在/dev/zero路径?path=hdc.img?

利用 fdisk 命令在 hdc.img 文件中建立 1 个分区。下面是建立第 1 个分区的命令序列。建立另外 3 个

分区的过程与此相仿。由于 SLS Linux 默认建立的分区类型是支持 MINIX2.0 文件系统的 81 类型

(Linux/MINIX)  ,因此需要使用 fdisk 的 t 命令把类型修改成 80(Old MINIX)类型。这里请注意,

我们已经把 hdc.img 挂接成 SLS Linux 系统下的第 2 个硬盘。按照 Linux 0.11 对硬盘的命名规则,该

硬盘整体的设备名应为/dev/hd5(参见表 14–3)             。但是从 Linux 0.95 版开始硬盘的命名规则已经修改

成目前使用的规则,因此在 SLS Linux 下第 2 个硬盘整体的设备名称是/dev/hdb。

[/]# fdisk /dev/hdb

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-520): 1

Last cylinder or +size or +sizeM or +sizeK (1-520): +63M

Command (m for help): t

Partition number (1-4): 1

Hex code (type L to list codes): L

0 Empty              8 AIX            75  PC/IX           b8 BSDI swap

1 DOS 12-bit FAT     9 AIX bootable   80  Old MINIX       c7 Syrinx

2 XENIX root         a OPUS           81  Linux/MINIX     db CP/M

3 XENIX user       40 Venix           82  Linux swap      e1 DOS access

4 DOS 16-bit <32M 51 Novell?          83  Linux extfs     e3 DOS R/O

5 Extended         52 Microport       93  Amoeba          f2 DOS secondary

6 DOS 16-bit >=32 63 GNU HURD         94  Amoeba BBT      ff BBT

7 OS/2 HPFS        64 Novell          b7  BSDI fs

Hex code (type L to list codes): 80

Command (m for help): p

Disk /dev/hdb: 16 heads, 63 sectors, 520 cylinders

Units = cylinders of 1008 * 512 bytes

Device Boot Begin    Start     End Blocks Id    System

/dev/hdb1            1       1     129 65015+ 80    Old MINIX

Command (m for help):w

The partition table has been altered.

Please reboot before doing anything else.

[/]#

接着重新启动:

再次进入 SLS Linux 模拟系统后,我们使用 mkfs 命令在刚建立的第 1 个分区上创建 MINIX 文件系

统。命令与信息如下所示。这里创建了具有 64000 个数据块的分区(一个数据块为 1KB 字节)        。

[/]# mkfs /dev/hdb1 64000

21333 inodes

64000 blocks

Firstdatazone=680 (680)

Zonesize=1024

Maxsize=268966912

[/]#

至此,我们完成了在 hdc.img 文件的第 1 个分区中创建文件系统的工作。

现在可以开始加载硬盘上的文件系统了。执行下列命令,把新的文件系统加载到/mnt 目录上。

[/usr/root]# cd /

[/]# mount /dev/hd1 /mnt

[/]#

在加载了硬盘分区上的文件系统之后,我们就可以把软盘上的根文件系统复制到硬盘上去了。请执

行以下命令:

[/]# cd /mnt

[/mnt]# for i in bin dev etc usr tmp

> do

> cp +recursive +verbose /$i $i

done

此时软盘根文件系统上的所有文件就会被复制到硬盘上的文件系统中。在复制过程中会出现很多类

似下面的信息。

/usr/bin/mv -> usr/bin/mv

/usr/bin/rm -> usr/bin/rm

/usr/bin/rmdir -> usr/bin/rmdir

/usr/bin/tail -> usr/bin/tail

/usr/bin/more -> usr/bin/more

/usr/local -> usr/local

/usr/root -> usr/root

/usr/root/.bash_history -> usr/root/.bash_history

/usr/root/a.out -> usr/root/a.out

/usr/root/hello.c -> usr/root/hello.c

/tmp -> tmp

[/mnt]#

现在说明你已经在硬盘上建立好了一个基本的根文件系统。你可以在新文件系统中随处查看一下。

然后卸载硬盘文件系统,并键入'logout'或'exit'退出 Linux 0.11 系统。此时会显示如下信息:

[/mnt]# cd /

[/]# umount /dev/hd1

[/]# logout

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

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

相关文章

TensorFlow7-多元线性回归模型

运行结果&#xff1a;错误 # 不确定多少行为None。列为12列。即12个数据特征 xtf.placeholder(tf.float32,[None,12],name"X") # 12个特征数据ytf.placeholder(tf.float32,[None,1],name"Y") # 1个标签数据### 创建变量 定义模型结构# 定义了一个命令空…

史上最全jmeter逻辑控制器案例详解

在jmeter中逻辑控制器可以控制采样器(samplers)的执行顺序。由此可知&#xff0c;控制器需要和采样器一起使用&#xff0c;否则控制器就没有什么意义了。放在控制器下面的所有的采样器都会当做一个整体&#xff0c;执行时也会一起被执行。 &#xff08;1&#xff09;控制测试计…

python3.8.2中文手册chm_3.2.2中文语法考察

3自然语言3.1动物的语言3.2自然语言3.2.1英文语法考察3.2.2中文语法考察常见理论可对中文进行的描写与解读如下。汉字的起始是笔划&#xff0c;包括有&#xff1a;横、竖、撇、点、捺、提六种基本笔划&#xff1a;一、丨、丿、丶、㇏、㇀。这些基本笔划可以进一步组合出25种复合…

TensorFlow8-mnist手写数字识别入门

分类问题的损失函数为什么一般不用MSE&#xff1f;MSE在逻辑回归中可能具有多个局部最优点 不能用梯度下降算法

jmeter服务器性能资源监控部署

1、下载https://jmeter-plugins.org/install/Install安装插件plugins-manager放置lib/ext下&#xff0c;重启jmeter选项页面可查看到此下载插件 2、准备客户端插件jmeter-plugins-perfmon-2.1.jar和服务端监控插件ServerAgent-2.2.3&#xff08;CMDRunner.jar、ServerAgent.jar…

高德地图怎么搜索marker_2018-07-06 高德地图搜索定位,滑动地图显示周边信息,根据地址搜经...

emmmm&#xff0c;效果图先行(搜索定位以及自由滑动地图展示周边位置信息,根据点击的位置获取经纬度)aa.gif主要代码package com.dydd.wsp.dreamtree.ui.mapimport android.content.Contextimport android.os.Bundleimport android.support.v7.widget.LinearLayoutManagerimpor…

C++中log的底数理解

C 中log是以e为底的 log10 是以10为底的 现在来看看为什么底数具体为多少不重要&#xff1f; 读者只需要掌握&#xff08;依稀记得&#xff09;中学数学知识就够了。 假设有底数为2和3的两个对数函数&#xff0c;如上图。当X取N&#xff08;数据规模&#xff09;时&#xff0…

【性能测试】性能需求挖掘、性能方案制定及压测场景设计之疑惑与思考(一)

压力测试 模拟用户在同一时间对服务器发送大量请求&#xff0c;以此查看服务器性能指标&#xff0c;尤其关注大业务量情况下运行系统性能的变化&#xff08;反应变慢、是否会内存泄漏导致系统逐渐崩溃、是否能恢复&#xff09;&#xff0c;测试系统的限制和故障恢复能力&#…

条件编译 #ifndef _HEAD_H...中下划线的理解

1.下划线“__”属于编程风格的内容&#xff0c;对程序没有影响。不用下划线也可以&#xff0c;用几个下划线也由个人习惯。 2.其实质是一个宏名。由此我们可以防止发生重复定义或声明。 假设你的头文件名为head.h&#xff0c;根据习惯&#xff0c;我们声明一个宏HEAD_H,对应这…

java如何禁用usb_IT技巧分享59: 如何禁用USB端口以及光驱来保证数据不被泄露

现在电脑USB接口是最基本的一个配置&#xff0c;能快速的把电脑文件拷贝到u盘或者移动硬盘&#xff0c;大大的提高了我们的工作效率&#xff0c;但也容易感染病毒&#xff0c;把公司商业机密泄露出去&#xff0c;为了加强公司安全措施&#xff0c;现提供禁用USB办法。操作步骤&…

mysql原理--连接查询的成本

1.准备工作 连接查询至少是要有两个表的&#xff0c;只有一个 single_table 表是不够的&#xff0c;所以为了故事的顺利发展&#xff0c;我们直接构造一个和 single_table 表一模一样的 single_table2 表。为了简便起见&#xff0c;我们把 single_table 表称为 s1 表&#xff0…

jmeter模拟压测真实复杂用户场景,阶梯螺纹线程组Stepping Thread Group终极线程Ultimate Thread Group并发线程Concurrency Thread Group

我们有时需要模拟非常真实复杂的用户压测场景&#xff0c;可以用到此插件来设计场景 1、安装插件&#xff0c;选项——Plugins Manager打开安装页面 2、搜索standard set并安装&#xff0c;重启jmeter&#xff0c;查看测试计划——添加线程组——jpgc - Stepping Thread Group…

防止文件重复定义之方法

防止重复定义用#ifndef #define #endif 若文件为类中成员函数可以直接使用 若文件为函数&#xff0c;若函数的声明和定义放在一起&#xff0c;则只能采用static或者inline方法解决。用#ifndef不管用 若文件为函数时&#xff0c;函数的声明和定义分别放在.h和.cpp中&#xff…

部署java项目_企业最看重什么样的Java人才?

很多人学习Java真的不是为了梦想&#xff0c;不是爱好&#xff0c;仅仅是想成为拿到高薪的那个人&#xff0c;成为同学里赚的最多的人&#xff0c;成为别人嘴里谈着的那个人。要成为拿高薪的Java工程师&#xff0c;我们要先看看企业到底需要哪方面的人才。上图是某招聘网站上Ja…

jmeter如何通过后置处理器提取(正则提取器、json提取器)做接口关联?

一、后置处理器—正则表达式提取器 1、添加正则表达式提取 2、正则表达式提取面板介绍&#xff1a; 引用名称&#xff1a;提取引用名称&#xff0c;下个请求要引用此参数名称&#xff0c;如填写token&#xff0c;下个请求中用${token} 正则表达式&#xff1a;()&#xff1a;括…

数据结构树4-二叉搜索树2

二叉搜索树.h: #ifndef _二叉查找树_H #define _二叉查找树_H #include<iostream> #include<string>enum Boolean{ FALSE,TRUE}; template<class Type> class Element { public:Type key;//方便添加更新数据 }; // 错误我的写法&#xff1a;template<c…

mixin机制 vue_vue mixins组件复用的几种方式(小结)

最近在做项目的时候&#xff0c;研究了mixins&#xff0c;此功能有妙处。用的时候有这样一个场景&#xff0c;页面的风格不同&#xff0c;但是执行的方法&#xff0c;和需要的数据非常的相似。我们是否要写两种组件呢&#xff1f;还是保留一个并且然后另个一并兼容另一个呢&…

【功能业务篇】APP授权微信登录、绑定账号测试思考

参考https://open.weixin.qq.com/cgi-bin/showdocument?actiondir_list&tresource/res_list&verify1&idopen1419317851&token&langzh_CN 准备工作 移动应用微信登录是基于OAuth2.0协议标准 构建的微信OAuth2.0授权登录系统。 在进行微信OAuth2.0授权登…

数据结构-树3-红黑树

1、刚开始建立的红黑树的红黑树只有一个指针&#xff08;实际为结点&#xff0c;它的右子树指向真正的根结点&#xff08;现在指向空结点&#xff09;。左子树为空结点&#xff0c;里面的数据为负无穷大&#xff09; 2、实现Insert函数

比亚迪后续车都会搭在鸿蒙系统吗_华为鸿蒙系统上车,比亚迪汉发布!我告诉你华为鸿蒙到底是什么...

最早见到华为的HiCar&#xff0c;还是今年4月份的华为P40系列手机发布会。根据发布会公布的信息&#xff0c;HiCar主要的特点就是手机与汽车的顺畅连接体验。借由5G手机&#xff0c;汽车可以实现更强的数据传输能力&#xff0c;同时百万级别的手机APP也会扩展至汽车之上。在这次…