centos操作系统的启动流程

一般情况下X86架构平台的启动流程:
1.POST:Power-on Self Testing,加电自检
保证硬件的正常操作,从而能够正确的使用各种硬件
2.BootSequence(程序的启动顺序)
决定到底从何种设备加载操作系统内核;通常可选的设备包括:光驱,硬盘,U盘,网络接口;

按照给定的顺序,依次查找各个设备,第一个被找出有引导程序(BootLoader)即为本次启动要用到的设备;

Bootloader:引导程序,引导加载器
GRUB:GRand Uniform BootLoader 全球统一引导加载器;
Centos 6以前的都是
GRUB 0.x:legacy GRUB
Centos 7:
GRUB 1.x:grub2

grub提供的功能:
1.为用户提供了一个可供选择的菜单,菜单以列表的方式列举了各个可以引导启动的操作系统内核;
2.可以将用户选定内核核心文件装载到RAM中,并予以解压缩,展开之后,将系统的控制权交给内核;
3.可以提供交互式的命令行接口;
4.通过私密口令来保证菜单和内核启动属性的安全性;

3.内核
自身初始化:
1)探测所有能被谁别到的所有的硬件设备;
2)加载硬件的驱动程序,有可能要借助于ramdisk/ramfs加载驱动程序;
3)以只读的方式挂载根文件系统;
4)在根文件系统中查找并运行第一个用户空间中的应用程序:/sbin/init

4.Init
init程序:
运行级别(Run-level);为了系统的运行和维护等目的而设置的管理机制;所有的管理类操作都必须依靠shell脚本实现;
七个运行级别:
0 - 关机
1 - 单用户模式,无需密码认证,维护和调试;
2 - 多用户模式,不会启动NFS,维护模式;
3 - 完全的多用户模式,不包含图形界面,只能使用CLI;
4 - 预留级别,目前无特殊使用目的;但其设置习惯上与运行级别3保持相同;
5 - 完全多用户模式,默认激活GUI和CLI;默认使用GUI;
6 - 重启

查询当前运行级别:
#who - r
#runlevel
修改运行级别:
实时修改:
init [0-6]
永久修改:
修改init的配置文件:/etc/inittab
id:#:initdefault:

    /etc/inittab文件的主要作用:
        1.在整个系统初始化的过程中决定执行那些操作;
            启动或关闭那些后台服务;
            如何进行系统初始化;
            在验证用户身份无误之后,如何为用户提供登录提示界面;
            当备用电源失效或重新生效之后,如何指挥系统操作;
            定义了"Ctrl+Alt+Delete"组合键被同时按下时,系统将采取的行为;

            /etc/rc.d/rc.sysinit的主要作用:
        1.设置主机名;
        2.设置启动时的欢迎信息;
        3.激活udev和SELINX;
        4.挂载/etc/fstab/文件中定义的所有有效的文件系统;
        5.激活swap设备;
        6.检测rootfs,并重新以读写的方式挂载rootfs;
        7.设置系统时间
        8.根据/etc/sysctl.conf/设置内核参数;
        9.激活lvm和软件RAID等高级逻辑设备;
        10.加载额外的设备驱动程序;
        11.完成初始化之后的清理工作;

    /etc/rc.d/rc脚本的主要作用:
        1.根据特定的运行级别启动或关闭对应目录中的系统服务进程;
            K*:要停止的系统服务进程
            S*:要启动的系统服务进程

            根据for循环遍历的顺序,数字的大小将绝定脚本被执行的先后顺序;
        2.rc脚本可以接受一个运行级别的数字表示作为参数;
        3.有rc脚本关联的/rc.d/rc#.d中的文件其实是链接文件,其链接目标路径为:/etc/rc.d/init.d目录中的各服务管理脚本;

/etc/rc.d/rc.local
    是在init程序引导用户空间进程的过程中,所执行的最后一个脚本;因此不便于或不需要写在系统服务相关的脚本中内容,但又期望可以开机运行的功能,可以直接写在此脚本中;

打印登录提示符:/sbin/mingetty $TTY
    mingetty程序会调用login程序,打开虚拟终端;除了mingetty之外,诸如getty等之类的程序也可以完成此类生成虚拟控制台的功能;

    如果默认的运行级别为5,则需要/etc/x11/preform脚本打卡图形用户界面终端;

    无论哪个程序或脚本,最后都会给用户打印一个登录提示符;

小结:CentOS 5、6:
1.内核启动流程:
POST(BIOS) --> BootSequence(BIOS) --> Bootloader(GRUB) --> vmlinuz(initrd|initramfs) --> rootfs(ro) --> /sbin/init

