回炉重造八--系统启动和内核管理

news2025/1/12 18:11:42

系统启动和内核管理

1、系统启动

1.1 centos7启动的过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZZ1uQoge-1681803386120)(C:%5CUsers%5CHP%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1681800317629.png)]

  1. UEFI或BIOS初始化,运行post开机自检
  2. 选择启动的设备(USB、硬盘、本地光盘)
  3. 引导装载程序,centos7是给grub2
  4. 加载装载程序的配置文件: /etc/grub.d/ /etc/default/grub /boot/grub2/grub.cfg
  5. 加载内核选项
  6. 加载 initramfs 初始化伪文件系统
  7. 内核初始化,centos7使用systemd代替init
  8. 执行initrd.target所有单元,包括挂载/etc/fstab
  9. 从 initramfs 根文件系统切换到磁盘根目录
  10. systemd 执行默认 target 配置,配置文件/etc/systemd/system/default.target
  11. systemd 执行 sysinit.target初始化系统及 basic.target准备操作系统
  12. systemd 启动 multi-user.target下的本机与服务器服务
  13. systemd 执行 multi-user.target 下的/etc/rc.d/rc.local
  14. Systemd 执行 multi-user.target 下的 getty.target及登录服务
  15. systemd 执行 graphical 需要的服务

1.1.1 硬件启动POST

Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内
存、硬盘子系统、显示子系统、串并行接口、键盘等硬件情况的检测

1.1.2 启动加载器

grub是统一资源引导器,也就是引导加载器;它的工作是提供一个菜单,允许用户选择要启动的系统或不同的内核版本;把用户选定的内核装载到RAM中的特定空间中,然后解压、展开,而后把系统控制权移交给内核。

1.1.3 加载内核

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

#Linux内核的特点
1、支持模块化:.ko(内核对象),如:文件系统,硬件驱动,网络协议等
2、支持内核模块的动态装载和卸载

1.1.4 系统初始化

POST --> BootSequence (BIOS) --> Bootloader(MBR) --> kernel(ramdisk) --> rootfs(只读) -->
init(systemd)

#init初始化脚本
(1) 设置主机名
(2) 设置欢迎信息
(3) 激活udev和selinux
(4) 挂载/etc/fstab文件中定义的文件系统
(5) 检测根文件系统,并以读写方式重新挂载根文件系统
(6) 设置系统时钟
(7) 激活swap设备
(8) 根据/etc/sysctl.conf文件设置内核参数
(9) 激活lvm及software raid设备
(10)加载额外设备的驱动程序
(11)清理操作

1.2 系统启动文件的说明

[root@exercise1 ~]# vim /usr/lib/systemd/system/nginx.service   #配置文件内容

[Unit]   #服务的说明                                       
Description=nginx  #对服务的描述
After=network.target  #描述服务运行的级别

[Service]  #服务运行参数的设置
Type=forking  #服务运行的方式(这里指服务后台运行)
ExecStart=/usr/local/nginx/sbin/nginx  #服务运行的具体命令
ExecReload=/usr/local/nginx/sbin/nginx -s reload #服务重启的命令
ExecStop=/usr/local/nginx/sbin/nginx -s stop  #服务停止的命令
PrivateTmp=true  #表示给服务分配独立的临时空间
 
[Install] 
WantedBy=multi-user.target

#对启动文件的解释
[Unit]:服务的说明
Description:描述服务
After:描述服务类别

