linux 启动流程

centos6

1.post 加电质检-->2.启动bios-->3.加载MBR-->4GRUB引导-->5.加载kernel-->6.设定启动级别-->7.加载rc.sysinit-->8.加载内核模块-->9.启动运行级别程序-->10.读取rc.local-->11.加载/bin/login

1.bios自检

2.读取bios记录的MBR扇区

3.加载MBR

4.加载GRUB引导

5.加载内核,初始化硬件

6.设定启动级别启动第一个守护进程init(init1-5)grub中默认指定init=/sbin/init程序,可以在grub.conf中kernel行自定义执行程序init=/bin/bash,此时可以绕过下面步骤直接进入bash界面。 内核源代码文件中显示996行左右,规定了init启动的顺序,/sbin/init->/etc/init->/bin/init->/bin/sh,/bin/bash没有写,应该是和/bin/sh一样吧

7.加载rc.sysinit(/etc/rc.d/rc.sysinit),设定PATH变量,设定网络配置,设定swap,设定/proc,配置selinux

8.加载内核模块(加载/etc/modules.conf和/etc/modules.d目录下的文件来加载系统内核模块,后期课修改)

9.启动运行级别目录内的程序(窜性的方式)。

10.读取开机自启动需要启动的命令或者服务。

11.加载用户登录界面

centos7

1.UEFI或bios自检,post质检

2.加载MBR

3.GRUP加载

4.加载内核和inintamfs模块

5.内核开始执行,使用systemd来代替以前centos6以前的init程序

(1)执行initrd.target

包括挂载/etc/fstab文件中的系统,此时挂载后,就可以切换到根目录了

(2)从initramfs根文件系统切换到磁盘根目录

(3)systemd执行默认target配置

centos7表面是有“运行级别”这个概念,实际上是为了兼容以前的系统,每个所谓的“运行级别”都有对应的软连接指向,默认的启动级别时/etc/systemd/system/default.target,根据它的指向可以找到系统要进入哪个模式 
模式:

  • 0 ==> runlevel0.target, poweroff.target
  • 1 ==> runlevel1.target, rescue.target
  • 2 ==> runlevel2.target, multi-user.target
  • 3 ==> runlevel3.target, multi-user.target
  • 4 ==> runlevel4.target, multi-user.target
  • 5 ==> runlevel5.target, graphical.target
  • 6 ==> runlevel6.target, reboot.target

(4)systemd执行sysinit.target

有没有很眼熟?是的,在CentOS6上是被叫做rc.sysint程序,初始化系统及basic.target准备操作系统

(5)systemd启动multi-user.target下的本机与服务器服务

(6)systemd执行multi-user.target下的/etc/rc.d/rc.local

6.Systemd执行multi-user.target下的getty.target及登录服务

getty.target我们也眼熟,它是启动终端的systemd对象。如果到此步骤,系统没有被指定启动图形桌面,到此就可以结束了,如果要启动图形界面,需要在此基础上启动桌面程序

7.systemd执行graphical需要的服务

转载于:https://www.cnblogs.com/juanNote/p/9286585.html

