当前位置:网站首页>制作一个启动软盘并用bochs模拟器启动
制作一个启动软盘并用bochs模拟器启动
2022-08-10 05:36:00 【刘十彡】
1.bximage创建软盘。
选1
默认[1.44M]
起名boot.img
status=inserted表示已经插入该软盘
2.编译boot.asm汇编编写的引导程序。
使用nasm编译器进行编译。
-o 参数: nasm 文件名 -o 目标程序名
-o 和gcc一样表示输出文件。
编译命令:
nasm boot.asm -o boot.bin
3.使用dd命令把引导程序强制写入到虚拟软盘的固定扇区内。
dd if=boot.bin of=./boot.img bs=512 count=1 conv=notrunc
conv=notrunc: 写入数据后,不改变输出文件的尺寸大小。
4.配置bochs虚拟机配置文件。
# configuration file generated by Bochs
plugin_ctrl: unmapped=1, biosdev=1, speaker=1, extfpuirq=1, parallel=1, serial=1, iodebug=1
config_interface: textconfig
display_library: x
#memory: host=2048, guest=2048
romimage: file="/home/hao/work_pro/bin_bochs/share/bochs/BIOS-bochs-latest"
vgaromimage: file="/home/hao/work_pro/bin_bochs/share/bochs/VGABIOS-lgpl-latest"
boot: floppy
floppy_bootsig_check: disabled=0
floppya: type=1_44, 1_44="boot.img", status=inserted, write_protected=0
# no floppyb
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=none
ata0-slave: type=none
ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
ata1-master: type=none
ata1-slave: type=none
ata2: enabled=0
ata3: enabled=0
pci: enabled=1, chipset=i440fx
vga: extension=vbe, update_freq=5
cpu: count=1:1:1, ips=4000000, quantum=16, model=corei7_haswell_4770, reset_on_triple_fault=1, cpuid_limit_winnt=0, ignore_bad_msrs=1, mwait_is_nop=0, msrs="msrs.def"
cpuid: x86_64=1,level=6, mmx=1, sep=1, simd=avx512, aes=1, movbe=1, xsave=1,apic=x2apic,sha=1,movbe=1,adx=1,xsaveopt=1,avx_f16c=1,avx_fma=1,bmi=bmi2,1g_pages=1,pcid=1,fsgsbase=1,smep=1,smap=1,mwait=1,vmx=1
cpuid: family=6, model=0x1a, stepping=5, vendor_string="GenuineIntel", brand_string="Intel(R) Core(TM) i7-4770 CPU (Haswell)"
print_timestamps: enabled=0
debugger_log: -
magic_break: enabled=0
port_e9_hack: enabled=0
private_colormap: enabled=0
clock: sync=none, time0=local, rtc_sync=0
# no cmosimage
# no loader
log: -
logprefix: %t%e%d
debug: action=ignore
info: action=report
error: action=report
panic: action=ask
keyboard: type=mf, serial_delay=250, paste_delay=100000, user_shortcut=none
mouse: type=ps2, enabled=0, toggle=ctrl+mbutton
speaker: enabled=1, mode=system
parport1: enabled=1, file=none
parport2: enabled=0
com1: enabled=1, mode=null
com2: enabled=0
com3: enabled=0
com4: enabled=0
megs: 2048
5.启动bochs。
bochs -f ./bochsrc
6.输入c进行继续执行。
边栏推荐
- mysql连接报错:Cannot get a connection, pool error Timeout waiting for idle object
- mysql分组排序并取各分组前几个数据
- markdown使用技巧
- 从零开始构建Google Protocol Buffer / protobuf 的helloworld工程(超级详细)
- Tensorflow 2.0 使用流程详解
- Unity对象池实现
- 酸回收树脂工艺技术详解
- pytorch-10. Convolutional Neural Networks (homework)
- STM32F407ZG GPIO输入相关实验
- 浅谈游戏中3种常用阴影渲染技术(2):阴影锥
猜你喜欢
LeetCode refers to the offer 21. Adjust the order of the array so that the odd numbers are in front of the even numbers (simple)
ASP.NET连接SQL Server的步骤
每日刷题(day02)——leetcode 622. 设计循环队列
样条曲线(下)之插值问题(贝塞尔曲线、B样条和一般样条曲线插值)
【目标检测】相关指标的引入与解析
详解 Hough 变换(下)圆形检测
【fiddler3】使用fiddler设置弱网模式
序列化、编码、requests库json和data参数
8个问题轻松掌握Unity前向渲染
LeetCode 100. The same tree (simple)
随机推荐
动态规划、背包问题 6/25 110-115
在Unity的Update中通过物体自身位置判断运动方向
常用模块封装-pymysql、pymongo(可优化)
【简易笔记】PyTorch官方教程简易笔记 EP3
Radon 变换原理和应用
优先级队列,大小顶堆PriorityQueue
STM32单片机OLED俄罗斯方块单片机小游戏
ASP.Net利用代码点击相应按钮来关闭当前的页面(亲测有效)
氨氮的有效吸附材料
作为测试,常用的adb命令
mkfs.minix.c之minix_super_block.s_nzones获取解析
STM32单片机手机APP蓝牙高亮RGB彩灯控制板任意颜色亮度调光
在Unity中判断游戏物体是否在游戏屏幕范围之内
51单片机智能远程遥控温控PWM电风扇系统红外遥控温度速度定时关机
多线程与多进程(概念详细讲解)
探究乱码问题的本源:GBK,UTF8,UTF16,UTF8BOM,ASN1之间的关联
Unity屏幕坐标转世界坐标,鼠标点击获取三维位置
最简单的字符设备驱动
详解样条曲线(上)(包含贝塞尔曲线)
浅谈游戏中3种常用阴影渲染技术(1):平面阴影