[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3





这部分总结的不行,有几个案例还没研究好,等弄明白了,后面再补上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/444337.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用 Amazon Step Functions 和 Amazon Athena 实现简易大数据编排

很多公司都在亚马逊云上围绕 Amazon S3 实现了自己的数据湖。数据湖的建设涉及到数据摄入、清洗、转换,以及呈现等多个步骤,还需要对这些步骤进行编排,这对很多人手不足或者初识数据湖的团队形成了挑战。 在本篇文章中,我将介绍一…

可以一口气读完的算法书

算法!Algorithms! 咳咳!很多人一听到这个词,估计脑袋就要炸了:一定又是复杂极了的东西,看来此书必定翻不过第一节,就要睡着了。 没错,很多算法书虽然写得很精妙,但凭我…

【OpenLayers】VUE+OpenLayers+ElementUI加载WMS地图服务

【OpenLayers】VUEOpenLayersElementUI加载WMS地图服务 准备工作安装vue创建vue项目安装OpenLayers安装ElementUI加载wms地图服务 准备工作 需要安装好nodejs,nodejs下载地址,下载对应的版本向导式安装即可。 安装完成后,控制台输入node -v…

OAID解密场景和对应策略,淘宝订单解密接口,淘宝订单明文接口

OAID解密场景和对应策略 场景编码 场景名称 返回的隐私字段 1001 顺丰电子面单发货 消费者手机号,姓名,详细地址 1002 4通一达电子面单发货 消费者手机号,姓名,详细地址 1003 EMS电子面单发货 消费者手机号&#xff0c…

Eclipse基本使用、数据类型、运算符

Eclipse基本使用 创建JAVA项目 1.打开新建项目窗口(File --> New --> Project) 2.在New Project窗口中选择Java Project创建项目 3.在New Java Project对话框 Project name:项目名称 Project Layout项目布局:Create sepa…

初识Node

Node.js是什么 Node.js是一个基于Chrome V8引擎的[JavaScript运行环境]。 Node.js使用了一个事件驱动、非阻塞式I/O 的模型。 Node.js 可以做什么 Nodejs作为一个JavaScript的运行环境,仅仅提供了基础的功能和API。然而,基于Node.js 提供的这些基础能…

【SCI征稿】SPRINGER旗下CCF1区计算机工程类SCI, 网格计算、储层计算、机器学习相关领域均可~

一、期刊简介: 1区计算机工程类SCI&EI (CCF) 【期刊概况】SPRINGER出版社,IF:4.0-5.0, JCR1/2区, 中科院2区; 【终审周期】走期刊部系统,3个月左右录用; 【检索情况】SCI&EI双检; 【数据库收录…

Revit墙问题:系统自带幕墙偏移解决和墙翻模操作

一、关于Revit绘制默认幕墙会自动产生偏移问题的解决办法! 很多人在安装完Revit后绘制系统自带的幕墙会产生偏移! 首先我们要了解偏移产生的根源: 1、绘制的时候在偏移量里设置了偏移值! 2、幕墙嵌板族设置了偏移:这种问题一般分种情况: A&am…

Linux编译器 gcc与g++

Linux编译器 gcc/g工具 目录 Linux编译器 gcc/g工具1、程序的诞生2、gcc工具2.1 预处理2.2 编译2.3 汇编2.4 链接2.5 运行2.6 总结 3、静态链接与动态链接3.1 静态链接3.2 动态链接3.3 Linux下库的命名 1、程序的诞生 程序的编译过程: 1、预处理(头文件包…

算法导论 | 算法在计算中的作用

第一章 | 算法在计算中的作用 笔记 什么是算法? 算法就是任何良定义的计算过程,该过程取某个值或值的集合作为输入并产生某个值或值的集合作为输出不正确的算法只要其错误率可控有时可能是有用的算法的说明的唯一要求是这个说明必须精确描述所要遵循的…

datax 从oracle迁移到es中

任务启动时刻 : 2023-04-20 19:34:56 任务结束时刻 : 2023-04-20 19:56:22 任务总计耗时 : 1285s 任务平均流量 : 5.07MB/s 记录写入速度 : …

离散型制造企业如何选择MES系统

随着MES系统越来越被企业所重视,并并被运用到很多不同行业的制造业中。 MES对于制造企业来说,其所需要的要求是各不相同的,比如离散型制造企业,该如何去选择MES系统呢? 什么是离散型制造企业? 离散型制造企…

nn.init.xavier_uniform_()的作用:根据均匀分布生成Tensor

官网解释如下: Signature: nn.init.xavier_uniform_(tensor: torch.Tensor, gain: float 1.0) -> torch.Tensor Docstring: Fills the input Tensor with values according to the method described in Understanding the difficulty of training deep feedforw…

PHP语言开发的医院不良事件上报系统源码,前后端分离,仓储模式

医院安全(不良)事件上报系统源码 系统定义: 规范医院安全(不良)事件的主动报告,增强风险防范意识,及时发现医院不良事件和安全隐患,将获取的医院安全信息进行分析反馈,…

STM32开发(十五)STM32F103 片内资源 —— 通用定时器 PWN 无源蜂鸣器 详解

文章目录 一、基础知识点二、开发环境三、STM32CubeMX相关配置四、Vscode代码讲解五、结果演示 一、基础知识点 本实验通过STM32F103 的通用定时器 PWN功能,实现对无源蜂鸣器控制。 本实验内容知识点: 1、通用定时器 PWN 详解 2、有源蜂鸣器和无源蜂鸣器…

当我开始学习人工智能:知识表示方法

加油加油,五一前复习玩,五一就可以出去玩啦 一、状态空间法(State Space Representation) 问题求解技术主要是两个方面 问题的表示求解的方法 状态空间法 状态算符状态空间方法 1.1 问题状态描述 定义 状态:描述某类不…

电感耦合等离子体原子发射光谱法(ICP-AES)

一、定义 电感耦合等离子体原子发射光谱法(ICP-AES),是以电感耦合等离子矩为激发光源的光谱分析方法,具有准确度高和精密度高、检出限低、测定快速、线性范围宽、可同时测定多种元素等优点,国外已广泛用于环境样品及岩石、矿物、金属等样品中…

SimpleDateFormat模式字符串格式

SimpleDateFormat模式字符串 new SimpleDateFormat(String parm); parm为一个字符串,表示格式. 时间模式 字母 时间元素 表示 示例 y 年 Year 1996; 96 M 年中的月份 Month July; Jul; 07 D 年中的天数 Number 200 d 月份中的天数 Number 31;30;28;29 H 一天中的小时(24小时…

【MySQL】表的基本操作

1、数据类型 1.1 数值类型 数据类型大小说明bit[(M)]M指定位数,默认为1二进制,M范围从1到64,存储数值范围从0到2^M-1tinyint1字节smallint2字节int4字节bigint8字节float(M,D)4字节单精度,M指定长度,D 指定小数位数&am…

Peach Fuzzer漏洞挖掘实战

概述 本文主要介绍模糊测试技术,开源模糊测试框架Peach Fuzzer,最后使用Peach Fuzzer对Modbus Slave软件进行漏洞挖掘,并成功挖掘到0DAY漏洞。(文中涉及的漏洞已提交到国家漏洞库,现已修复) 模糊测试技术 模…