2.内核态-用户态
其实ICS里面已经介绍过这个部分,但是我相信很多同学对这个部分的了解还是停留在理论层面,本次实验会让大家亲自体验切换的过程。
我们首先按 OS 的启动顺序来确认一下:
(步骤一)先是加载OS部分(lab1,当然,这次要解析ELF格式)。
从实模式进入保护模式(lab1)。加载内核到内存某地址并跳转运行(lab1)。
(步骤二)然后是进行系统的各种初始化工作,这里我们采用模块化的方法。
初始化串口输出(
initSerial
)初始化中断向量表(
initIdt
)初始化8259a中断控制器(
initIntr
)初始化 GDT 表、配置 TSS 段(
initSeg
)初始化VGA设备(
initVga
)配置好键盘映射表(
initKeyTable
)从磁盘加载用户程序到内存相应地址(
loadUMain
)
(步骤三)最后进入用户空间进行输出。
进入用户空间(
enterUserSpace
)调用库函数,输出各种内容!
【进入用户空间】这个过程,就是从内核态进入用户态的过程。
Last updated