当前位置:Linux教程 - Linux综合 - 开机简述

开机简述

  启动 1. lilo 2. kernel 3. init 1/2/3/5 important files: /etc/inittab /etc/rc.d/... 4. xdm (graphics interface) important file: /etc/X11/xinit/xsession It seemed that different distribution has differrent xsession. 5. see how /etc/X11/xinit/xsession is written. some related files: Xclients, xinitrc, .xsession, .Xclients, .xinitrc   开机过程指的是从打开计算机电源直到Linux显示用户登录画面的全过程。分析LINUX 开机过程也是深入了解LINUX核心工作原理的一个很好的途径。在不同的计算机平台上, LINUX的开机过程稍有不同,本节以X386微机系统为例,介绍LINUX的开机过程。 1. 开机自检   在刚开机时,根据X386CUP的特性,代码段(CS,CODE SEGMENT)寄存器的值为全1, 指令计数器(IP,INSTRUCTION POINTER)的值为全0,即CS=FFFF、IP=0000。这时CPU根据 CS和IP 的值执行FFFF0H处的指令。由于FFFF0H已经到了基本内存的高地址顶端,所以, FFFF0H处的指令一般总是一个JMP指令,以便CPU能够跳到比较低的地址去执行那里的代码, 这个地址通常是ROM BIOS 的入口地址。接着,ROM BIOS 进行开机自检,如检查内存,键 盘等。在自检过程中,ROM BIOS会在上位内存(UMB,UPPERMEMORY BLOCK)中进行扫描, 看看是否存在合法的设备控制卡ROM BIOS(如:SCSI卡上的ROM),如果有,就执行其中的 一些初始化代码。最后,ROM BIOS 读取磁盘上的第一个扇区并将这个扇区的内存装入内存。 2. 预引导   假定硬盘是系统的启动磁盘。硬盘的第一扇区称为主引导记录(MBR, MASTER BOOTRECORD)。 MBR 的长度为512字节。可分为两部分:第一部分为引导(PRE-BOOT)区,占了446个字节; 第二部分为分区表(PARTITION PABLE),共有66个字节,记录硬盘的分区信息。预引导 区的作用之一是找到标记为活动(ACTIVE)的分区,并将活动分区的引导区读入内存。   如果用软盘启动计算机,ROM BIOS 读入的是软盘的引导区,即软盘的第一个扇区。 3. 核心映像装入   在LINUX系统中,人们通常把LILO(LINUX LOADER)放在MBR或某个分区的超级块 (SUPERBLOCK)中。假定LILO在MBR中,读取MBR后,LILO就会被首先执行。此时,屏幕上 出现“BOOT:”字样,接下来的工作是装入LINUX核心映像。如果LILO安装在某个分区的超 级块中,通常还会有一个管理开机的程序,这个管理开机的程序负责读取LILO,进而进行 核心映像的装入工作。 4. 核心启动   核心装入完毕后,CPU的控制权就交给了核心启动代码。此时,核心首先进行硬件的 检测和设备驱动程序的初始化,然后运行INIT。INIT 是LINUX核心启动的第一个用户进程, 其进程号为1,是系统其它用户进程的祖先。 5. 系统初始化   INIT进程负责进行一系列系统初始化程序和脚本文件,/ETC/INITTAB中包含了INIT所 做的所有工作。 6. 等待用户登录   系统初始化完毕后,INIT 切换到多用户模式,并为每一个虚拟控制台和串行终端启 动一个GETTY进程。GETTY进程负责接受和检验用户的登录要求。   至此,LINUX系统的启动工作全部完成。不同核心版本的LINUX 的启动过程有一定的 差异,不同发行版本的LINUX 的启动也可能稍有不同,但基本过程是类似的。另外,在 “BOOT:”后,利用“LINUX SINGLE”命令可以迫使LINUX进入单用户模式,除不要求用 户登录和不启动虚拟终端以外,启动过程的其它部分也基本类似。

(出处:http://www.sheup.com)