《自己动手写操作系统》之 10分钟完成最小的操作系统
Posted iuk11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《自己动手写操作系统》之 10分钟完成最小的操作系统相关的知识,希望对你有一定的参考价值。
准备工作
- nasm 汇编编译器
- Floppywriter (File to image) 转换器
- VMware 虚拟机
步骤
先创建一个boot.asm
的文件,我是用VsCode写的,记事本也可以。(还一直以为nasm是编辑器,结果是编译器,搜了半天教程。。
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中输入nasm boot.asm -o boot.bin
成功!
文件路径一定要与编译器路径相同,不然会报错找不到文件
我是先在编译器路径下创建了文件,等生成了boot.bin
文件之后再剪切出去的。
之后就可以用转换器做转换了,转换前先创建TINUX.IMG
文件,然后将boot.bin
文件放进去。
之后打开VMware虚拟机,创建新的虚拟机。
选择经典(推荐)即可。然后再下一个页面中,先选择浏览,将自定义好的TINIX.IMG
放进来,然后会提示无法检测,我们随后点击下方稍后的按钮,点击下一步。
点击其它,选择其它。点击下一步。
然后选择自己想放置的位置,下一步,分配内存。
点击完成后,蹦出以下界面。(我这个是退出来之后的,与初始有些许不同)
找到“虚拟机”->“设置”。
点击添加。
选择软盘驱动器,点击完成。
最后点击软盘,找到之前写好的TINIX.IMG
文件的位置,点击创建。
结果图
点击“开启此虚拟机”
你就可以看到自己写下的第一个“最简单的操作系统”,在虚拟机下开始运行了。
——纸上得来终觉浅,绝知此事要躬行。 😐
以上是关于《自己动手写操作系统》之 10分钟完成最小的操作系统的主要内容,如果未能解决你的问题,请参考以下文章