centos 6.x开机启动流程

centos 6.x开机启动流程

  1. BIOS(COMS)检查
    加载Bios,bios包含所有硬件信息(CPU,内存,硬盘,时钟,鼠标键盘等等)

  2. 读MBR
    硬盘上第0磁道第一个扇区被称为MBR(master boot recoder,主引导记录),它的大小问512字节,可存放了预加载启动信息,分区表信息。
    系统找到bios所指定的硬盘的MBR后,就会将其复制到0x7c00地址所在的物理内存中。其实被复制到物理内存的内容就是boot loader,而具体到电脑,那就是lilo或者grub了。

  3. boot loader
    boot loader 就是在操作系统运行之前执行一段小程序。通过这段小程序。我们可以初始化硬件信息、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。
    boot loader有若干种,其中grub是最常见的loader
    系统读取内存中的grub配置信息(menu.lst或者grub.lst),并依照此配置来启动不同的操作系统

  4. kernel load
    根据grub设定的内核映像所在的路径,系统读取内存映像,并进行解压操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK, booting the kernel”。
    系统将解压后的内核放置在内存中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。

  5. 用户层init依据inittab文件设定运行级别
    内核加载完成后,第一个运行的程序是/sbin/init,该程序会读取/etc/inittab文件,并依据此文件夹进行初始化工作。
    Linux的运行级别:
    0 关机
    1 当用户模式
    2 不带网络的多用户模式
    3 带网络的多用户模式
    4 预留,没使用
    5 带网络,有支持x-windows的多用户模式
    6 重启

  6. init执行rc.sysinit
    系统执行的第一个用户层程序是/etc/rc.d/rc.sysinit脚本程序。
    它做的工作:设定PATH、设定网络配置、启动swap分区、设定/proc等等

  7. 加载内核库
    具体依据/etc/modules.conf文件及/etc/modules.d目录下的文件来加载内核模块

  8. 执行不同级别的脚本程序
    根据运行级别不同,系统会运行rc0.d到rc6.d中相应的脚本程序,来完成相应的初始化工作和启动相应的服务

  9. /etc/rc.d/rc.local
    rc.load是在一切初始化工作后,留给用户进行个性化的地方

  10. /bin/login
    系统已经进入到了等待用户输入username和password的时候了

你可能感兴趣的:(centos 6.x开机启动流程)