1. 电源

  2. 读取BIOS

    BIOS包含cpu的相关信息,设备启动顺序,硬盘,内存,时钟,pnp特性

  3. 读取MBR

    第0磁道第一扇区 MBR Master Boot Record 主引导记录,512字节,包含预启动,分区表信息

    系统找到BIOS指定的MBR,将其复制到0x7c00地址所在的物理内存中,其实内容就是Boot Loader

  4. boot loader

    初始化硬件设备,建立内存空间的映射图,为最终调用操作系统内核做好一切准备

    包括:Grub,Lilo和spfdisk

    Grub配置信息(menu.lst或grub.lst),依照此配置信息来启动不同的操作系统

  5. 加载内核

    根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压操作。此时,屏幕输出“Uncompressing Linux"。当解压缩内核完成后,输出“OK,booting the kernel"

    系统将解压后的内核置在内存中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。

  6. inittab,运行级别

    第一个运行的程序是/sbin/init,该文件读取/etc/inittab。并依据此文件进行初始化工作

    /etc/inittab主要作用是谁都能够Linux的运行级别

  7. init进程执行rc.sysinit

    linux系统执行的第一个用户层文件/etc/rc.d/rc.sysinit脚本程序

    他的工作包括:设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc

    具体可以查看/etc/rc.d中 查看rc.sysinit文件

  8. 启动内核模块

    依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块

  9. 执行不同级别的脚本程序

    运行rc0.d到rc6.d的相应的脚本程序,来完成相应的初始化工作和启动相应的服务

  10. 执行etc/rc.d/rc.local

    打开此文件,你对此命令一目了然

    rc.local是在一切初始化工作后,给用户进行个性化的地方,你可以把你想设置或启动的放这里

  11. 执行/bing/login 进入登录状态