码迷,mamicode.com
首页 > 其他好文 > 详细

0.11之路(三):system模块

时间:2015-04-14 16:46:39      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

现在载入第三批代码——system模块,仍然使用 int 0x13 中断。
这批代码要比之前多很多,所以需要一点时间,于是出现了 “Loading system …”的字样。但是,此时操作系统的main函数还没有执行,所以它是用汇编来实现的。
system模块被加载至内存的 0x10000 往后的120KB空间中。这样整个操作系统的代码都加载至内存,最后要再次确定一下根设备号。

什么是根设备?
根文件系统设备(Root Device):
0.11使用的是Minix操作系统的文件系统管理方式,要求系统必须存在一个根文件系统,其他文件系统挂接在其上,而不是同等地位。一张格式化好的软盘就可以成为一个根文件系统设备。

setup程序做的第一件事就是利用BIOS中断服务程序从设备上提取内核运行所需的机器系统数据。然后将这些数据放在了 0x90000 ~ 0x901FD 的位置,可见已经覆盖了原先的bootsect代码,bootsect只有2B未被覆盖,可见,操作系统对内存的使用是非常严谨的——充分利用了已经没有用的内存,而且几乎正合适,只差2字节。

最后,总结一下整个的加载过程。

开机 —— BIOS —— bootsect(int 0x19)—— setup (int 0x13)—— system(int 0x13)

0.11之路(三):system模块

标签:

原文地址:http://blog.csdn.net/bluecloudmatrix/article/details/45042261

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!