[手写OS]动手实现一个OS之第一步-环境以及引导扇区
环境准备
- 一台可用计算机(linux我不知道,我用的Windows)
- 汇编编译器NASM
- 一个方便的软盘读写工具
- VirtualBox
汇编编译器NASM
官网地址:https://www.nasm.us/pub/nasm/snapshots/latest/win64/(windows的地址)
直接下载地址:https://www.nasm.us/pub/nasm/snapshots/latest/win64/nasm-2.17rc0-20230220-installer-x64.exe (我的版本是 2.17)
下载后得到:
然后点击安装
选择好你要安装的位置,记住自己安装在哪儿了(之后配置环境变量有用!)
然后一路 Next
结束后,找到你的软件安装位置
并设置环境变量(这些步骤就不用讲了吧)
一个方便的软盘读写工具
在linux中有dd命令,windows要下载:[http://www.chrysocome.net/downloads/dd-0.5.zip][http://www.chrysocome.net/downloads/dd-0.5.zip]
解压,准备好其中的dd.exe
Virtual Box
下载地址: https://www.oracle.com/virtualization/virtualbox/
开始
-
找一个文件夹,例如我在F盘下有一个MyOS文件夹
在此处创建一个虚拟磁盘
在此打开cmd命令窗口 输入
diskpart
弹出窗口
输入
create vdisk file="F:\MyOS\dingst.vhd" maximum=10 type=fixed
解释:
- file= :创建你的虚拟磁盘位置文件
- maximum= : 创建10M
- type=fixed: 固定分区
执行后可以看到
-
编写引导扇区汇编文件
org 07c00h mov ax,cs mov ds,ax mov es,ax call Disp jmp $ Disp: mov ax,BootMsg mov bp,ax mov cx,16 mov ax,01301h mov bx,000ch mov dl,0 int 10h BootMsg: db "Hello, My OS!" times 510 - ($-$$) db 0 dw 0xaa55
并保存为 hello.asm
-
通过之前的汇编器编译该文件
nasm .\hello.asm -o .\boot.bin
编译成boot.bin二进制文件
-
通过软盘读写工具dd.exe将boot.bin写入到dingst.vhd中
先将dd.exe复制到当前文件夹下
然后在命令窗口中执行:
.\dd if=.\\boot.bin of=.\\dingst.vhd
出现下面的内容说明已经写入成功
使用VirtualBox启动你写的这个系统
打开VirtualBox > 新建
内存开个4M,不要给自己整复杂了!
选择已有的虚拟磁盘文件
找到你的写好的那个虚拟磁盘文件
然后启动,等待,成功!