linux系统的启动过程

原文:http://www.2cto.com/os/201109/104268.html

1.BIOS自检

计算机在通电后首先要进行BIOS自检,检查计算机的硬件情况,然后根据CMOS设置定义的顺序来搜索处于活动状态并且可以引导的设备。引导设备可以是CD-ROM、硬盘上的某个分区、网络上的某个设备或者是USB闪存。通常,linux系统都是从硬盘上引导的,其中主引导记录(MBR)中包含主引导加载程序。MBR是一个512字节大小的扇区,位于磁盘上的第一个扇区。当MBR被加载到RAM中之后,BIOS就会将控制权交给MBR。2.启动GRUB/LILO GRUB和LILO都是引导加载程序。当BIOS将控制权交给MBR后,MBR里面的主引导加载程序将引导目标操作系统启动。3.加载内核 操作系统一开始启动时,内核映像(zImage或bzImage)将会被加载到内存,然后由一个例程将其解压缩,并放到高端内存中。接着该例程会调用内核,并开始启动内核引导的过程。4.执行init进程 init进程是系统所有进程的起点。内核在完成核内引导以后,即在本进程空间内加载init程序,它的进程ID是1。Init进程是所有进程的发起者和控制者。任何基于Linux的系统,他都是第一运行的进程。Init进程有两个作用:(1)扮演父进程的角色。因为它永远不会被终止,所以系统总是能确信它的存在,并在必要的时候以它为参照。如果某个进程在它衍生出来的全部子进程之前被终止,就会出现必须以init为参照的情况。此时那些失去父进程的子进程就都会以init作为它们的父进程。(2)init的第二个作用是在进入某个特定的运行级别时运行相应的程序,以此对各种运行级别进行管理。5.通过/etc/inittab文件进行初始化 init的工作是根据/etc/inittab来执行相应的脚本,进行系统初始化,如设置键盘、字头、装载模块、设置网络等。6.执行/bin/login程序 login程序会提示使用者输入账号及密码,接着编码并确认密码的正确性,如果账号与密码相符,则为使用者初始化环境,并将控制权交给shell,等待用户登录。(1)验证和设置账号信息主要是对/etc/passwd和/etc/shadow的处理,这两个目录指定了账户的主目录和shell的种类。如果没有指定主目录,则将主目录默认设置为根目录,如果没有指定shell,则默认为/bin/bash;

(2)对于bash设置各种环境变量,系统首先寻找/etc/profile脚本并执行,然后如果用户的主目录中存在.bash_profile文件,并执行它。

任何业绩的质变都来自于量变的积累。

linux系统的启动过程

相关文章:

你感兴趣的文章:

标签云: