win7下编写调试自己的OS
一、工具准备
1.到官网下载——bochs for windows(我下载的bochs-2.6.2.exe)
2.到官网下载——nasm(我下载的nasm-2.11.03-installer.exe)
3.到官网下载——WinImage(我下载的ha_WinImage-v8.1.rar)
4.到官网下载——Cygwin(忘了哪一版本了)
二、安装
把以上工具都在自己电脑上安装好
三、运行
1.用编辑器编写一个汇编引导文件boot.asm,用nasm -o boot.bin boot.asm 获得boot.bin文件
2.用WinImage产生一个虚拟软盘,如wb.img
3.用Cygwin,输入命令:dd if=boot.bin of=wb.img bs=512 count=1 conv=notrunc 把引导程序boot.bin复制到虚拟软盘wb.img里
(记着:不要在WinImage里直接把boot.bin文件拖进wb.img里!这样的话无法在bochs里识别出引导程序)------------------
---------------发现,这样制作含有引导扇区的软盘是不对的,cygwin功能不足应该在linux-ubuntu环境下制作。先用../bochs-2.6.2/bximage.exe制作出一个.img,然后.img和boot.bin发到Ubuntu里,在终端输入(在有wb.img的目录下):
/sbin/losetup /dev/loop0 wb.img
/sbin/mkfs.vfat /dev/loop0
这里使用回馈设备loop0使设备和fdt.img关联
然后用mkfs.vfat格式化wb.img(vfat代表fat32格式)
再挂载wb.img
mount /dev/loop0 /mnt/temp
这里,我们就可以向/mnt/temp写入文件了,它的效果就相当于向wb.img写入文件,但这个时候的wb.img是不能被boot.bin(自己写的引导程序)引导的
然后通过write程序,把引导程序写入wb.img第一扇区
write.c
#include /* unistd.h 需要这个文件 */
#include /* 包含有read和write函数 */
#include
int main()
{
char boot_buf[512];
int floppy_desc, file_desc;
file_desc = open("./boot.bin", O_RDONLY); ;boot.bin是我自己写的一个引导程序
read(file_desc, boot_buf, 510);
close(file_desc);
boot_buf[510] = 0x55;
boot_buf[511] = 0xaa;
floppy_desc = open("/dev/loop0", O_RDWR); ;注意,这里是设备/dev/loop0,因为我们用loop0与fdt.img相关联
lseek(floppy_desc, 0, SEEK_CUR);
write(floppy_desc, boot_buf, 512);
close(floppy_desc);
}
编译write.c
gcc write.c -o write
运行write
./write
好了,现在wb.img是一个可引导软盘映像文件了,若要加入文件,则把文件复制到/mnt/temp就可以了 4.分析发现bochs的运行是通过.\Bochs-2.6.2\dlxlinux\run.bat的,而run.bat里就两句话:
cd "E:\Bochs-2.6.2\dlxlinux"
..\bochs -q -f bochsrc.bxrc
可以发现,bochs的配置文件都在同文件夹下的bochsrc.bxrc里,打开bochsrc.bxrc发现果然是配置文件,其内容如下示:
###############################################################
# bochsrc.txt file for DLX Linux disk image.
###############################################################
# how much memory the emulated machine will have
megs: 32
# filename of ROM images
romimage: file=../BIOS-bochs-latest
vgaromimage: file=../VGABIOS-lgpl-latest
# what disk images will be used
floppya: 1_44=floppya.img, status=inserted
floppyb: 1_44=floppyb.img, status=inserted
# 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: c
# default config interface is textconfig.
#config_interface: textconfig
#config_interface: wx
#display_library: x
# other choices: win32 sdl wx carbon amigaos beos macintosh nogui rfb term svga
# where do we send log messages?
log: bochsout.txt
# disable the mouse, since DLX is text only
mouse: enabled=0
# enable key mapping, using US layout as default.
#
# NOTE: In Bochs 1.4, keyboard mapping is only 100% implemented on X windows.
# However, the key mapping tables are used in the paste function, so
# in the DLX Linux example I'm enabling keyboard mapping so that paste
# will work. Cut&Paste is currently implemented on win32 and X windows only.
#keyboard: keymap=$BXSHARE/keymaps/x11-pc-us.map
#keyboard: keymap=$BXSHARE/keymaps/x11-pc-fr.map
#keyboard: keymap=$BXSHARE/keymaps/x11-pc-de.map
#keyboard: keymap=$BXSHARE/keymaps/x11-pc-es.map
其中“#”开头的行都是注释行,内容看起来虽然不少,但是除去以“#”开头的注释以外,实际起作用的内容并不多,而且凭借字面意思,还是比较容易理解的。
因此,为了运行我们自己的wb.img里的引导程序boot.bin,我们可以在.\Bochs-2.6.2\下新建一个目录为mylinux\,然后把.\Bochs-2.6.2\dlxlinux\下面的文件
全部复制过来,再把我们之前已经做好的wb.img复制到这里。
然后,在修改配置文件bochsrc.bxrc,相应行改成
floppya: 1_44=wb.img, status=inserted
boot: a
然后,在简单滴修改一下run.bat,改为
cd "E:\Bochs-2.6.2\mylinux"
..\bochs -q -f bochsrc.bxrc
即可。
在./mylinux/文件夹下双击run.bat即可看到自己OS的运行了!
boot镜像文件下载 bochs镜像文件下载win7
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
CentOS7断网情况下挂载安装盘ISO镜像文件安装软件
CentOS7断网情况下挂载安装盘ISO镜像文件安装软件
安装软件 CentOS yum安装 rpm安装 -
centOS 7镜像文件下载
CentOS 7官方下载地址:https://www.centos.org/download/
centos 安装系统 下载地址 干货 -
win98镜像文件 win98镜像文件下载img
在微软推出Windows 10 之前,想要从微软官网下载Windows系统的原版镜像必须有MSDN订阅才可以,否则只能从其他第三方网站下载。但从Windows 10开始,微软宣布之前的Windows 7、Windows 8/8.1都可以免费升级到Windows 10,微软官网也推出了一个可以下载最新Windows 10系统镜像的工具MediaCreationTool,你可以使用这个工具进行系统升级
win98镜像文件 原版98启动盘镜像.img 咋安装redhatlinux镜像在哪下载 深度启动盘制作工具linux版 虚拟机系统iso镜像下载