bochs
● 制作一个硬盘
./bximage
步骤与制作软盘的相似,完成后将bochs软件提示的最后一句话,添加到自己的配置文件里:
dd if=loader.bin of=~/Softwares/bochs-2.6.9/a.img bs=512 count=1 conv=notrunc
dd if=zero.bin of=~/Softwares/bochs-2.6.9/hd.img bs=512 count=10 conv=notrunc
dd if=app.bin of=~/Softwares/bochs-2.6.9/hd.img bs=512 seek=10 conv=notrunc
要加conv=notrunc参数,否则会改变磁盘文件的大小
参考:http://blog.csdn.net/zhaodedong/article/details/51082128
● bochs调试
u/4 ;可反汇编得到当前指令后面4条指令的地址,然后通过b 0x700b(示例)设置断点,输入c,跳转到断点处
r 显示寄存器内容
eflags 0x00000006: id vip vif ac vm rf nt IOPL=0 of df if tf sf zf af PF cf
用r指令显示出的eflags各个标志位,若为大写字母,则为1,否则为0。因此上面的标志位PF=1,其他为0
xp /3 0x90000 查询从0x90000开始的3个字节内容
step 2 ;跳过2条指令
n ;跳过loop,rep等循环指令
print-stack; 查看栈的内容,显示栈顶以上16字的内容
sreg查看段寄存器
参考:http://blog.csdn.net/ddna/article/details/4997695
● linux下安装bochs并创建一个简单的os
1. 创建一个软盘a.img
./bximage
2. 将引导程序复制到软盘
dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc
3. 新建配置文件myos/bochsrc.bxrc
加入如下内容:
# how much memory the emulated machine will have
megs: 32
# filename of ROM images
romimage: file=bios/BIOS-bochs-latest
vgaromimage: file=bios/VGABIOS-lgpl-latest
# what disk images will be used
floppya: 1_44=a.img, status=inserted
# choose the boot disk.
boot: floppy
4. 运行os
./bochs -f rao/bochsrc.bxrc
5. 回车,在命令行输入c,然后回车
参考:http://www.linuxidc.com/Linux/2016-10/135905.htm
● windows下创建一个简单的os
1. 用bximage.exe创建一个软盘,boot.img
2. 创建引导程序boot.asm,并编译
nasm boot.asm -o boot.bin
3. 将引导程序写入到软盘(在linux下写)
dd if=boot.bin of=boot.img bs=512 count=1 conv=notrunc
4. 在bochs安装目录下新建一个目录myos,将dlxlinux系统里的文件全部拷贝到myos目录下,只需修改两个文件:bochsrc.bxrc和run.bat
5.
修改这行:floppya: 1_44= boot.img, status= inserted
注释掉这行:floppyb: 1_44= floppyb.img, status= inserted
注释掉带有"hd10meg.img" 的行,这是
# hard disk
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
#ata0-master: type=disk, path="hd10meg.img", cylinders=306, heads=4, spt=17
启动项应该为软驱启动,这与我们前面做的软驱镜像一直
# choose the boot disk.
boot: floppy
run.bat修改后的文件如下:
cd "D:/SoftTools/Bochs-2.3/myos"
../bochs -q -f bochsrc.bxrc
6. 点击bochsrc.bxrc或者run.bat运行
参考:http://blog.csdn.net/sinzou1/article/details/5905813
bochs的更多相关文章
- 《一个操作系统的实现》学习笔记(一) bochs源码安装及配置
前言:本机环境ubuntu 14.04 bochs 2.4.5 一.下载 官网 http://bochs.sourceforge.net/ 二.安装 1.将下载好的压缩包解压并进入该目录 .tar.g ...
- bochs上网及配置
下载并安装bochs2.6:(不能是更高版本) 创建bochs 时注意勾选Dlx linux Demo,但是其文件bochsrc.bxrc中无Ne2k网卡选项,这一段要自己添加,详情见后. 先确定我们 ...
- 虚拟机软件bochs编译使用问题
bochs是一款具有调试功能的虚拟机软件,由C++编写,可用于调试操作系统.从ubuntu软件源中下载的很可能没有调试功能,需要先下载源码,可能比编译之后的可执行文件大的多. 编译时有很多选项,可以通 ...
- 【Bochs 官方手册翻译】 第一章 Bochs介绍
Bochs 是一个可以完全模拟 Intel x86 计算机的虚拟机系统.它包含了 Intel x86 CPU 仿真.常见设备仿真.以及定制 BIOS.Bochs 可以虚拟多种不同类型的 x86 CPU ...
- ubuntu 安装bochs
//首先官网下载bochs源码wget http://bochs.sourceforge.net/svn-snapshot/bochs-20150503.tar.gz//然后解压 tar vxzf b ...
- Linux Mint下编译Bochs
我在Linux Mint命令行下输入sudo apt-get install bochs安装之后发现这个没有安装gui界面,使用也存在一些问题,所以直接删掉从官网下载代码自己编译安装. 给Linux ...
- Bochs使用说明
简介 关于Bochs的介绍:http://en.wikipedia.org/wiki/Bochs Bochs的官网:http://bochs.sourceforge.net/ 这里记录如何在Windo ...
- bochs安装一系列问题
http://blog.chinaunix.net/uid-23817499-id-3418083.html http://www.mouseos.com/os/tools/bochs.html ...
- Ubuntu系统安装配置Pintos和Bochs
Ubuntu系统安装配置 Pintos 和 Bochs 安装过程 首先是UEFI启动模式下Win8.1安装Ubuntu14.04双系统,由于篇幅过长,就不在这里详写.可见博主的另一篇博客http:// ...
- 64位Ubuntu 13.04 安装Bochs 2.3.5
bochs 2.3.5源码编译 网上编译bochs的资料非常多,基本的问题都有解决方案,我重点讲不常见的问题. 基本安装步骤 tar vxzf bochs-2.3.5.tar.gz cd bochs- ...
随机推荐
- donet core 2.1 DateTime ToString() 方法 在不同平台返回的时间格式不一样?
跟操作系统的 设置的时间格式和系统区域设置有关.为了保持一致性.参数自己写好格式.
- Xcode 常用设置
1.main 文件注释 1)main 文件注释修改路径 /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/Proje ...
- OpenCV 学习笔记 05 人脸检测和识别
本节将介绍 Haar 级联分类器,通过对比分析相邻图像区域来判断给定图像或子图像与已知对象是否匹配. 本章将考虑如何将多个 Haar 级联分类器构成一个层次结构,即一个分类器能识别整体区域(如人脸) ...
- linux下无法执行PHP命令,错误 php: command not found
在linux下执行php时无法执行,报错:php: command not found 解决方法: export PATH=$PATH:/usr/local/php7/bin 可以输入echo $PA ...
- C#调用存储过程详解(带返回值、参数输入输出等)
CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(8), @studentname nvarchar(50) OUTPUT AS BEGI ...
- 安装配置OSA运维管理平台
1.下载完整包V1.0.2wget http://www.osapub.com/download/OSA_BETA_V1.0.2.tar.gzV1.0.5wget http://www.osapub. ...
- Socket网络编程--小小网盘程序(3)
接上一小节,这次增加另外的两张表,用于记录用户是保存那些文件.增加传上来的文件的文件指纹,使用MD5表示. 两张表如下定义: create table files( fid int, filename ...
- 不平衡学习 Learning from Imbalanced Data
问题: ICC警情数据分类不均,30+分类,最多的分类数据数量1w+条,只有10个类别数量超过1k,大部分分类数量少于100条. 解决办法: 下采样:通过非监督学习,找出每个分类中的异常点,减少数据. ...
- 【转】JCR期刊分区及其检索方法
不少机构依据JCR期刊分区制定科研激励政策,相关科研工作者及科研管理机构密切关注JCR期刊分区及其检索方法.本文作一粗略介绍. 关于JCR(Journal Citation Reports,期刊 ...
- Java知多少(70)面向字节流的应用
文件输入输出流 文件输入输出流 FileInputStream 和 FileOutputStream 负责完成对本地磁盘文件的顺序输入输出操作. [例 10-5]通过程序创建一个文件,从键盘输入字符, ...