zoukankan      html  css  js  c++  java
  • Centos 6.x开机启动流程

    Centos 6.x开机启动流程

    BIOS(COMS)检查

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

    读MBR

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

    boot loader

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

    kernel load

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

    用户层init依据inittab文件设定运行级别

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

    init执行rc.sysinit

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

    加载内核库

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

    执行不同级别的脚本程序

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

    /etc/rc.d/rc.local

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

    /bin/login

    系统已经进入到了等待用户输入username和password的时候了



    作者:我是李小胖
    链接:https://www.jianshu.com/p/82f21850df6a
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    一入挨踢深似海,奈何已是梦中人。
  • 相关阅读:
    51keil编译器printf函数
    asp.net里登陆记住密码
    Asp.net GridView分页
    DataTable拆分分页
    ASP.NET MVC 窗体身份验证及角色权限治理示例
    asp.net获取IP地址
    Asp.net Ajax框架教程
    将页面的ViewState放在Session
    20个Jquery表单插件
    前端下载图片的N种方法
  • 原文地址:https://www.cnblogs.com/azu883/p/11953152.html
Copyright © 2011-2022 走看看