大家都知道,打开计算机电源以后,计算机就开始初启过程,即引导操作系统。系统初启过程的细节与所用计算机的体系结构有关,但对所有机器来说,初启的目的是相同的:将操作系统的副本读入内存,建立正常的运行环境。对于Intel 80386系列来说,初启过程分为硬件检测、加载引导程序、初始化内核和实现用户登录。
1.硬件检测
当计算机加电启动时,首先CPU进入实模式,开始执行ROM-BIOS起始位置的代码。BIOS执行加电自检程序(POST),完成硬件启动,然后对系统中配置的硬件(如内存、硬盘及其他设备)进行诊断检测,确定各自在系统中存在,并且处于正常状态。自检工作要经历2~3分钟。自检完成后,按照预先在系统CMOS中设置的启动顺序,ROM-BIOS搜索CDROM、硬盘或者软盘等设备的驱动器,读入系统引导区(通常是磁盘上第一个扇区)的程序,并将系统控制权交给引导装入程序。
2.加载引导程序
整个硬盘的第一个扇区是引导扇区。计算机加电后就从此处“引导”,所以称之为“主引导记录块”(MBR)。MBR中存有磁盘分区的数据和一段简短的程序,该程序并不直接引导操作系统,但它能根据盘区划分的信息找到“活动”分区,然后从活动分区中将引导程序读到内存;运行系统引导程序,它从硬盘中读入其他几个更为复杂的程序,由后者加载操作系统的内核。内核加载完毕后,系统跳转到setup程序,并在实模式下运行。它设置系统参数(包括内存、磁盘等,由BIOS返回)、检测和设置显示器与显示模式等。最后进入保护模式,并转到内核映像的开头,执行内核初始化。
3.初始化内核
系统初始化过程可以分为三个阶段。(www.xing528.com)
第一阶段主要是CPU本身初始化,如设置内核页表、启动页面映射机制、建立系统的第一个进程、初始化内核的全局变量和静态变量、设置中断向量表的初始状态等。
第二阶段主要是系统中一些基础设施的初始化,如设置内存边界、初始化内存页面、设置各种处理程序入口地址、定义系统中最大进程数目、创建init内核线程等。
第三阶段是对上层部分初始化,如初始化外部设备、加载驱动程序、创建核心线程、初始化文件系统并加载它等。
内核初始化工作完成后,就由初始化进程完成系统运行的设置工作,如设置操作系统启动时默认的执行级别、激活交换分区、检查磁盘、建立用户工作环境、显示登录界面及提示信息等。
4.实现用户登录
在用户态初始化阶段,init程序在每个tty端口上创建一个login进程,用来支持用户登录。login进程接收用户输入的账号和密码,并予以验证。合法用户通过验证后就可以进入系统,使用shell交互地执行用户命令,或者在桌面环境上操作。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。