2.用户空间启动流程:
    /sbin/init --> /etc/inittab(/etc/init/*.conf) --> 设置默认的运行级别 --> /etc/rc.d/rc.sysinit,完成系统初始化 --> /etc/rc.d/rc,关闭或启动相应的运行级别下的各系统服务  --> Ctrl+Alt+Delete组合热键功能  --> UPS电源失效或恢复之后的操作  --> /etc/rc.d/rc.local脚本 --> 生成登录界面,打印登录提示符

原文地址:http://blog.51cto.com/wangzhihang/2123192

时间: 2024-11-08 10:12:12

centos操作系统的启动流程的相关文章

#23 centos5(RHEL)系列操作系统的启动流程、与命令mkinitrd、dracut的使用

centos(RHEL)系列操作系统的启动流程:Intel x86兼容架构: Linux的系统组成:内核 + 应用程序  GUN/Linux:单纯的指Linux内核: 从硬盘存储和启动操作系统的角度: Linux的系统组成:内核 + 根文件系统(rootfs) 内核功能:进程管理,文件系统管理,内存管理,网络协议,驱动程序,安全功能,... Linux系统的系统运行环境可以分为两部分: 内和空间:内核代码(系统调用) 就是内核进程占用的CPU和内存资源的总和: 用户空间:应用程序(进程或线程)

CentOS 5 CentOS 6 启动流程及关键步骤

CentOS 5 CentOS 6 启动流程及关键步骤 1.加电自检:当打开主机电源时,主机会唤醒cpu,使其运行CMOS中的BIOS, BIOS检查必要的硬件是否存在(内存.硬盘等) BIOS其实是一个小型系统,可以完成一些像检测这样的任务. 自检若不通过,关机 2.BIOS查找可启动设备 自检通过,根据BIOS设定的启动顺序(一般有硬盘启动.光盘启动.移动设备启动.以及网络启动等,这个设定值可通过人工干预修改以使加载不同的系统)找到第一个具有引导程序(bootloader)即为要加载的设备,

CentOS开机启动流程简介

我们都知道按下电脑电源键后,屏幕上会一闪而过很多信息,然后显示登录界面,然后输入用户名,密码就可以畅享网络世界了.那么这中间到底发生了什么呢,今天就让我们来简单探讨一下CentOS的简易版开机启动流程吧. 第一阶段:通电自检过程 我们都知道电脑所有数据指令都是在内存上才能被cpu处理的吧,我们还知道内存在断电后其上面的所有数据都会丢失吧,那么开机的时候内存应该是没有东西的吧,那上面都不能干了,更别说启动一个操作系统了,其实啊,我们内存并不只是我们常见的那个内存卡,很多硬件都会映射一段内存到cpu

centOS 6启动流程

centOS6启动流程 centOS6启动流程 linux内核组成 centos6启动大致流程 1.post加电自检 2.Boot Sequence 3.MBR引导 4.Grub启动 制作initramfs文件 grub.conf的参数 grub的功能 提供启动菜单.并提供交互式接口 加载用户选择的内核或操作系统 为菜单提供了保护机制 安装grub grub-install命令 grub交互式 5.启动 init 进程 6.登录 我们平时使用linux系统,点击电源键,电脑开机到我们输入账号密码

CentOS系列启动流程详解

一.Linux启动内核文件 1.Linux系统组成 动态视角:内核+根文件系统 静态视角:磁盘分区+相关文件 2.Kernel特点 (1)支持某块化:.ko (kernel object)文件 (2)支持模块运行时动态装载或卸载: 总结:Linux kernel在但内核设计模型上,吸取了多内核设计的优点,使用了模块化设计 单内核设计:把所有功能集成于同一个程序:如Linux 微内核设计:每种功能使用一个单独的子系统实现:如Windows, Solaris 2.kernel组成 (1)核心文件 1

#24 centos6(RHEL)系列操作系统的启动流程、与命令chkconfig、grub的使用

所有由rc脚本关闭或启动的链接文件的原文件都存在于/etc/rc.d/init.d,系统为了方便使用,为此目录创建了链接/etc/init.d 所有/etc/inid.d(/etc/rc.d/init.d)目录中的脚本执行方式: # /etc/init.d/srv_script {start|stop|restart|status} # service srv_script {start|stop|restart|status} chkconfig命令: chkconfig - updates

linux操作系统的启动流程--学生作业

首先,先不急着将启动流程,,先说下linux操作系统的相关知识 一:linux的组成部分: 内核+根(/)文件系统 1)内核: 存放位置 centos6的位置是 /boot 目录下的"vmlinuz-2.6.32-573.12.1.el6.x86_64" "2.6.32"是版本号:"573.12.1"是release号.内核的作用是负责核心的内存管理.进程管理.网络协议栈.文件系统.驱动程序.安全功能.linux内核是单内核设计,但是他支持多模块

CentOS 6 启动流程

一台电脑主机,由按下电源开关.硬件加电到完全由软件层面的操作系统控制,这个启动过程是复杂的.但是,作为Linux系统运维的我们,这是我们必须掌握的一个基础知识点.因为深入掌握操作系统的启动原理,有助于我们很好的解决各种启动出现的错误,同时也会加深我们队整个操作系统运作原理的理解.准备: 虚拟机:VMware Workstation Pro 14操作系统:CentOS 6.10 一.开机自检 ??当用户按下电源开关,POST加电自检,检查设备上的硬件设备是否能够正常工作,如果正常则把控制权交给BI

CentOS系列启动流程(5系列,6系列,7系列)

一.Linux启动内核文件 1.Linux系统组成 动态视角:内核+根文件系统 静态视角:磁盘分区+相关文件 2.Kernel特点 (1)支持某块化:.ko (kernel object)文件 centos7的ko文件: centos6的ko文件: 注意: Linux内核模块文件的命名方式通常为<模块名称.ko> centos6系统的内核模块被集放在/lib/modules/'uname -r '/目录下 centos7系统的内核模块被集放在/usr/lib/modules/'uname -r