0.11之路(三):system模块

现在载入第三批代码——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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值