实现操作系统
文章目录
实现最小操作系统
前言
一.准备软件
阅读了下《Orange’s一个操作系统的实现》于渊 著,发现上面有个实现最小系统的实验,便尝试了下,发现无法成功,后面又在网络上查看了不少博客。然后才知道书里面使用的是软盘实现的系统。
实验需要的工具链接放在文章前面
-
nasm.exe
-
编译asm文件为.bin文件
- 需要在cmd下执行,powerShell 会有问题
-
将.bin文件写入IMG
- 文件在Release文件夹中
-
虚拟机VMWARE
创建软盘,安装此最小系统
二.编写代码
创建文件boot.asm
- 直接右键新建文本
- 再改名字和后缀 为
TINUX.IMG
即可
org 07c00h ; 告诉编译器程序加载到7c00处
mov ax, cs
mov ds, ax
mov es, ax
call DispStr ; 调用显示字符串例程
jmp $ ; 无限循环
DispStr:
mov ax, BootMessage
mov bp, ax ; ES:BP = 串地址
mov cx, 16 ; CX = 串长度
mov ax, 01301h ; AH = 13, AL = 01h
mov bx, 000ch ; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮)
mov dl, 0
int 10h ; 10h 号中断
ret
BootMessage: db "Hello, OS world!" ;设置显示文字
times 510-($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为512字节
dw 0xaa55 ; 结束标志
三.编译代码
-
将编译器
nasm.exe
和文件boot.asm
放在同一文件夹下 -
文件路径栏打开
cmd
-
运行命令 编译代码
nasm boot.asm -o boot.bin
四.写入文件到镜像Image
1.创建镜像文件 TINUX.IMG
- 直接右键新建文本
- 再改名字和后缀 为
TINUX.IMG
即可
2.打开 FloppyWriter.exe
转换器
3.选择写入文件到镜像
打开选择镜像
完成
五.在VmWare虚拟机中创建虚拟机
选择稍后安装操作系统
选择其他操作系统
命名虚拟机选择虚拟机存储位置
一般放在自定义的文件夹或者默认皆可
指定磁盘容量
此处选最小即可
自定义硬件
此处自定义,或者之后自定义皆可