【linux】——引导过程与服务控制

news2025/9/18 0:08:40

文章目录

  • 1.linux操作系统引导过程
    • 1.1 引导过程总览
    • 1.2 linux操作系统的引导过程
    • 1.3 系统初始化进程
    • 1.4 Systemd单元类型
    • 1.5 运行级别所对应的systemd目标
  • 2.排除启动类故障
    • 2.1 修复MBR扇区故障
    • 2.2 实例:修复MBR扇区故障
    • 2.2 修复GRUB引导故障
    • 2.3 实例:恢复GRUB引导程序

1.linux操作系统引导过程

1.1 引导过程总览

在这里插入图片描述

1.2 linux操作系统的引导过程

1.开机自检

服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘

总结:检查硬件设备,检测出第一个能够引导系统的设备,比如硬盘或者光驱.

2.MBR引导

当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR记录中的引导信息调用启动菜单(如GRUB)。

总结:运行放在MBR扇区里的引导信息,启动GRUB引导程序.

3.启动GRUB菜单

对于Linux操作系统来说,GRUB(统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,
然后将系统控制权转交给内核。

centos 7采用的是GRUB2 启动引导器。

总结: GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置,并屏幕显示grub菜单.

4.加载Linux内核

Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个linux操作系统的运行过程。

Centos 7系统中,默认的内核文件位于"/boot/vmlinuz-3.10.0-514.el7.x86_64"。

总结:把内核和境像文件系统加载到内存中,获得操作系统的控制权.

5.init进程初始化

为了完成进一步的系统引导过程,Linux内核首先将系统中的"/sbin/init"程序加载到内存中运行(运行中的程序称为进程),init进程负责完成整个系统的初始化,最后等待用户进行登录

总结:加载硬件驱动程序,内核把init进程加载到内存中运行.

1.3 系统初始化进程

init进程

● 由Linux内核加载运行/sbin/init程序

init进程是系统中第一个进程,是所有进程的父进程

● init进程的PID(进程标记)号永远为1

Systemd

Systemd是Linux操作系统的一种init软件

● CentOS7中采用全新的Systemd启动方式,取代传统的sysVinit

CentOS7中运行的第一个init进程是/lib/systemd/systemd

[root@clr ~]# pstree  -p  #Systemd进程作为所有进程的父进程,并且进程号是1
systemd(1)─┬─ModemManager(615)─┬─{ModemManager}(639)
           │                   └─{ModemManager}(645)
           ├─NetworkManager(729)─┬─dhclient(3504)
           │                     ├─{NetworkManager}(733)
          
[root@clr ~]# ll /sbin/init  #/sbin/init是个软链接,指向../lib/systemd/systemd文件
lrwxrwxrwx. 1 root root 22 323 00:42 /sbin/init -> ../lib/systemd/systemd

注意:(centOS6及以前的系统)传统init对于进程的管理是串行执行shell脚本启动服务,容易出现阻塞情况,导致效率低下,系统启动速度较慢;

(centOS及之后的系统)systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度。

1.4 Systemd单元类型

在这里插入图片描述

[root@clr ~]# ls /lib/systemd/system  #查看位于/lib/systemd/system目录下的配置文件
abrt-ccpp.service                        plymouth-quit-wait.service
abrtd.service                            plymouth-read-write.service
abrt-oops.service                        plymouth-reboot.service
abrt-pstoreoops.service                  plymouth-start.service
abrt-vmcore.service                      plymouth-switch-root.service
abrt-xorg.service                        polkit.service
accounts-daemon.service                  postfix.service
alsa-restore.service                     poweroff.target
alsa-state.service                       poweroff.target.wants
anaconda-direct.service                  printer.target
anaconda-nm-config.service               proc-fs-nfsd.mount
anaconda-noshell.service                 proc-sys-fs-binfmt_misc.automount
anaconda-pre.service                     proc-sys-fs-binfmt_misc.mount
anaconda.service                         psacct.service
anaconda-shell@.service                  qemu-guest-agent.service

[root@clr ~]# cd /lib/systemd/system  #进入/lib/systemd/system文件
[root@clr /lib/systemd/system]# ls ./httpd*
ls: 无法访问./httpd*: 没有那个文件或目录
[root@clr /lib/systemd/system]# df
文件系统          1K-块    已用     可用 已用% 挂载点
devtmpfs        1997348       0  1997348    0% /dev
tmpfs           2013076       0  2013076    0% /dev/shm
tmpfs           2013076   12852  2000224    1% /run
tmpfs           2013076       0  2013076    0% /sys/fs/cgroup
/dev/sda1      38817264 5578092 33239172   15% /
tmpfs            402616      36   402580    1% /run/user/0
/dev/sr0        4600876 4600876        0  100% /run/media/root/CentOS 7 x86_64
[root@clr /lib/systemd/system]# yum install -y httpd #下载httpd安装包
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.ustc.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-98.el7.centos.7 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-98.el7.centos.7,它被软件包 httpd-2.4.6-98.el7.centos.7.x86_64 需要
--> 正在处理依赖关系 /etc/mime.types,它被软件包 httpd-2.4.6-98.el7.centos.7.x86_64 需要
--> 正在检查事务
---> 软件包 httpd-tools.x86_64.0.2.4.6-98.el7.centos.7 将被 安装
---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

===============================================================================================================
 Package                  架构                版本                                  源                    大小
===============================================================================================================
正在安装:
 httpd                    x86_64              2.4.6-98.el7.centos.7                 updates              2.7 M
为依赖而安装:
 httpd-tools              x86_64              2.4.6-98.el7.centos.7                 updates               94 k
 mailcap                  noarch              2.1.41-2.el7                          base                  31 k

事务概要
===============================================================================================================
安装  1 软件包 (+2 依赖软件包)

总下载量:2.8 M
安装大小:9.6 M
Downloading packages:
(1/3): mailcap-2.1.41-2.el7.noarch.rpm                                                  |  31 kB  00:00:00     
(2/3): httpd-tools-2.4.6-98.el7.centos.7.x86_64.rpm                                     |  94 kB  00:00:00     
(3/3): httpd-2.4.6-98.el7.centos.7.x86_64.rpm                                           | 2.7 MB  00:00:02     
---------------------------------------------------------------------------------------------------------------
总计                                                                           1.0 MB/s | 2.8 MB  00:00:02     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : mailcap-2.1.41-2.el7.noarch                                                                1/3 
  正在安装    : httpd-tools-2.4.6-98.el7.centos.7.x86_64                                                   2/3 
  正在安装    : httpd-2.4.6-98.el7.centos.7.x86_64                                                         3/3 
  验证中      : httpd-tools-2.4.6-98.el7.centos.7.x86_64                                                   1/3 
  验证中      : mailcap-2.1.41-2.el7.noarch                                                                2/3 
  验证中      : httpd-2.4.6-98.el7.centos.7.x86_64                                                         3/3 

已安装:
  httpd.x86_64 0:2.4.6-98.el7.centos.7                                                                         

作为依赖被安装:
  httpd-tools.x86_64 0:2.4.6-98.el7.centos.7                   mailcap.noarch 0:2.1.41-2.el7                  

完毕!
[root@clr /lib/systemd/system]# ls ./httpd*  #查看有关httpd服务的配置文件
./httpd.service

1.5 运行级别所对应的systemd目标

在这里插入图片描述

[root@clr ~]# systemctl isolate reboot.target  #实现系统重启操作,效果等同于init6
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(CentOS 7-2) at 16:51:22.

Type `help' to learn how to use Xshell prompt.

2.排除启动类故障

2.1 修复MBR扇区故障

故障原因

● 病毒、木马等造成的破坏

● 不正确的分区操作、磁盘读写误操作

故障现象

找不到引导程序,启动中断

● 无法加载操作系统,开机后黑屏

解决思路

应提前作好备份文件

● 以安装光盘引导进入急救模式

● 从备份文件中恢复

2.2 实例:修复MBR扇区故障

(1)新建一块硬盘sdb,并将该硬盘格式化,挂载到/backup目录中;

[root@clr ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   60G  0 disk 
├─sda1   8:1    0   37G  0 part /
├─sda2   8:2    0    1K  0 part 
└─sda5   8:5    0  3.9G  0 part [SWAP]
sdb      8:16   0   20G  0 disk 
sr0     11:0    1  4.4G  0 rom  /run/media/root/CentOS 7 x86_64
[root@clr ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x4e6c79b4 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):+5G
Last 扇区, +扇区 or +size{K,M,G} (10485760-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 15 GiB

命令(输入 m 获取帮助):q

[root@clr ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x8973f29a 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@clr ~]# mkfs -t xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@clr ~]# mkdir /backup
[root@clr ~]# mount /dev/sdb1 /backup
[root@clr ~]# df -hT
文件系统       类型      容量  已用  可用 已用% 挂载点
devtmpfs       devtmpfs  2.0G     0  2.0G    0% /dev
tmpfs          tmpfs     2.0G     0  2.0G    0% /dev/shm
tmpfs          tmpfs     2.0G   13M  2.0G    1% /run
tmpfs          tmpfs     2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda1      xfs        38G  5.4G   32G   15% /
tmpfs          tmpfs     394M   28K  394M    1% /run/user/0
/dev/sr0       iso9660   4.4G  4.4G     0  100% /run/media/root/CentOS 7 x86_64
/dev/sdb1      xfs       5.0G   33M  5.0G    1% /backup

(2)备份MBR扇区数据到其他磁盘(/dev/sdb1);

[root@clr ~]# dd if=/dev/sda of=/backup/mar.bak bs=512 count=1  #将MBR扇区文件中数据,备份到/backup/mar.bak目录中
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000860577 秒,595 kB/秒
[root@clr ~]# ls /backup -l
总用量 4
-rw-r--r--. 1 root root 512 410 17:11 mar.bak  #从MBR扇区中备份出来的512字节大小的数据文件

(3)模拟破坏MBR引导扇区;

[root@clr ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1  #将零设备文件复制到MBR扇区文件中
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000443372 秒,1.2 MB/秒

(4)重新启动虚拟机;

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
(5)引导界面进入急救模式,从备份文件中恢复MBR扇区数据;
在这里插入图片描述

2.2 修复GRUB引导故障

故障原因

MBR中的GRUB引导程序遭到破坏

grub.cfg文件丢失、引导配置有误

故障现象

系统引导停滞,显示==“grub>”提示符==

解决思路

尝试手动输入引导命令

进入急救模式,重写或者从备份中恢复grub.conf

向MBR扇区中重建grub程序

[root@clr ~]# cd /boot  #进入/boot目录,查看GRUB配置文件
[root@clr /boot]# ls
config-3.10.0-1160.el7.x86_64                            initramfs-3.10.0-1160.el7.x86_64.img
efi                                                      symvers-3.10.0-1160.el7.x86_64.gz
grub                                                     System.map-3.10.0-1160.el7.x86_64
grub2                                                    vmlinuz-0-rescue-675c23e85f174b7ca25013149d0b69ad
initramfs-0-rescue-675c23e85f174b7ca25013149d0b69ad.img  vmlinuz-3.10.0-1160.el7.x86_64
[root@clr /boot]# cd grub2/
[root@clr /boot/grub2]# ls
device.map  fonts  grub.cfg  grubenv  i386-pc  locale
[root@clr /boot/grub2]# ll /etc/grub2.cfg  #/etc/grub2.cfg是一个软链接,指向原文件../boot/grub2/grub.cfg
lrwxrwxrwx. 1 root root 22 323 00:42 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
[root@clr /boot/grub2]# vim grub.cfg #进入grub.cfg 配置文件,查看内核和镜像文件的相关信息

在这里插入图片描述

2.3 实例:恢复GRUB引导程序

方法一:急救模式中,手动输入引导命令(笨拙繁琐,不建议使用)

grub> insmod xfs					#加载指定的模块到内核
grub> linux16 /vmlinuz-3.10.0-693.el7.x86_64 root=UUID=8fd74986-ae66-4ffd-b7d8-a19f2eca7b6f ro rhgb quiet LANG=zh_CN.UTF-8										#内核的名字及位置等信息
grub> initrd16 /initramfs-3.10.0-693.el7.x86_64.img			#镜像系统文件
grub> boot							#引导boot

方法二:进入急救模式,恢复GRUB引导程序;

(1)备份GRUB配置文件到/bak/grub.bak文件中;

[root@clr ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   60G  0 disk 
├─sda1   8:1    0   37G  0 part /
├─sda2   8:2    0    1K  0 part 
└─sda5   8:5    0  3.9G  0 part [SWAP]
sdb      8:16   0   20G  0 disk 
├─sdb1   8:17   0    5G  0 part 
└─sdb2   8:18   0    5G  0 part 
sr0     11:0    1  4.4G  0 rom  /run/media/root/CentOS 7 x86_64
[root@clr ~]# mkfs -t xfs /dev/sdb2  #将分区/dev/sdb2格式化为xfs类型
meta-data=/dev/sdb2              isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@clr ~]# mkdir /bak
[root@clr ~]# mount /dev/sdb2 /bak
[root@clr ~]# dd if=/dev/sda of=/bak/grub.bak bs=446 count=1  #将/dev/sda中的GRUB配置文件复制到/bak/grub.bak文件中
记录了1+0 的读入
记录了1+0 的写出
446字节(446 B)已复制,0.000513284 秒,869 kB/秒
[root@clr ~]# dd if=/dev/zero of=/bak/sda bs=446 count=1  #将/dev/sda中的GRUB配置文件清空
记录了1+0 的读入
记录了1+0 的写出
446字节(446 B)已复制,0.000486882 秒,916 kB/秒
[root@clr ~]# init 6 #重启系统

(2)引导界面进入急救模式,从备份文件中恢复GRUB引导数据;

在这里插入图片描述

方法三:引导界面进入急救模式,重建GRUB菜单配置文件;

(1)手动删除/boot/grub2/grub2.cfg文件;

[root@clr ~]# cd /boot/grub2
[root@clr /boot/grub2]# ls
device.map  fonts  grub.cfg  grubenv  i386-pc  locale
[root@clr /boot/grub2]# rm -rf grub.cfg   #手动删除/boot/grub2/grub2.cfg文件
[root@clr /boot/grub2]# ls
device.map  fonts  grubenv  i386-pc  locale
[root@clr ~]# init 6 #重启系统

(2)进入急救模式,加载光盘镜像,切换到系统根环境;

在这里插入图片描述

重新启动虚拟机,在系统刷新读取设备文件时,眼疾手快(按esc),进入CD-ROM Drive,通过光盘方式进行启动;

或者:关闭虚拟机,选择打开电源时进入固件,将CD-ROM Drive光盘启动方式放在启动顺序的第一位。
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

电子数据取证(一)

电子数据取证概述 一,什么是电子数据 电子数据的特点 **1、以数字化形式存在。**所有的电子数据都是基于计算机应用和通信等电子化技术手段形成的,用以表示文字、图形符号、数字、字母等信息的资料。与其他证据种类不同,电子数据在本质上而…

Perpetuumsoft OLAP ModelKit .NET CRACK

关于 OLAP ModelKit 专业版 可视化您的数据透视表数据。OLAP ModelKit 是用 C# 编写的 .NET 多功能 OLAP 组件,仅包含 100% 托管代码。它具有 XP 主题外观和使用任何 .NET 数据源(ADO.NET 和 IList)的能力。通过在任何第三方组件(…

java 面试消息题1-13

1. Redis 线程模型, 及为什么redis 这么快? 1.Redis虽然是一条一条处理命令的(单线程),但是redis把每一条命令分成了很多个小命令,对这些小命令是多线程执行的。 2. IO 多路复用 - 可以用别人用过的IO。 …

RK3568平台开发系列讲解(调试篇)Oops 日志分析

🚀返回专栏总目录 文章目录 一、OOPS 日志分析二、OOPS 上的跟踪转储三、使用 objdump 识别内核模块中的错误代码行沉淀、分享、成长,让自己和他人都能有所收获!😄 📢编写代码并不总是内核开发中最难的方面。 调试是真正的瓶颈,即使对于经验丰富的内核开发人员也是如此…

Java同学入职环境安装全讲解

一、简述 最近入职一家新公司,拿到新电脑,那肯定有绕不开的装开发环境流程。下面我就从安装jdk、maven、git、idea四个方面讲解(主要提供各个软件官方的下载网址,因为百度搜出来的东西大家懂的都懂我就不多说了)。如果…

windows下安装虚拟环境保存在C盘之解决方案

正常在研究深度学习算法模型时,会现去创建一个配置软件包的虚拟环境,在windows下,一般新建的虚拟环境保存在Anaconda的安装目录下,比如我的安装目录是在 D:\program\Anaconda3\,然后虚拟环境将安装在anaconda中的envs文件夹中&…

钉钉机器人单聊实现互动卡片推送

钉钉开发机器人单聊业务实现背景钉钉待办钉钉卡片卡片类型的工作通知创建并投放卡片机器人发送互动卡片实现过程搭建1. 授权2. 创建机器人3. 创建卡片变量创建链接问题4. 卡片投放测试5. web端调用机器人发送卡片接口6. 生成待办并封装接口新发现总结背景 特定业务场景下的对具…

Spark对正常日志文件清洗并分析

目录 日志文件准备: 一.日志数据清洗: 第一步:数据清洗需求分析: 二.代码实现 2.1 代码和其详解 2.2创建jdbcUtils来连接Mysql数据库 2.3 运行后结果展示: 三、留存用户分析 3.1需求概览 3.2.代码实现 3…

港科夜闻|香港科大(广州)副校长吴宏伟教授与150余位高教界人士分享两会期间见闻及体会...

关注并星标每周阅读港科夜闻建立新视野 开启新思维1、香港科大(广州)副校长吴宏伟教授与150余位高教界人士分享两会期间见闻及体会。港专学院及香港高等教育评议会合办“港区高等教育界全国政协委员2023全国两会见闻分享”活动。吴宏伟教授在会上发言表示,全国两会令…

Apple Xcode 14.3 (14E222b) 正式版发布下载

Command Line Tools for Xcode 14, tvOS 16 & watchOS 9 Simulator Runtime 请访问原文链接:https://sysin.org/blog/apple-xcode-14/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org Xcode 14 包含了在所有 Ap…

上海亚商投顾:沪指震荡反弹 游戏、传媒概念股再度大涨

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪大小指数今日走势分化,沪指向上震荡反弹,创业板指一度跌近1%,黄白二线大幅背离。…

强大到让人无法想象的ChatGPT-5即将发布,上千名人士却紧急叫停

目录 【ChatGPT 5简介】 【ChatGPT 5的潜在应用】 【ChatGPT 5的潜在危险】 ChatGPT4还没有好好体验,比GPT4强大1000倍的ChatGPT5又即将发布!届时将彻底改变人工智能领域,并改变我们现有的世界 【ChatGPT 5简介】 OpenAI计划在2023年12月发…

接入丰桥,下单到打印面单到配送开发流程

顺丰开放平台地址:顺丰开放平台 一、了解官网 1.1、开发文档 开发接口之前可以先查看熟悉文档,尤其是API文档仔细阅读。进入之后是如下图,根据自己需要开发的接口,先查看文档,然后根据文档要求来请求并处理响应。 1.2…

在 Linux 上使用 Pigz 更快地压缩文件,真的快!

Pigz是一款快速压缩文件的工具,它能够使用多个CPU核心进行压缩,使得压缩速度得到了极大的提升。在本文中,我们将介绍如何在Linux上使用Pigz来更快地压缩文件。 安装Pigz 在开始使用Pigz之前,我们需要先安装它。在大多数Linux发行…

11. unity 物理系统和碰撞检测+射击游戏案例

1. 物理系统 也就是在游戏场景中添加日常的重力,碰撞等到物理属性 1.1 刚体组件(Rigidbody) 给模型添加刚体组件后,模型会具备一些物理属性,比如重力,速度,加速度等,在属性窗口中…

CSS基础知识点-01

【01】标准CSS盒模型和IE盒模型的区别 盒模型的区别在于设置width和height时,所对应的范围不同。标准盒模型宽高属性的范围只包含content,而IE盒模型的宽高属性范围包含了border、padding和content。 一般来说,我们可以通过修改元素的box-siz…

AcWing 245. 你能回答这些问题吗(线段树)

AcWing 245. 你能回答这些问题吗(线段树)一、题目二、分析1、节点定义2、函数分析(1)pushup函数(2)build函数(3)modify函数(4)query函数三、代码一、题目 Ac…

COM 对象析构函数是非常敏感的函数

如果你试图在 COM 对象的析构函数中做太多事情,你会发现自己有麻烦。 此话怎讲? 举个例子,如果析构函数将自身引用交给其他函数,则这些函数可能会决定调用 IUnknown::AddRef 和 IUnknown::Release 方法作为其内部操作的一部分。考察下面的…

解码行业新趋势:2023晶球益生菌与肠内营养健康高峰论坛圆满落幕

后疫情时代,国人自身健康管理意识日益提高,越来越多的人认识到到微生物组、营养吸收与免疫健康的密切联系,并逐渐认可微生态和肠内营养在临床应用过程中的积极作用,使得营养治疗研究成果进一步落地转化。消费升级新时代&#xff0…

项目6:实现数据字典的展示与缓存

项目6:实现数据字典的展示与缓存 1.数据字典如何展示? 2.前后端如何设计? 3.前端设计代码? 4.后端设计代码? 5.实现数据字典缓存到redis 项目6:实现数据字典的展示与缓存 1.数据字典如何展示&#xf…