第一步:加载内核到内存中

来源:互联网 发布:php导出数据到excel表 编辑:程序博客网 时间:2024/05/22 13:13

      在 操作系统学习笔记 里基本完成了《自己动手写操作系统》第三章的几个实验(除了分页机制实验外)。下面就要迈开编写自己的操作系统这万里长征的第一步了。

 

      在迈出第一步前,有几件事要简要说明一下。

      首先,为将要实现的操作系统命名为:maios。请不要问我这个名称的含义是什么……

      其次,制作此操作系统的目的是什么,或者所此操作系统的用户是谁。简单的说,maios是为自己开发,给自己使用而设计的一个个人专用操作系统。至于要实现的具体功能什么的,在此就不进行详细说明了。

      最后,关于进度安排与完成期限,嗯,进度安排与完成期限是什么意思来着……

 

      虽说是编写自己的操作系统,但是开头这几步里,基本还是按照《自己动手写操作系统》后面几章的步调慢慢来。

 

      在这一步里的任务就是想办法将软盘(外存)里的操作系统内核加载到内存里面,并且能够将执行权交给内核。

      我们知道,操作系统的启动步骤一般为:处于引导扇区的boot(引导程序)将loader(装载程序)加载到内存里,由loader完成一些必要的初始准备工作,然后才将操作系统的内核加载到内存的适当位置,最后将执行权交给内核……

      但因为是给自己写的操作系统,一开始也没有什么需要初始化的,在此,我就偷懒一下,省略掉loader(装载程序)。直接在boot(引导程序)完成加载内核以及进入保护模式的工作,然后跳转到内核入口点。在以后如果boot无法满足需要后,再添加loader什么的;)

 

以下是相关代码:

code:run.c

 

code:global.h

 

code:boot.c

 

code:kernel.c