《自己动手写操作系统》之 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分钟完成最小的操作系统的主要内容,如果未能解决你的问题,请参考以下文章

自己动手写操作系统一个最小的“操作系统”

:自己动手写区块链之最小可行区块链

自己动手写一个操作系统——MBR

自己动手写一个操作系统——MBR

自己动手写一个操作系统——MBR

自己动手写一个操作系统——MBR