《自己动手写操作系统》之 10分钟完成最小的操作系统

本文详细介绍了如何使用NASM汇编编译器创建一个简单的操作系统引导程序,通过Floppywriter转换器和VMware虚拟机进行模拟运行。从编写汇编代码到配置虚拟机,每个步骤都进行了清晰的说明,强调了实践操作的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备工作

  • 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文件的位置,点击创建。
在这里插入图片描述

结果图

点击“开启此虚拟机”
你就可以看到自己写下的第一个“最简单的操作系统”,在虚拟机下开始运行了。
在这里插入图片描述
——纸上得来终觉浅,绝知此事要躬行。 😐

Menuet 是英国一位软件工程师 Ville Mikael Turjanmaa 利用业余时间开发的,完全由 x86汇编语言于 2000年成的一款32位操作系统。经过大量的修改与完善后, Menuet OS目前已经成为一个用功能完善的操作系统,目前的版本号是 0.74。Ver 0.75 正在开发中。 MenuetOS 并不是一个类Unix操作系统,它完全由 Asm语言编的系统。Menuet 不基于当前任何一款流行的操作系统而运作,主要是为在开发过程中避免复杂的编程及各种不可预料的 Bug。 尽管Menuet是完全用 32位汇编成的,但它的系统程序构架并不完全是为汇编语言而保留,它的接口实际上可用于任何程序设计语言。尽管如此,系统开发的目的还是为更简化 Asm程序设计而设计,系统下 GUI编程尤其体现这一点。 Menuet OS 的特点: 多任务,多线程 图形用户界面,可以达到 16bit color,1280x1024 dpi 程序开发比 Windows 和 Linux 之类的系统更容易 IDE环境:自带应用程序及内核编辑编译工具 完全开放的源代码(GPL) TCP/IP 协议栈、PPP 及 局域网络 HTTP/MP3/Mail 服务器,3D迷宫 自由的界面,窗口可换“皮肤” 仅一张 1.44M 软盘可以装下! Menuet OS 对硬件的要求 : CPU : 386 或更高 显示: 支持 VESA 2.0的显卡(推荐使用)或支持 VESA 1.2 的显卡,至少 1M显存。VGA/EGA 显示器。(注:目前的显卡都支持 VESA 3.0,同时也向下兼容) 声卡: 兼容 SB(Sound blaster) 16声效卡 硬盘: LBA 模式 FAT32文件系统 网络: Realtech 8029/8139 芯片组网卡 鼠标: PS/2 或 COM 或 USB /*别相信这个,我的USB鼠标就用不了*/ 内存: 至少32M
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值