Linux学习笔记006-启动流程相关推荐

  1. LIteOS学习笔记-7LiteOS启动流程与编译流程

    LIteOS学习笔记-7LiteOS启动流程与编译流程 LiteOS启动流程 1. 启动方式 2. 启动流程 硬件初始化 内核初始化 调试串口初始化 尝试进行网络连接 启动任务调度 LiteOS编译流 ...

  2. Linux学习笔记43——开机流程、模块管理与 Loader

    一.Linux 的开机流程分析 1 开机流程一览 2 BIOS, boot loader 与 kernel 载入 Boot Loader 的功能 3 第一支程序 systemd 及使用 default ...

  3. Linux学习笔记(3)- 网络编程以及范例程序

    Linux学习笔记(3)- 网络编程以及范例程序 前言 网络介绍 IP地址的介绍 端口和端口号的介绍 通信流程 socket介绍 TCP介绍 python3编码转换 TCP客户端程序开发流程 多任务版 ...

  4. Linux命令篇 linux命令大全简洁明了 linux学习笔记

    Linux命令篇 linux命令大全简洁明了 linux学习笔记 Linux 命令大全 文章目录 Linux 命令大全 一. 常用的基础命令 查看目录: 切换目录: 创建和删除: 拷贝和移动文件: 查 ...

  5. 【Linux学习笔记】Linux服务器:配置与管理samba服务器

    Linux系列文章目录 一.[linux学习笔记]红帽Linux 7.8系统在虚拟机上的安装 二.[Linux学习笔记]Linux系统的基本操作 三.[Linux学习笔记]管理Linux操作系统:用户 ...

  6. (零)我为什么要写Linux学习笔记?

    我对Linux有强烈的好奇心,兴趣:写学习笔记会让我有成就感:我记忆力实在不好.好吧,其实真正原因是:如果我能把自己学到的知识简明扼要的讲出来,写出来,那便证明我真的学懂了我想学的知识.没时间怎么办? ...

  7. Linux学习笔记(一)|目录结构

    Linux学习笔记(一) #一.Linux的目录结构 Linux采用层级式的树状目录结构,根目录为"/",在此目录下创建其他目录. /lib 系统开机所需要最基本的动态链接共享库 ...

  8. 20155303狄惟佳预备作业三Linux学习笔记

    20155303狄惟佳预备作业三Linux学习笔记 初次接触Ubuntu系统以及Linux内核,了解了其产生的历史,从感性来讲,深深吸引我的是其中蕴含的珍贵的开源精神,以及Stallman等人对&qu ...

  9. Linux学习笔记-文件权限与路径

    Linux学习笔记-文件与目录 目前从电子信息科学与技术转到了计算机专业,因此想趁着大四比较闲的时候补一些计算机的知识.我想说:你好,生活[斜眼笑]!愿生活温柔以待!哈哈,这是我写的第一篇博客,谨以此 ...

最新文章

  1. 经典网页设计:12个简约风格的网站作品
  2. 结构指针的坑之(定义结构体指针时并没有分配存储空间,所以要用malloc()申请空间)
  3. Step by Step 使用AET 创建Product extension fields
  4. 读《构建之法》1-5章
  5. 一个类可以有一个接口,接口可以有一个Java类吗?
  6. Apache Benchmark(简称ab)压力测试安装与解释
  7. VOA ECONOMICS REPORT - Junior Achievement Marks 90 Years of Business Education
  8. oracle连接中出现错误ORA-12541,ORA-12514,ORA-01017的解决方法
  9. mysql 替换全部标内容_Mysql SQL 替换标签内容
  10. js引用类型和基本类型、隐式类型转换以及强制类型转换面试题
  11. 适用于物联网数据共享的区块链节点存储优化方案
  12. 微信小程序毕业设计 驾校考试小程序毕设开题报告
  13. 推荐系列:易文档,让接口文档更加给力
  14. 信息系统项目管理师-软考-B站自学
  15. html csshr标签属性,HTML+CSS入门 h标签和p标签以及hr标签学习
  16. 免费常用快递查询API接口及快递在线下单API分享
  17. 通信算法之六十:SC_FDE系统的物理层算法设计与工程实现
  18. 系动词分类【大学英语笔记】
  19. 基于 java 的批量下载压缩包的实现
  20. java安卓登入界面代码_android项目——登录界面

热门文章

  1. DB2 SQL性能调优秘笈pdf
  2. Android开发——Android系统启动以及APK安装、启动过程
  3. Mac OS X 10.10如何打开虚拟内存
  4. sql server2008如何创建外键
  5. javascript arguments
  6. 新浪微博后台服务器架构
  7. matlab max与min获取矩阵最大最小值函数
  8. gcc/g++ 链接库的编译与链接
  9. 批量添加PDF帐号目录
  10. 普通java程序怎样用cron_java – Spring cron vs普通cron?