Linux启动流程#####

POST-->BootSequence(BIOS)->Bootloader(MBR,grub)-->kernnel(ramdisk,initrd)-->rootfs(只读)-->switchroot-->/sbin/init-->社会默认运行级别-->运行系统初始化脚本,完成系统初始化-->关闭对应级别下需要停止的服务,启动对应级别下需要开启的服务-->设置登录终端-->启动图形端

init程序的类型:
* SysV:init,CentOS 5之前,配置文件:/etc/inittab
* Upstart:init,Centos 6,配置文件:/etc/inittab,/etc/init/*.conf
* Systemd:systemd,Centos7,配置文件:/usr/lib/systemd/system、/etcsystemd/system

  1. POS

    power on self test,即加电自检,它是BIOS功能的一部分,完成对cpu、主板、内存、软硬盘子系统、显示子系统(包括显示缓存)、串并行接口、键盘、CD-ROM光驱等的检测,主要检测硬件的好坏。
  2. BootSequence

    bootsequence为启动顺序,可在BIOS中设置,BIOS会根据次序查找各引导设备,其查找到第一个有引导程序(bootloader)的设备即为本次启动要用到的设备。以硬盘启动为例,BIOS此时去读取硬盘驱动器的第一个扇区(MBR,512字节),然后执行里面的代码。实际上这里BIOS并不关心启动设备第一扇区中是什么内容,它只是负责读取该扇区内容、并执行。
  3. Bootloader(MBR)

    MBR:Master Boot Record,即主引导记录,是硬盘驱动器上的第一个扇区,它的大小为512Bytes,由三个部分组成。分别为主引导程序(Bootloader)、硬盘分区表DPT(Disk Partition table)和硬盘有效标志(55AA),其大小分别为446Bytes,64Bytes和2Bytes。BootLoader是在操作系统内核运行之前运行的程序。它可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。
  4. Kernel

    内核阶段会去读/boot下的内核文件,并根据该配置文件来加载Kernel(内核)镜像和initrd至内存,此时内存将得到系统控制权并理解初始化系统中各设备并做相关配置工作,其中包括CPU、I/O、存储设备等。initrd:bootloader initalized RAM disk,即为bootloader初始化的内存盘。因为内核在初始化系统各硬件设备时需要加载不同驱动程序,而每个系统的硬件框架结构不是相同的,内核编译了一部分硬件驱动,而另一部分则被放置在initrd中。
  5. /sbin/init
运行级别#####
用来初始化系统的进程,它是所有进程的父进程。当/sbin/init 进程获得系统的控制权之后,他会先读取/etc/initab文件确定系统的运行级别。
Centos6的/etc/inittab文件:
```
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
```
运行级别是为了系统的运行或维护等目的而设定的机制,一共有7个级别,分别用数字0-6表示:
* 运行级别0:关机,shutdown
* 运行级别1:单用户模式(single user),root用户,无需认证;维护模式
* 运行级别2:多用户模式(multi user),会启动网络功能,但不会启动NFS;维护模式
* 运行级别3:多用户模式(multi user),完全功能模式;文本界面,无图形界面
* 运行级别4:预留模式,系统未使用,保留
* 运行级别5 :X11控制台,登录后进入图形GUI模式
* 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
默认级别一般为3或5
系统初始化#####
确定运行级别后,/sbin/init程序会读取/etc/rc.d/rc.sysinit这个系统初始化脚本进行系统初始化操作,包括以下部分:
* 读取/etc/sysconfig/network文件来设置主机名
* 设置欢迎信息
* 激活udev和selinux
* 挂载/etc/fstab文件中定义所有文件系统
* 检测根文件系统,并以读写方式重新挂载根文件系统
* 设置系统时钟
* 根据/etc/sysctl.conf 文件来设置内核参数
* 激活lvm及软raid
* 加载额外设备的驱动程序
* 清理操作
服务启停#####
系统初始化之后,系统就可以使用了,但是往往还需要启动一些相应的服务来时网络或主机功能。此时/sbin/init程序会读取/etc/rc.d/rc文件并根据运行级别来判断停止某些服务并启
动某些服务。
启动终端#####
在启动所有需要服务之后,系统会启动终端或图形终端来等待用户登录。

简述linux操作系统启动流程的更多相关文章

  1. Linux 操作系统启动流程

    1.加载bios bios中包含的硬件CPU 内存 硬盘等相关信息 2.读取MBR 读取完bios信息之后,计算机会查找bios制定的硬盘MBR引导扇区,将其内容复制到 0x7c00 地址所在的物理内 ...

  2. Linux操作系统启动流程梳理

    接触linux系统运维已经好几年了,常常被问到linux系统启动流程问题,刚好今天有空来梳理下这个过程:一般来说,所有的操作系统的启动流程基本就是: 总的来说,linux系统启动流程可以简单总结为以下 ...

  3. Linux操作系统启动流程

    一般来说,所有的操作系统的启动流程基本就是: 总的来说,linux系统启动流程可以简单总结为以下几步:1)开机BIOS自检,加载硬盘.2)读取MBR,进行MBR引导.3)grub引导菜单(Boot L ...

  4. [转] Linux操作系统启动流程

    总启动流程 这部分转自:https://www.cnblogs.com/liang-io/p/9651656.html 一般来说,所有的操作系统的启动流程基本就是: 总的来说,linux系统启动流程可 ...

  5. Linux操作系统启动流程浅析

    启动BIOS程序 当电源键按下之后,BIOS(Basic nput Output System)就会由主板上的闪存来运行.BIOS程序会把自己解压缩到系统的内存之中,然后读取CMOS(Compleme ...

  6. linux文件系统启动流程、启动脚本

    linux文件系统启动流程.启动脚本 下面是一张Linux启动流程图: 在了解启动流程之前,我们应该先知道系统的几个重要脚本和配置文件,他们对应的路径为: 1. /sbin/init 2. /etc/ ...

  7. Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例

    Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.删除"/sbin/ini ...

  8. Linux操作系统启动故障排错之"/etc/fstab"文件被删除恢复案例

    Linux操作系统启动故障排错之"/etc/fstab"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模拟故障 [root@yinzhe ...

  9. Linux操作系统启动故障排错之/boot目录被删除恢复案例

    Linux操作系统启动故障排错之"/boot"目录被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模拟删除/boot分区 1>.查看/b ...

随机推荐

  1. Linux下的C----多进程与多线程

    1.多进程实例: 进程: 是一种抽象的概念,从来没有统一的标准定义: 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动:进程是一个独立的可调度的活动:进程是可以并行执行的计算单位:进程是 ...

  2. web分页控件AspNetPager的使用

    首先要先引用AspNetPager.dll文件 然后在<html>上面添加下面代码: <%@ Register Assembly="AspNetPager" Na ...

  3. 完全关闭及再次启动cdh集群

    关闭集群 - 关闭集群所有组件 关闭Cloudera Management Service 关闭cdh所有客户端节点 sudo /opt/cloudera-manager/cm-5.11.1/etc/ ...

  4. 关于L1和L2的直观解释

    https://blog.csdn.net/jinping_shi/article/details/52433975

  5. windows下启动和运行分布式消息中间件消息队列 kafka

    本文转载至:https://www.cnblogs.com/flower1990/p/7466882.html 一.安装JAVA JDK 1.下载安装包 http://www.oracle.com/t ...

  6. 关于Python课程的思考和意见

    老师您好,我是信息管理与信息系统专业的一名学生,由于专业原因,我在大一下学期第一次接触Python,并因为它简洁的语言和强大的函数库所吸引,刚好在选课时得知学校有开python选修课,就慕名而来. 首 ...

  7. DevExpress v18.2版本亮点——Reporting篇(三)

    行业领先的.NET界面控件——DevExpress v18.2日前正式发布,本站将以连载的形式为大家介绍新版本新功能.本文将介绍了DevExpress Reporting v18.2 的新功能,新版3 ...

  8. 如何使用ESP8266、ESP8285做一个WiFi中继(WiFi信号放大器)

    准备工作 准备一个深圳四博智联科技有限公司的ESP-F 模组.或者四博智联科技的NODEMCU 当我们拿到ESP-F模块后,可以按照以下接线进行测试: 即 VCC.EN 接 3.3v.GPIO15 G ...

  9. Docker搭建LNMP网站平台

    1.自定义网络 [root@linux-docker01 ~]# docker network create lnmp 67e7e0736b2c58f8f81eed50130803b34be0583f ...

  10. EM算法(期望最大化算法)

    适用场景:存在为未测变量的情况下,对模型参数进行估计. EM算法: input:观测数据Y,为观测数据Z,联合分布P(Y,Z|θ),条件分布P(Z|Y,θ) output:模型参数θ 步骤: (1)选 ...