CentOS启动流程

CentOS启动大致流程:

POST –> BootSequence –> Bootloader –> kernel –> rootfs –> switchroot –> /sbin/init –> (/etc/inittab;/etc/init/*.conf) –> 设定默认运行级别 –> 系统初始化脚本 –> 关闭或启动对应级别下的服务 –> 启动终端

  • POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘、CD-ROM光驱等硬件情况的检测 。

    1. ROM(服务器没有):BIOS ,Basic Input and Output System ,保存着有关计算机系统最重要的基本输入输出程序,系统信息设置、开机加电自检程序和系统启动自举程序等。
    2. RAM :CMOS 互补金属 氧化物半导体,保存各项参数的设定按次序查找引导设备,第一个有引导程序的设备为本次启动设备
  • BootLoader: 引导加载器,引导程序

    1. windows: ntloader ,仅是启动OS
    2. Linux :功能丰富,提供菜单,允许用户选择要启动系统或不同的内核版本;把用户选定的内核装载到内存中的特定空间中,解压、展开,并把系统控制权移交给内核

      1. LILO :LInux LOader
      2. GRUB: GRand Unified Bootloader
        版本:GRUB 0.X: GRUB Legacy,GRUB2
    3. MBR:整个硬盘的第一个扇区
      446: bootloader, 64: 分区表, 2: 55AA
    4. GRUB:
      primary bootloader : 1st stage ,1.5 stage
      secondary bootloader :2nd stage ,配置文件:/boot/grub/grub.config <– /etc/grub.conf
  • kernel:
    自身初始化:

    1. 探测可识别到的所有硬件设备
    2. 加载硬件驱动程序(借助于ramdisk 加载驱动)分3个地方存放所有的驱动。
    3. 以只读方式挂载根文件系统
      /boot/initramfs-… 安装操作系统的时候生成,存放挂载根需要的文件系统
    4. 运行用户空间的第一个应用程序:/sbin/init
  • rootfs:
    库(glibc)

    1. 函数集合,function,接口调用
    2. 过程调用:procedure
    3. 函数调用:function

涉及内容

init程序类型:

  1. SysV:init,CentOS 5
    配置文件:/etc/inittab
  2. Upstart:init,CentOS 6
    配置文件:/etc/inittab;/etc/init /xxx.conf
  3. systemd(仿照IOS):systemd,CentOS 7
    配置文件:/usr/lib/systemd/system;/etc/systemd/system

ramdisk:
内核中的特性之一:使用缓冲和缓存来加速对磁盘上的文件访问,并加载相应的硬件驱动

  • ramdisk –> ramfs 提高速度
  • CentOS 5: /boot/initrd-VERSION-release.img
    工具程序:mkinitrd
  • CentOS 6 ,7: /boot/initramfs-VERSION-release.img
    工具程序:mkinitrd, dracut

内核设计

  • 单内核设计:所有功能集成于一个程序,效率高,安全性低。
    例如:Linux
  • 微内核设计:每种功能使用一个单独子系统实现,效率低,安全性高。
    例如:Windows,Solaris

Linux系统运行级别(CentOS 5 为例)
0:关机
1:单用户模式(root,无需登录),single,维护模式
2:多用户模式,启动网络功能,不启动NFS(维护模式)
3:多用户模式,正常模式。
4:同3,暂无用。
5:多用户模式;图形界面
6:重启
切换级别:init 0-6 查看级别:runlevel ; who -r

  • 配置文件:/etc/inittab (每一行定义一种action)

    • 格式:id:runlevel:action:process

      • attion:
        wait:切换至次级别运行一次
        respawn:此process终止,重新启动之
        initdefault:设定默认运行级别;process省略
        sysinit:设定系统初始化方,此处一般指定/etc/rc.d/rc.sysinit
    • 例:
      l0:0:wait:/etc/rc.d/rc 0
      l1:2:wait:/etc/rc.d/rc 1

相关服务

  • 查看服务在所有级别的启动或关闭设定情形(chkconfig命令)
    chkconfig –list
    chkconfig — level 3 NetworkManager off
    SysV的服务脚本放置于/etc/rc.d/init.d(/etc/init.d)

  • 添加: chkconfig — add name
    删除:chkconfig –del name
    修改:chkconfig –level LLLL name on

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

    • 查看:
      ll /etc/rc.d/rc3.d/S99local
      cat /etc/rc.d/rc.local

原创文章,作者:kstg5663294,如若转载,请注明出处:http://www.178linux.com/80139

(0)
kstg5663294kstg5663294
上一篇 2017-07-12
下一篇 2017-07-12

相关推荐

  • 20160802课堂练习题

    练习: 1、  当用户xiaoming对/testdir 目录无执行权限时,意味着无法做哪些操作? 无法cd进入该目录,但可以ls查看到该目录下的文件,其余的任何操作都执行不了。 2、  当用户xiaoqiang对/testdir 目录无读权限时,意味着无法做哪些操作? 能够进入该目录,不能读取到信息;但如果知道有哪些文件及目录是可以创建…

    Linux干货 2016-08-04
  • 马哥教育网络班21期+第六周课程练习

    第六周作业 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysinit /tmpvim /tmp/rc.sysinit # 命令模式下,输入一下内容:%s@\(^[[:space:]]…

    Linux干货 2016-10-17
  • 第十五周作业

    温故知新 1、总结sed和awk的详细用法 sed [OPTION]… ‘script’ [input-file] …script:地址定界编辑命令 常用选项:-n:不输出模式空间中的内容至屏幕;-e script, –expression=script:多点编辑;-f /PATH/TO/SED_S…

    Linux干货 2017-12-04
  • 系统基础之shell脚本编程详解3(函数)

    shell脚本编程详解3:    在前两节我们分别介绍了shell脚本编程的基础和循环,判断的知识,今天我们分享脚本的另一种用法,函数. 概论:     函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程。    它与shell…

    Linux干货 2016-08-22
  • Docker之~集群配置

    一、前言 Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件,目前最新版本为0.6.2。 本文介绍如何基于Centos7.0构建Kubernetes平台,在正式介绍之前,大家有必要先理解Kubernetes几个核心概念及其承担的功能。以下为Kubernet…

    2015-03-23
  • Linux文本处理及用户组管理命令练习

    一.文本处理基础命令 (1).  列出当前系统上所有已经登录的用户的用户名。           完成命令:who  |  cut  -d’ ‘  -f1  |  uniq  -u 示例: (2).取出最后登录到当前系统对的用户的相关信息。         完成命令:w  |  tail -1 示例: (3).取出当前系统上被用户当作…

    2018-03-11