我的第一个操作系统

上面是我的微信和QQ群,欢迎新朋友的加入。


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

 

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

 

之前在学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运行了

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

 

 

最后传一个命令

 

 

。。。。发现图片上传不了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值