环境:centos7(建议带桌面的版本)镜像网址

环境配置:gcc、gas、nasm、make

1.配置环境

yum -y install xxx(eg:gcc.等)

若出现yum源问题请观看

没有可用软件包和yum源问题https://blog.csdn.net/weixin_42492218/article/details/127656213?spm=1001.2014.3001.5501

2.安装bochs

1.进入boch官网:bochs版本选择页    选择版本,原则上越新越好,博主选择的是2.6.9

2点击进入选择红框内tar.gz文件,点击下载,下载完成在Linux下进行解压

3.解压完成进入解压后的文件目录,在终端执行下列命令进行安装(make install须在root用户下进行,否则使用sudo进行执行)sudo make install

./configure --enable -debugger --enable-disasmmakemake install

4.接着执行下列配置参数,打开所有功能(不知道具体用到哪些)

./configure --with-x11 --with-x --enable-debugger --enable-disasm --enable-all-optimizations --enable-readline --enable-long-phy-address --enable-ltdl-install --enable-idle-hack --enable-a20-pin --enable-x86-64 --enable-smp --enable-cpu-level=6 --enable-large-ramfile --enable-repeat-speedups --enable-fast-function-calls --enable-handlers-chaining --enable-trace-linking --enable-configurable-msrs --enable-show-ips --enable-cpp --enable-debugger-gui --enable-iodebug --enable-logging --enable-assert-checks --enable-fpu --enable-vmx=2 --enable-svm --enable-3dnow --enable-alignment-check --enable-monitor-mwait --enable-avx --enable-evex --enable-x86-debugger --enable-pci --enable-usb --enable-voodoo

由于再次执行make、make install 时可能会出现一些文件缺失之类需要执行以下命令

cp misc/bximage.cpp misc/bximage.cc
cp iodev/hdimage/hdimage.cpp iodev/hdimage/hdimage.cc
cp iodev/hdimage/vmware3.cpp iodev/hdimage/vmware3.cc
cp iodev/hdimage/vmware4.cpp iodev/hdimage/vmware4.cc
cp iodev/hdimage/vpc-img.cpp iodev/hdimage/vpc-img.cc
cp iodev/hdimage/vbox.cpp iodev/hdimage/vbox.cc

然后执行命令

makemake install

到此为止bochs可以说配置安装完成了,为了更好的使用bochs,进行下一步配置操作

3.创建配置文件

1.创建一个配置文件,命名为bochsrc内容如下:

执行命令vim bochsrc(可以在自己新建的目录下进行创建,与后面.img文件放在同目录下最佳)

plugin_ctrl: unmapped=1, biosdev=1, speaker=1, extfpuirq=1, parallel=1, serial=1, iodebug=1
config_interface: textconfig
#使用GUI调试
display_library: x, options="gui_debug"
cpu: model=core2_penryn_t9600, count=1, ips=50000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
cpu: cpuid_limit_winnt=0
cpuid: x86_64=1, mmx=1, sep=1, simd=sse4_2, apic=xapic, aes=1, movbe=1, xsave=1
cpuid: family=6, model=0x1a, stepping=5
romimage: file=$BXSHARE/BIOS-bochs-latest
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
vga: extension=vbe, update_freq=5
keyboard: type=mf, serial_delay=250, paste_delay=100000, user_shortcut=none
mouse: type=ps2, enabled=0, toggle=ctrl+mbutton
pci: enabled=1, chipset=i440fx
clock: sync=none, time0=local, rtc_sync=0
private_colormap: enabled=0#软盘启动的配置,a.img为软盘名
floppya: type=1_44, 1_44=boot.img, status=inserted, write_protected=0ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata1: enabled=0, ioaddr1=0x170, ioaddr2=0x370, irq=15
ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9# 硬盘启动配置,a.img为硬盘名,根据硬盘大小不同需改变后三个参数的值
#ata0-master: type=disk, mode=flat, path=a.img, cylinders=130, heads=16, spt=63
#ata0-slave: type=none
#ata0-master: type=none
#ata1-slave: type=none# 软盘启动/硬盘启动
boot: floppy
# boot: diskfloppy_bootsig_check: disabled=0
log: -
logprefix: %t%e%d
panic: action=ask
error: action=report
info: action=report
debug: action=ignore
debugger_log: -
com1: enabled=1, mode=null
com2: enabled=0
com3: enabled=0
com4: enabled=0
parport1: enabled=1, file=none
parport2: enabled=0
speaker: enabled=1, mode=system
magic_break: enabled=0
print_timestamps: enabled=0
port_e9_hack: enabled=0
megs: 2048

