码迷,mamicode.com
首页 > 其他好文 > 详细

centos启动流程

时间:2018-03-22 22:37:56      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:solaris   initramfs   重新挂载   ups   src   挂载   命令   process   version   

1,centos启动过程中前半段启动流程图:

技术分享图片

 

2.对流程的具体介绍:

  内核设计流程:
    单内核设计:linux
    把所有功能集成于同一个程序
    微内核设计:Windows , Solaris
    每种功能使用一个单独子系统

linux内核特点
    支持模块化:*.ko
    支持模块的动态装载和卸载:
    组成部分:
      核心文件:/boot/vmlinuz-VERSION-release
      ramdisk: 基于内存的磁盘
      centos5:/boot/initrd-VERSION-release.img
      centos6:/boot/initramfs-VERSION-release.img
      模块文件:/lib/modules/VERSION-release


centos 系统启动流程
  (1)POST:加点自检
    根据ROM:CSOM
    BIOS:Basic Ipot and Output System
  (2)BOOT Sequence:引导程序
    按次序查找各个引导设备,第一个有引导程序的设备即为本次启动用到设备:

    BootLoader:引导加载器,程序 作用:找到操作系统所在的分区把内核加载到内存中并且把控制权正常转交给内核。
          windows:ntloader
          linux:    LILO:linux LOadeer
          GRUB:GRand Uniform Bootloader
    功能:提供一个菜单,允许用户选择要启动系统的或不同内核版本;把用户选定的内核装载到内存中的特定空间中,解压,展开,并把系统控制权移交给内核;
    MBR:
        446:bootloader
        64:fat
        2:55AA

   GRUB:
      bootloader :lst stage
      disk : 2nd stage

   kernel:
      自身初始化:
      探测可识别到的所有硬件设备
      加载硬件驱动程序:(有可能会借助于randisk加载驱动)
      以只读的方式挂在根文件系统
      运行用户空间的第一个程序:/sbin/init

  init程序的类型:
        SysV:init,Centos 5
        配置文件:/etc/inittab
        Upstart: init,centos6
        配置文件:/etc/inittab, /etc/init/*.conf
        Systemd:systemd, centos7
        配置文件:/user/lib/systemd/system , /etc/systemd/system

  ramdisk:
      内核的特性之一是:使用缓冲来回应对磁盘上的文件访问:
      ramdisk --> ramfs(现用)
      centos5:initrd,工具程序:mkinitrd
      centos6:initramfs, 工具:mkinitrd ,dracut

3.对init文件的具体介绍
    /sbin/init
      centos 5:
      运行级别:为了系统的运行或者维护等应用目的而设定
      0-6 : 7个级别
      0:关机
      1:单用户模式(root,无需登录),single,维护模式
      3:多用户模式,正常模式,文本界面
      4:预留级别,可用3级别
      5:多用户模式,正常模式,图形界面
      6:重启
      默认级别:3-5
      切换级别:init #
      查看级别:runlevel who -r

      配置文件:/etc/inittab
      每一行定义一种action以及与之对应的process
      id:runlevel:action:process
    action:
      wait:等待:切换至次级别运行一次
      respawn:重新启动 ,终止就重新启动
      initdefault;设定默认运行级别:processs省略:
      sysinit:设定系统初始化方式,此处一般指定/etc/rc.d/rc.sysinit;
      id:3:initdefault
      si::sysinit:/etc/rc.d/rc.sysinit


  chkconfig命令:
      查看服务在所有级别的启动或关闭设定情形
      chkconfig [--list] [name]

    添加:
      SysV的服务脚本放置于/etc/rc.d/init.d(/etc/init.d)
      chkconfig --add name :添加服务别添加的服务文件必须包好以下语句:
          #!/bin/bash
          #
          #chkconfig:LLL nn nn

    删除:chkconfig --del name
    修改指定的连接类型:
        chkconfig [--leve leves] name <on|off|reset>
          --level LLL:指定要设置的级别:省略时表示2345:

注意:正常级别下,最后启动的一个服务S99local没有连接至/etc/rc.d/init.d一个服务脚本,而是值相同为了/etc/rc.d/rc/local脚本,因此,不便或不需写为服务脚本放置于/etc/rc.d/init.d/目录,又想开机自动运行的命令,可以直接放置于/etc/rc.d/rc.local文件中;


4./etc/rc.d/rc.sysinit:系统初始化


          (1)设置主机名
        (2)设置欢迎界面
        (3)激活udev和selinnx
       (4)挂载/etc/fstab文件中定义的文件系统
        (5)检测跟文件系统,并以读写方式重新挂载根文件系统
        (6)设置系统时钟
       (7)激活swap设备
        (8)根据/etc/sysctl.conf文件设置内核参数
        (9)激活lvm及软raid设备
        (10)清理操作

总结:/sbin/init --> (/etc/inittab) --> 设置默认运行级别 --> 运行系统初始化脚本,完成系统初始化 --> 关闭对应下需要关闭的服务 ,启动需要启动的服务-->设置登录终端

 

centos启动流程

标签:solaris   initramfs   重新挂载   ups   src   挂载   命令   process   version   

原文地址:https://www.cnblogs.com/sanqianfanhua01/p/8626829.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!