电脑从开机加电到操作系统main函数之前执行的过程

总的来说在操作系统加电启动之后到main函数执行之前操作系统经历了以下3个大步骤
1.启动BIOS。这个时候位于实模式下,加载中断向量和中断服务程序
2.加载操作系统内核并为保护模式做准备。这个时候操作系统一共加载了3部分代码:引导程序bootsect,内核代码setup,内核代码system模块
3.从实模式转换为32位保护模式。这个过程要做大量重建工作,并且持续工作到操作系统main函数的执行过程。细说的话,主要包括打开32位寻址空间,打开保护模式,建立保护模式下的中断相应机制与保护模式配套的相关工作,建立内存分页机制。

名词说明:
实模式:20位的存储器地址空间,可以直接软件访问BIOS及周边硬件,没有硬件支持的分页机制和实时多任务概念。从80286开始,所有的80x86CPU开机状态都是实模式。
中断向量表:实模式下用于记录所有中断号对应的中断服务程序的内存地址。
中断服务程序:用于指示中断发生后该怎么办的程序。
SS:栈基址寄存器,SP:栈顶指针,两者一起构成栈在内存中的位置。压栈方式为高地址向地地址。
根文件系统设备:linux 0.11使用Minux OS的文件系统管理方式,要求系统必须存在一个根文件,其他文件系统挂在其上。因此Linux 0.11在启动时需要两部分数据,即系统内核镜像和根文件系统。
GDT(全局描述符表):在系统中唯一的存放段寄存器内容的数组,配合程序进行保护模式下的段寻址。其可理解为所有进程的总目录表,其中存放每一个task局部描述符表(LDT)地址和任务状态段(TSS)地址,完成进程中各段的寻址,现场保护与现场恢复。
IDT(中段描述符表):保存保护模式下所有中断服务程序的入口地址,类似于实模式下的中断向量表。
GDTR,IDTR:分别为以上 描述符 表的基地址寄存器
CR0寄存器:0号32为控制寄存器,存放系统控制标志。第0位为PE标志,置1时CPU工作在保护模式下,置0时为实模式。
设置段寄存器指令:该组指令的功能是把内存单元的一个“低字”传送给指令的指定16寄存器,然后把“高字”传给相应的段寄存器。命令格式: LDS/LES/LFS/LGS/LSS Mem, Reg

说明:我学的是linux 0.11内核,目前有的内核版本是3.6,虽然差好多,但是适合学习。
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值