操作系统的一般启动过程
操作系统启动过程简单分为四部分,从BIOS自检、系统引导、启动内核、初始化系统。其中每个部分又分为多个自部分,操作系统的建立是一个相对比较复杂的事情。以下以Linux2.6.32版本为基础,介绍操作系统启动过程如下。
1、BIOS自检
在计算机开机时,boot被自动执行,指引CPU把操作系统从大容量存储器中传送到主存储器的易失区。BIOS的功能由两部分组成,分别是POST码和Runtime服务。POST阶段完成后它将从存储器中被清除,而Runtime服务会被一直保留,用于目标操作系统的启动。
2、系统引导
引导程序的核心工作是将linux内核从外存读入内存,并将其放在合适的位置中。Linux的内核被分为三部分,主体部分是在保护模式或64位中运行的内核镜像,以被压缩,在内核镜像之前有一段解压缩程序,用于解压缩内核文件头部是一段实模式的初始化程序,用于在保护模式运行。
3、启动内核
当处理器离开引导程序的时候,它处于实模式下面,需要执行实模式下面的引导程序后,跳转到保护模式解压内核镜像。在实模式中,引导程序进行三项工作:收集系统参数、设置基本环境、切换处理器操作模式。
4、解压内核
如前面讲到的,linux在内存中的为内存镜像,需要进行解压,解压后需要把内核放在适当的位置。这个位置在老的版本为0x100000(1MB)处,新版本要求在物理内存的0x1000000(16MB)处,这样可以节省16MB以下的内存空间给DMA使用。
扩展资料:
Linux内核是从入口点开始执行的,入口点程序又称为初始化程序,其任务是为Linux操作系统的运行做好必要的准备,如将内核镜像(bzimage)在物理地址展开、获取计算机组成部分的配置参数、建立各种管理用的数据结构、启动各类守护进程、建立人机交互环境等。
Linux内核是一个驻留在外存中的程序,在运行前必须先将其读入物理内存。将Linux内核读入内存的工作成为引导,完成引导的程序被称为引导程序。引导也是在外存中的程序,所以在运行之前需要将其读入内存。
引导程序在linux内核读入后,将控制权交给内核头部的实模式初始化程序,在实模式下完成初始化工作,再将处理器切换到保护模式,而后转入解压程序。解压程序将内核镜像解压到物理地址中,然后把处理器的控制权交给内核首部程序。内核首部程序正式完成内核初始化。
参考资料来源:百度百科-操作系统启动过程