马哥Linux学习笔记13-1/2centos系统启动流程

  • 13-1 centos 5 和6的启动流程
    Linux:kelnel+rootfs
    1kelnel:进场管理,内存管理,网络管理,驱动程序,文件系统,安全功能
    rootfs:glibc
    2库:函数集合,function,调用接口
    过程调用:procedure
    函数调用:function
    3程序
    4内核设计流派:
    单内核设计:Linux,把所以功能集成于同一个程序
    微内核设计:Windows,Solaris,每种功能使用一个单独子系统实现
    5Linux内核特点:
    支持模块化:.ko
    支持模块化的动态装载和卸载
    组成部分:核心文件:/boot/vmlinuz-VERSION-release;模块文件:/lib/modules/VERSION-release

  • centos 系统启动流程
    1POST:加电自检:ROM:CMOS
    BIOS:Basic Input and Output System
    ROM+RAM
    2BOOT Sequeunce:
    按次序查找各引导设备,第一个有引导程序的设备即为本次启动用到设备。
    BootLoader:引导加载器,程序
    Windows:ntloader
    Linux:LILO:linux,loader
    GRUB:GRamd Uniform Bootloader
    3MBR:
    446:bootloader
    64:fat
    2:55AA
    4GRUB:
    bootloader:1st stage
    disk:2nd stage

  • kernel:
    自身初始化:探测可识别到的所有硬件设备
    加载硬件驱动程序:有可能会借助于ramdisk加载驱动
    以只读方式挂载根文件系统
    运行用户空间的第一个应用程序:/sbin/init
    init程序的类型:
    sysv:init,centos 5
    配置文件:/etc/inittab
    upstart:init,centos 6
    配置文件:/etc/inittab,/etc/init/*.conf
    systemd:systemd,centos 7
    配置文件:/usr/lib/systemd/system, /etc/systemd/system
    ramdisk:内核中的特性之一:使用缓冲和缓存来对磁盘上的文件访问
    ramdisk-ramfs
    centos 5 :initrd,工具程序:mkinitrd
    centos 6:initramfs:工具程序:mkinitrd,dracut

  • 系统初始化:
    POST-BootSequence(BIOS)- Bootloader(MBR)-kernel(ramdisk)-rootfs(只读)-init
    13-2

  • /sbin/init
    Centos 5:运行级别:为了系统的运行或维护等应用目的而设定,0-6,7个级别
    0 关机
    1 单用户模式(root,无需登录),single,维护模式
    2 多用户模式,会启动网络功能,但不会启动NFS,维护模式
    3 多用户模式,正常模式,文本界面
    4 预留级别:可同3级别
    5 多用户模式,正常模式,图形界面
    6 重启
    默认级别:3,5
    切换级别:init #
    查看级别:runlevel,who -r

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

    16:6:wait:/etc/rc.d/rc 6
    说明:rc 0-意味着读取/etc/rc.d/rc0.d/
    k*
    s*
    for srv in /etc/rc.d/rc0.d/k*; do
    $srv stop
    done
    for srv in /etc/rc.d/rc0.d/S*; do
    $srv start
    done
    chkconfig命令:查看服务在所有级别的启动或关闭设定情形:
    chkconfig [–list ][name]
    添加:sysv的服务脚本放置于/etc/rc.d/init.d (/etc/init.d)
    chkconfig --add name
    #!/bin/bash
    #chkconfig:LLLL nn nn
    删除:chkconfig --del name
    修改指定的链接类型
    chkconfig [ – level levels ] name <on|off|reset>
    –level LLLL:指定要设置的级别:省略时表示2345
    注意:正常级别下,最后启动一个服务s99local没有链接至/etc/rc.d/init.d一个服务脚本,而是指向了/etc/rc.d/rc.local脚本:因此,不便或不需写为服务脚本放置于/etc/rc.d/init.d目录,且又想开机时自动运行的命令,可直接放置于/etc/rc.d/rc.local文件中。
    tty1:2345:respawn:/usr/sbin/mingetty tty1
    tty2:2345:respawn:/usr/sbin/mingetty tty2

    ty6:2345:respawn:/usr/sbin/mingetty tty6
    mingetty会调用login程序
    /etc/rc.d/rc.sysinit:系统初始化脚本
    1 设置主机名
    2 设置欢迎信息
    3 激活udev和selinux
    4 挂载/etc/fstab文件中定义的文件系统
    5 检测根文件系统,并以读写方式重新挂载根文件系统
    6 设置系统时钟
    7 激活swap设备
    8 根据/etc/stsctl.conf文件设置内核参数
    9 激活lvm及software raid设备
    10 加载额外设备的驱动程序
    11 清理操作
    总结:/sbin/init-(/etc/inittab)-设置默认运行级别-运行系统初始脚本、完成系统初始化-关闭对应下需要关闭的服务,启动需要启动服务-设置登录终端

  • centos 6
    init程序为:upstart,器配置文件
    /etc/inittab,/etc/init/.conf
    注意:/etc/init/
    .conf文件语法,遵循 upstart配置文件语法格式

猜你喜欢

转载自blog.csdn.net/weixin_43024834/article/details/88087821
今日推荐