我的第一个操作系统



。。。。发现图片上传不了,有问题大家留言吧


自己是学嵌入式的,学的也不是很好,说白了,就是一些例程玩了下,然后一般的小问题能够自己解决吧。


之前在学ESP8266的知识,发现里面有个嵌入式实时系统,又想起我身边好像有很多这玩意,例如以前51入门的时候有个51TINY、STM32接触过UCOS、后面接触过UBUNTU/LINUX之类的。


突然冒出一个想法,是不是自己也能做操作系统,一百度,果然有这方面的资料,于是很开心的自己做起来了;


下面是我自己的整理的今天的学习过程,给自己做个备忘录:(纯小白)

1.使用汇编做个简单的hello boot;

2.使用nasm编译汇编文件;

3.生成IMG镜像文件;

4.使用VirtualBox运行镜像文件;

5.安装bochs

6.在bochs上面调试boot文件;


1.使用汇编做个简单的hello boot;

我用的代码书写软件是notepad,反正是写个代码,随便了啦;


首先创建我的文件


写入代码,反正我也看不明白,管他呢



后面慢慢学,先抄一份

	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, JUN!"
times 	510-($-$$)	db	0	; 填充剩下的空间,使生成的二进制代码恰好为512字节
dw 	0xaa55				; 结束标志


保存就好了;


2.使用nasm编译汇编文件;

这里有点像linux的感觉,命令行的形式


进入目录生成bin文件


3.生成IMG镜像文件;



隐约记得学树莓派的时候好像有个这玩意,不过不像。,估计是我记错了

成功了;


4.使用VirtualBox运行镜像文件;

先是把文件和虚拟机连接起来



然后打开,可以看到我代码里面写的字符串


没毛病


5.安装bochs

为什么我单独要说这个的安装?没什么特殊的,只是因为下这个软件我中毒了。。。。。。


反正写了,多说一句,本来我想着,本来我就有个虚拟机,为啥要多装这个玩意?后来晓得这个是可以做调试用的,而之前的虚拟机不行,好吧,原谅它让我中毒这件事了,


6.在bochs上面调试boot文件;

这里我找了半天,我发现大神们喜欢用LINUX,但是我电脑比较渣,跑不了,就装在WINDOWS上面,然后启动成了我的问题

不过好歹是找到了解决方案:http://m.blog.csdn.net/article/details?id=52484413

###############################################################
# bochsrc.bxrc file for OS
###############################################################

# how much memory the emulated machine will have
megs: 32

# filename of ROM images
# BIOS已经修改,地址可以不加,可以根据文件大小进行推断,如里加地址要与文件大小相匹配
romimage: file=$BXSHARE/BIOS-bochs-latest
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest

# what disk images will be used 
# 配置镜像名
floppya: 1_44=my_first.IMG, status=inserted

# choose the boot disk.
boot: a

# where do we send log messages?
log: bochsout.txt

# disable the mouse, since Finix is text only
mouse: enabled=0

可能是版本问题吧,没网上那么多的事,就是在IMG所在目录下新建一个配置文件bochsrc.bxrc


然后代码里面把IMG的名字改一下就好了


运行看效果


没毛病,就是字符覆盖了,没啥事


准备调试

到软件的安装目录找到这个exe


我做成了快捷方式。方便一点,直接点开,这就是调试用的东西


选择


然后运行


出来的界面是


左边是控制台,右边是图形界面

根据网上的资料,来个断点


看到diamante运行了

单步调试到出现我的字符串

最后传一个命令



。。。。发现图片上传不了

猜你喜欢

转载自blog.csdn.net/jun626/article/details/54868730