● 制作一个硬盘

./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的更多相关文章

  1. 《一个操作系统的实现》学习笔记(一) bochs源码安装及配置

    前言:本机环境ubuntu 14.04 bochs 2.4.5 一.下载 官网 http://bochs.sourceforge.net/ 二.安装 1.将下载好的压缩包解压并进入该目录 .tar.g ...

  2. bochs上网及配置

    下载并安装bochs2.6:(不能是更高版本) 创建bochs 时注意勾选Dlx linux Demo,但是其文件bochsrc.bxrc中无Ne2k网卡选项,这一段要自己添加,详情见后. 先确定我们 ...

  3. 虚拟机软件bochs编译使用问题

    bochs是一款具有调试功能的虚拟机软件,由C++编写,可用于调试操作系统.从ubuntu软件源中下载的很可能没有调试功能,需要先下载源码,可能比编译之后的可执行文件大的多. 编译时有很多选项,可以通 ...

  4. 【Bochs 官方手册翻译】 第一章 Bochs介绍

    Bochs 是一个可以完全模拟 Intel x86 计算机的虚拟机系统.它包含了 Intel x86 CPU 仿真.常见设备仿真.以及定制 BIOS.Bochs 可以虚拟多种不同类型的 x86 CPU ...

  5. ubuntu 安装bochs

    //首先官网下载bochs源码wget http://bochs.sourceforge.net/svn-snapshot/bochs-20150503.tar.gz//然后解压 tar vxzf b ...

  6. Linux Mint下编译Bochs

    我在Linux Mint命令行下输入sudo apt-get install bochs安装之后发现这个没有安装gui界面,使用也存在一些问题,所以直接删掉从官网下载代码自己编译安装. 给Linux ...

  7. Bochs使用说明

    简介 关于Bochs的介绍:http://en.wikipedia.org/wiki/Bochs Bochs的官网:http://bochs.sourceforge.net/ 这里记录如何在Windo ...

  8. bochs安装一系列问题

    http://blog.chinaunix.net/uid-23817499-id-3418083.html http://www.mouseos.com/os/tools/bochs.html    ...

  9. Ubuntu系统安装配置Pintos和Bochs

    Ubuntu系统安装配置 Pintos 和 Bochs 安装过程 首先是UEFI启动模式下Win8.1安装Ubuntu14.04双系统,由于篇幅过长,就不在这里详写.可见博主的另一篇博客http:// ...

  10. 64位Ubuntu 13.04 安装Bochs 2.3.5

    bochs 2.3.5源码编译 网上编译bochs的资料非常多,基本的问题都有解决方案,我重点讲不常见的问题. 基本安装步骤 tar vxzf bochs-2.3.5.tar.gz cd bochs- ...

随机推荐

  1. 使用Amalgamate将C/C++项目合并成一个.h/.c[pp]文件

    简述 C/C++开源库一般是一堆的头文件和源文件,做到声明和实现分离,减小单个模块大小,这在设计上是很好的,但是用起来稍显麻烦.在网上看到有好心人推荐了一个开源工具Amalgamate,专门用来对C/ ...

  2. Unity3D Adam Demo的学习与研究

      1.简述 这篇文章是对Adam各种相关资料了解后进行一些精简的内容.如果你想仔细研究某个技术请跳转至unity相关页面. Adam官方页面: https://unity3d.com/cn/page ...

  3. 游戏编程精粹学习 - 使用Bloom过滤来提高计算性能(BloomFilter)

    原文在<游戏编程精粹2>的1.2中,BloomFilter是一种可以快速检测是否存在集合包含关系的数据结构,但有一定的误识别率. 该结构的优点 判断包含关系时效率较高,粗略测试了下比Lis ...

  4. Linux安装R记要

    R在Linux上的安装有一些坑(Windows上安装会方便许多),在这里记录,希望可以减少读者不必要的麻烦.我的服务器是SUSE Linux 64位,无法接入互联网(安全原因,你懂的). 到R官网ht ...

  5. [k8s]nginx-ingress配置4/7层测试

    基本原理 default-backend提供了2个功能: 1. 404报错页面 2. healthz页面 # Any image is permissable as long as: # 1. It ...

  6. [Big Data - Kafka] Kafka剖析(一):Kafka背景及架构介绍

    Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cloudera.Apache Storm.Spa ...

  7. 关于uframe源码的一些解读

    游戏管理. GameManager单例:绑定在不同的gameobject上,还是会每次都实例化一个GameManager但是可以为每一个GameManager赋值一个已经存在的单例---------- ...

  8. apache kylin2.10在原生hadoop集群上安装

    Install Kylin Download latest Kylin binaries at http://kylin.apache.org/download Export KYLIN_HOME p ...

  9. hdoj:2027

    #include <iostream> #include <string> #include <vector> using namespace std; int m ...

  10. MUI 打包android app

    自有证书生成方法 manifest配置 (2).图标配置:所有图片格式必须是png,且严格符合分辨率要求.使用其他图片格式重命名为png会导致打包失败.配置图标时选择自动生成所有适用图标,选择一个大图 ...