4.编写一个简单的boot引导程序(使用asm)

建议与bochsrc在同一目录下

代码详细说明请参考:

简单的boot引导的实现代码(内有详细注解,asm INT10的使用)https://blog.csdn.net/weixin_42492218/article/details/127665541?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22127665541%22%2C%22source%22%3A%22weixin_42492218%22%7D

org     0x7c00
BaseofStack     equ     0x7c00Label_Start:
mov     ax,     cs
mov     ds,     ax
mov     es,     ax
mov     ss,     ax
mov     sp,     BaseofStack ;===============clear screen
mov ax, 0600h
mov bx, 0700h
mov cx, 0
mov dx, 0184fh
int 10h;===============set focus  mov ax, 0200h
mov bx, 0000h
mov dx,  0000h
int 10h;============display on screen : start booting....mov ax, 1301h
mov bx, 000fh
mov dx, 0000h
mov cx, 10
push ax
mov ax, ds
mov es,  ax
pop ax
mov bp, startBootMessage
int 10h;======== reset floppy
xor ah,ah
xor dl,dljmp $startBootMessage:   db  "start Boot";=========fill zero until whole sectortimes 510-($-$$) db 0
dw 0xaa55

编写完成后,对其进行编译

nasm boot.asm -o boot.bin

5.创建一个软盘镜像

如图所示,建议与bochsrc在同一目录下

创建为软盘即fd,大小默认1.44M即可,命名为boot.img

之后为查看创建是否成功

6.将生成的boot.bin写入img文件中

执行命令

这行命令中的if = boot.bin指定输入源文件名,而of=boot .img则指定输出文件名,参数bs=512指定传输的块大小为512B,参数count=1指定写入到目标文件的块数量,参数conv=notrunc规定在写入数据后不截断(改变)输出文件的尺寸大小。

dd if=boot.bin of=boot.img bs=512 count=1 conv=notrunc

执行日志:

7.开始进行boot引导的执行

执行命令

 bochs -f ./bochsrc 

这时可能会出现错误:

Event type: PANIC
Device: [XGUI ]
Message: bochs: cannot connect to Xll server

是缺少图形库等问题,执行下列命令再次运行即可

yum install xorg*
yum install libX*

若未成功弹出窗口,输入debug即可

由于配置文件中有options="gui_debug"   所以需要输入debug才可继续进行,将该项删除即可正常运行。

接着输入  c  就成功了!!!!

成功跑出boot引导:

