《自己动手写操作系统》实践(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34686440/article/details/77917393


《自己动手写操作系统》是刚看到的一本书,(虽然已经出版很久了。。。。仅作为操作系统的实现练习和加强对操作系统的理解)。我会把每次遇到的问题和解决方法都一一记录下来,给以后学习的人提供一点点帮助,这就是一件很开心的事了。

这本书由于比较久远了,而且现在很多的软件更新的很快,所以需要很多新的软件代替。

Capter1

问题:

第一,书中的软盘问题

软盘是一个已经落时的东东了,所以刚刚开始准备用一个U盘来做启动盘,后来觉着比较麻烦就使用虚拟软盘.img文件(就是和磁盘具有一样的结构,有MBR,boot Sector,但是虚拟的)来模拟。

第二,虚拟机的问题

我使用的是最新的VMware12.0来加载虚拟软盘模拟出自己制作的OS。

第三,书本的软件nasm,floppywriter(可能的话我会将这些软件上传)

具体操作:

接下来就开始写第一个程序了。保存文件名boot.asm

	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进行编译得到boot.bin文件
nasm boot.asm -o boot.bin

接下来就是将boot.bin文件使用flooywrite写入Tinux.img文件(这里也可以自己创建.img文件镜像)。自己创建一个文件夹(的叫MyOS)我,将Tinux.img和boot.bin放入其中。

打开floppywriter/Release/FloppyWriter.exe选择write file to image  第一次选择到boot.bin这个文件然后打开,第二次选择Tinux.img(自己制作的.img也是可以的)然后打开,不出意外的话应该会成功的。

接下来使用虚拟机加载这个虚拟软盘(Tinux.img文件)。

打开VMware创建新的虚拟机,这里使用的是典型的安装(因为主要是用来加载虚拟软盘的,无需更多的配置)。单击下一步。先选择安装单击下一步 

再然后一定要这样,(在选择iso游览时,选择到Tinux.img所在的文件夹,文件类型选择所有文件),最后点击 稍后安装。

 单击下一步,选择其他

虚拟机的名称和位置自己定义,单击 下一步,接下来选择 默认的选项,最后点击完成。

  点击编辑虚拟机设置


接下来重点来了(一定要点击下面的添加),再选择软盘驱动器(当时不知道这个,弄了好长时间都不对),单击 下一步 , 选择使用 软盘映像

    


软盘映像选择 刚开始制作的Tinux.img文件,然后单击 完成。                         最后点击 确定。

 

点击  开启此虚拟机。                        最后会出现  Hello,OS world    。  你就成功了第一步了。哈哈  



希望看到的人能够给我点支持,让我完成所有的OS实践。谢谢大家

展开阅读全文

没有更多推荐了,返回首页