Linux系统启动流程简图

Linux系统启动流程简图

CentOS 系统启动流程:

POST 加电自检   外部硬件是否都能存在和是否能正常工作
ROM:COMS 芯片上的
BIOS 基本输入输出

BOOT Sequence:  

引导加载次序,也就磁盘上的MBR,bootloader

按次序查找各引导设备,第一人有引导程序的设备即为本次启动用到的设备。

bootloaderr:引导加载器,程序
windows: ntloader
linux:
LILO:用于小型存储设备上,如手机
GRUB:用于桌面环境
GRUB 0.x:传统版本,5,6上在用
GRUB 1.x:7

功能:提供一个菜单,允许用户选择要启动系统或不同的内核版本,把用户选定的内核装载到内在中的特定空间中,解压、展开、并把系统控制权移交给内核。从此BIOS终止。

GRUB:

bootloader: 1st stage   找到硬盘上的第二阶段
  1.5st  : 就是用来加载文件系统驱动  (你要访问文件系统,但是文件系统又在硬件分区上) 在你安装操作系统时,就匹配好了一个1.5的文件放在mbr后面的扇区,让bootloader能够识别并访问这个文件驱动。
disk : 2nd stage  

MBR:
446:bootloader
64: 分驱信息
2: 55AA 标记位

kernel:

第一次挂载根的时候,内核不确定是否安全,它会以只读的方式来挂载根,等一切如init等进程启动完成后,在次重新以读写的方式挂载根。

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

init程序的类型:
SysV: init   5以前都用的,所有用户进程都是按顺序的开启,所以启动很慢,b会等a启动完成之后在启动
配置文件:/etc/inittab

Upstart: 接近并行的方式来启动,如果b依赖a,只要a一启动,b就认为依赖问题解决了,就可以启动了
配置文件:/etc/inittab , /etc/init/*.conf 
Systemd:需要启动很多脚本服务,只有你第一次去访问时,它才会去启动它,所以开机很快,
配置文件:/usr/lib/systemd/system,/etc/systemd/system

ramdisk:
在启动时,要加载根文件系统,根文件所在的设备,内核可能无法访问,所以这时候我要借助ramdisk的辅助来完成,我们所需要的依赖的驱动程序的加载,而一但能够加载这个驱动程序,就能挂载真正的根了。切换根。

内核的特性之一:使用缓冲和缓存来对磁盘上的文件访问。

ramdisk  —> ramfs
 centos5:initrd 工具程序:mkinitrd
 centos6:initramfs 工具程序:dracut  

centos 5 :/sbin/init –> (/etc/inittab) | (CentOS6:/etc/init/*.conf) –> 设置默认运行级别 –> 运行系统初始化脚本、完成系统初始化 –> 关闭对应下需要关闭的服务,启动需要启动服务 –> 设置登录终端
 

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

(0)
dance_mandance_man
上一篇 2017-05-13 21:40
下一篇 2017-05-13 22:03

相关推荐

  • 第一周的学习总结

       本人是Linux 小白,0基础。加入马帮开始Linux之旅。由于完全不懂Linux,所以在学习的过程中,每课都要看上2遍。接下来说说我第一周所学的内容。 首先是了解到了计算机基础知识,计算机的组成部分、CPU架构类型、其他外围设备。 操作系统基础知识进程管理、内存管理、网络管理、驱动管理、安全管理等。 Linux的起源、发行版以及构…

    Linux干货 2016-02-28
  • N22-冥界之王-第7周作业

    1、创建一个10G分区,并格式为ext4文件系统;   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;       在虚拟机里新添加一块磁盘20G,/dev/sdb     &…

    Linux干货 2016-09-26
  • iptables详解

    iptables的工作机制 iptables有五个钩子函数(hook functions),也叫五个规则链。 1.PREROUTING (路由前) 2.INPUT (数据包流入口) 3.FORWARD (转发关卡) 4.OUTPUT(数据包出口) 5.POSTROUTING(路由后)   这是NetFilter规定的五个规则链,任何一个数据包,只要…

    Linux干货 2017-03-15
  • Keepalive高可用Nginx服务测试

    环境   系统版本:CentOS 7.2  节点1地址:10.1.8.81  节点2地址:10.1.8.83  虚拟IP地址:10.1.8.248 安装软件     yum -y install nginx     yum -y …

    Linux干货 2017-02-16
  • bash脚本之数组及字符串切片,登陆配置文件

    一,概述 数组(就是一堆变量的集合) 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合/ 数组名和索引     索引:编号从0开始,属于数值索引     注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后…

    Linux干货 2016-09-01
  • 编译安装httpd-2.4.9及新特性详解

    前言 前面我们讲解了httpd在CentOS6上(httpd-2.2)的相关功能配置,而CentOS7上采用了httpd-2.4的版本,那么httpd-2.4增加了哪些特性呢?接下来让我们在CentOS6.6上手动编译安装一下httpd-2.4.9,看一下和httpd-2.2有什么不同,顺便补充说一下httpd的其它功能。 环境及新特性介绍 环境介绍 系统环…

    Linux干货 2015-04-15