在Linux下安装配置bochs,并成功跑一个简单的boot引导(超详细)相关推荐

  1. Linux 下安装配置C/C++开发环境 Code::Blocks

    Linux 下安装配置C开发环境Code::Blocks 一.提前的话 要说C语言和Linux的关系大家应该都不会陌生,Linux系统内核就是用C语言开发的,所以所有的Linux系统下面 都会有C的编 ...

  2. Linux下安装配置vsftpd

    Linux下安装配置vsftpd 安装vsftpd服务器 yum -y install vsftpd 可以使用rpm -qa vsftpd命令确认是否安装好vsftpd服务器. vsftpd.conf ...

  3. Docker Linux下安装配置及启动

    Docker Linux下安装配置及启动 linux配置环境 基础下载镜像: wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliy ...

  4. 使用oracle安装jdk1.7,【Java】Linux下安装配置Oracle JDK 1.7版本

    1 环境 Vmware虚拟机中的Ubuntu 12.04 32位系统 2具体安装步骤 ①下载最新的jdk包 注意jdk区分32位版本和64位版本,要与Ubuntu兼容才行 下载地址 http://ww ...

  5. linux下安装配置redis服务

    2019独角兽企业重金招聘Python工程师标准>>> linux下安装配置redis服务 2016年03月25日 15:39:31 coding_everyday 阅读数:3530 ...

  6. Linux 下安装配置 JDK7

    Linux 下安装配置 JDK7 配置环境(debian 7) 自从从Oracle收购Sun近三年来,已经有很多变化.早在8月,甲骨文将"Operating System Distribut ...

  7. linux login 安装桌面,Linux_Ubuntu Linux下安装配置fluxbox桌面环境,安装   基本系统Ubuntu 7.10 G - phpStudy...

    Ubuntu Linux下安装配置fluxbox桌面环境 安装 基本系统Ubuntu 7.10 Gutsy,Xfce桌面.直接安装源里的fluxbox: aptitude install fluxbo ...

  8. linux hadoop eclipse 安装,linux下安装Hadoopeclipse插件以及编写第一个简单的MapReduce程序...

    linux下安装Hadoopeclipse插件以及编写第一个简单的MapReduce程序 Hadoop 安装eclipse这个不难.网上太多的教程,一找一大把.熟悉了之后也不再需要看教程就可以自己安装 ...

  9. linux下安装配置apache+php,linux下安装apache与php;Apache+PHP+MySQL配置攻略

    linux下安装apache与php;Apache+PHP+MySQL配置攻略 时间:2019-10-09 20:04 1.apache 在如下页面下载apache的for Linux 的源码包 ht ...

最新文章

  1. QT的QXmlDefaultHandler类的使用
  2. Spring-Boot使用RedisCluster
  3. angular的性能分析 -随记
  4. 29.课时29.【Django模板】url标签使用详解(Av61533158,P29)
  5. oracle 频繁 tm tx,oracle频繁出现TX/TM锁问题
  6. § 1.3 简 单 的 Java程 序
  7. ubuntu18.10 编译安装caffe gpu版本
  8. 永中集成Office:既是创新产品,也是战略储备
  9. C编程实例-“约瑟夫问题” 解法
  10. nodejs--模块化、模块作用域、导出数据的几种方式、包、包管理、自定义包、模块加载机制
  11. 【汽车】新能源汽车的分类
  12. 计算机上u盘打不开,u盘在电脑上打不开怎么解决
  13. jQuery轮播图效果+ bxCarousel实现图片滚动切换效果+Mootools Videobox实现视频图片弹出类lightbox效果
  14. 随便记录点 在 贴吧 里 讨论 广义相对论 的 想法
  15. 客户端dmesg_查看dmesg,会打出很多的日志“TCP: too many of orphaned sockets”
  16. IDEA翻译插件出现报错: 更新 TKK 失败,请检查网络连接解决
  17. iFunk执政官游戏本,不仅仅是游戏本
  18. C语言七巧板游戏制作,绘本里的七巧板游戏
  19. 推流用本地地址收报错,http://127.0.0.1:1935/live/test:connection refused
  20. 东南亚移动支付兼并洗牌

热门文章

  1. N-最短路径分词算法
  2. 更简单的非递归遍历二叉树
  3. 运维工程师是桥的护栏_海沧大桥护栏救过不少车 海沧大桥护栏如何养护
  4. C语言中经典算法——斐波那契数列的几种算法
  5. java 集合封装树形结构
  6. Python+opencv 人脸识别
  7. DJL-Java开发者动手学深度学习之线性回归
  8. ECCV 2022 | 视觉新任务!AVS:视听分割
  9. SpringBoot 亚马逊Simple邮件发送
  10. 贝叶斯系列:(三)贝叶斯网络