系统引导指的是将
操作系统内核装入内存并启动系统的过程。系统引导通常是由一个被称为启动
引导程序的特殊代码完成的,它位于系统
ROM中,用来完成定位内核代码在外存的具体位置、按照要求正确装入
内核至内存并最终使
内核运行起来的整个系统启动过程。该过程中,启动引导程序要完成多个初始化过程,当这些过程顺利完成后才能使用系统的各种服务。这些过程包括初始引导、内核初始化、全系统初始化。
初始引导过程主要由计算机的
BIOS完成。
BIOS是固化在
ROM中的
基本输入输出系统(Basic Input/Output System),其内容存储在主板
ROM芯片中,主要功能是为内核运作环境进行预先检测。其功能主要包括
中断服务程序、系统设置程序、上电自检(Power On Self Test,POST)和系统启动自举程序等。中断服务程序是系统软硬件间的一个可编程接口,用于完成硬件初始化;系统设置程序用来设置
CMOS RAM中的各项参数,这些参数通常表示系统基本情况、
CPU特性、
磁盘驱动器等部件的信息等,开机时按Delete键即可进入该程序界面;上电自检
POST所做的工作是在计算机通电后自动对系统中各关键和主要外设进行检查,一旦在自检中发现问题,将会通过鸣笛或提示信息警告用户;系统启动自举程序是在
POST完成工作后执行的,它首先按照系统
CMOS设置中保存的启动顺序搜索磁盘驱动器、
CD-ROM、
网络服务器等有效的驱动器,读入操作系统引导程序,接着将系统控制权交给引导程序,并由引导程序装入内核代码,以便完成系统的顺序启动。
操作系统内核装入内存后,引导程序将
CPU控制权交给内核,此时内核才可以开始执行。
内核将首先完成初始化功能,包括对硬件、电路逻辑等的初始化,以及对
内核数据结构的初始化,如
页表(
段表)等。
上述两个步骤完成后,最后要做的就是启动用户接口,使系统处于等待命令输入状态即可。这个阶段操作系统做的主要工作是为用户创建基本工作环境,接收、解释和执行用户程序与指令。不同系统、不同设置,全系统初始化完成后的接口表现是不同的。如果选择了图形界面,此时会显示用户账号和密码输入界面,典型的如Windows的用户登录界面;若使用的是命令接口,则会显示命令行形式的用户登录界面,如图1所示为
Ubuntu Linux系统的命令行登录界面。