系统启动
系统启动
-
安装:将os影像安装到存储介质如磁盘中,然后写启动信息到MBR(512字节,0面0道1扇区)
-
系统引导分为三个阶段:
-
初始引导:把系统核心装入主存中的指定位置,并在指定地址启动
-
核心初始化:执行系统核心的初启子程序,初始化系统核心数据
-
系统初始化:为用户使用系统做准备,例如,建立文件系统,建立日历时钟,在单用户系统中装在命令处理程序,在多用户系统中为每个终端分别建立命令解释进程,是系统进入命令接收状态。
系统引导经过这三个阶段后,就可以交给用户使用了。
独立引导
系统引导的方式独立引导
和辅助下装
。
独立引导的过程:
初始引导
初始引导
也叫自举
。自举的含义是操作系统通过滚雪球的方式将自己建立起来,这是目前大多数系统所常用的一种引导方法。
系统核心(如linux内核)
是整个操作系统最关键的部分,只有它在主存中运行才能逐步建立起来整个系统, 初始引导的任务就是把系统核心送入主存并启动它运行,系统核心是存放在辅存(通常是硬盘)上的。如何能在辅存上的文件中找到这个核心并送到主存中,
这需要有个程序做这件事,该程序成为引导程序(如grub)
。然而引导程序也在辅存中,如何把该引导程序首先装入内存呢?这需要有一个初始引导程序
,而这个程序必须在一开机时能自动运行,这就只有求助于硬件了。
在现代大多数计算机系统中,在他的只读存储器(ROM等)中都有一段用于初始引导的固化代码。当系统加电或按下某种按钮时,硬件电子线路便会自动地把ROM中这段初始引导程序读入主
存,并将CPU控制权交给它。 初始引导程序的任务是将外存中的引导程序读入主存。这里必须指出,这个引导程序必须放在辅存的固定位置上(称为引导块),ROM从这个引导块去读内容,而不
管它是什么,这就要求将引导程序事先存放在这个引导块上。当引导程序进入主存后,随机开始运行。该程序的任务是将操作系统的核心程序读入主存某一位置,然后控制转入核心的初始化程序执行。
核心初始化
一旦核心内的初始化程序开始执行,系统初启就进入第二阶段,这一阶段的主要任务是初始化核心数据,unix的系统核心初始化阶段完成如下三项任务:
核心页表寄存器与核心数据的初始化
建立0#进程,0#进程是系统建立的第一个且永远处于核心态的唯一的进程。它的主要任务是按照系统的需要把即将运行的进程送入主存,并把近期内不运行的进程送到辅存上
建立1#进程,1#进程是初始化进程,它的作用是实现系统的初始化,负责为终端建立子进程。
系统初始化
这一阶段的主要任务是做好一切准备工作,使系统处于命令接收状态,这时用户可以使用机器了。
unix系统初始化是由1#进程执行INIT进程实现的。
它分两个阶段完成:
-
首先,为控制台终端建立一个进程,执行命令解释程序,接收用户的命令(这一环境称为单用户环境);
-
然后,系统继续为每个用户终端建立命令解释进程。这些进程负责与用户交互,运行用户登陆程序和命令解释程序。当用户登陆后,接受用户的shell命令(这一环境称为多用户环境)。这时,用户就可以是用unix系统了,系统启动全部完成。
- 上一篇 cpu调度
- 下一篇 cookie和session