Linux 启动过程

Linux 启动过程:

一:POST上电自检 (Power On Self Test)

       POST上电自检也是BIOS设置的一个功能。

       通常完整的POST自检将包括CPU、640K基本内存(640K BASE MEMORY)、1MB以上扩展内存(EXTEND                             MEMORY)、ROM(READ-ONLY MEMORY,只读存储器)、主板、CMOS存储器、串口、并口、显卡、软盘子系统、硬         盘子系统、键盘进行测试,一旦发现问题,系统将给出警告或鸣笛警告。

二:BIOS (Basic Input Output System)

       BIOS中包含硬件CPU、内存、硬盘等相关信息,包含设备启动顺序信息、硬盘信息、内存信息、时钟信息、即插即用                 (Plug-and-Play,PNP)特性等。加载完BIOS信息,计算机将根据顺序进行启动。

 

三:MBR(Master Boot Record)

       硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,里面存放了预启动信息、分区表信息。系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0×7c00地址所在的物理内存中。其实被复制到物理内存的内容就是Boot Loader,而具体到你的电脑,那就是lilo或者grub了。

 

四:Boot Loader

       一般是GRUB引导系统,GNU GRUB 和GRUB是GRand Unified Bootloader的缩写,它是一个多重操作系统启动管理器。用来引导不同系统,如windows,linux。

 

五:内核加载

根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK, booting the kernel”。
系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。

 

六:init进程执行

内核加载后,首先执行/sbin/init,此文件会读取/etc/inittab文件,系统根据此文件设定运行级别。

      Linux有7个运行级别,如下:

      0:关机。

      1:单用户字符界面。

      2:不具备网络文件系统(NFS)功能的多用户字符界面。

      3:具有网络功能的多用户字符界面。

      4: 保留不用。

      5:具有网络功能的图形用户界面。

      6:重新启动系统。

 

七:init进程执行/etc/rc.d/rc.sysinit 脚本程序

       在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定             PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等

八:init进程根据运行级别,运行/etc/rcN.d 

       根据运行级别,系统会运行/etc/rcN.d 文件,来完成系统初始化工作和启动相应服务。

九:执行/etc/rc.d/rc.local 脚本

      用户自定义的的设置,以及启动服务等命令可放在这里。比如ubuntu下挂载VBox的共享文件等。

十: 执行/bin/login 

      自此,Linux正常启动,进入用户登录状态。

你可能感兴趣的:(linux)