您的位置:首页 > 其它

自己写USB 操作系统

2016-02-19 14:36 274 查看
结合前面USB Boot Loader 1、2的代码和之前bochs调试的代码,就可以实现在Loader.bin内进入操作系统的保护模式,而把操作系统的代码完全放入KERNEL.BIN内,这就完成了一个很小的勉强称得上是操作系统的demo。到此Loader.bin的功能暂时还算完善,下面就可以走上正轨完善内核Kernel的代码了。

要求:

1、KERNEL.BIN是ELF32格式的,可以直接在Linux系统下编译得到

2、LOADER.BIN是纯二进制格式的,在windows或者Linux下编译均可以

3、汇编软件仍然是nasm

Loader流程:

1、检查可用内存大小

2、载入KERNEL.BIN文件到内存

3、初始化GDT、各描述符

4、LGDTR 加载全局描述符

5、打开A20地址线

6、cr0寄存器PE位置1

7、进入保护模式

8、分析KERNEL.BIN的文件结构,将执行代码重新整合

9、执行内核kernel代码

Kernel实现的功能:

1、代码运行于保护模式

2、实现了中断处理以及中断的重入

3、实现多进程以及简单的基于优先级的进程调度

4、实现键盘输入和3个简单的tty功能

思考:

1、在dbr.bin中把Loader.bin的大小限制为了4KB

2、进入保护模式后BISO提供的中断例程不能继续使用了,功能需要自己实现

git仓库地址 https://git.oschina.net/gdhander/OSminix.git
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: