树莓派系统文件解析


title: “树莓派系统文件分析”
date: 2023-10-25
permalink: /posts/2023/10/blog-post-5/
tags:

  • 树莓派

本篇blog来分析和总结下树莓派系统文件以及他们的作用。使用的系统是Raspberry Pi OS with desktop

  • System: 64-bit
  • Kernel version: 6.1
  • Debian version: 12 (bookworm)

先看一下顶级目录/root有如下的文件和文件夹

请添加图片描述

其中,

  1. LICENCE.broadcom: 这是 Broadcom 公司的许可证文件,包含了与 Broadcom 相关的许可信息。
  2. bcm2710-rpi-*.dtbbcm2711-rpi-*.dtb: 这些是设备树二进制文件,它们描述了 Raspberry Pi 板上的硬件组件信息,如处理器、外设等。不同的文件对应于不同型号的 Raspberry Pi。
  3. cmdline.txt: 这个文件包含了内核启动时的命令行参数,例如根文件系统的位置、启动选项等。
  4. config.txt: 这是 Raspberry Pi 的配置文件,用于配置系统启动时的参数,如分辨率、内存分配等。
  5. fixup*.dat: 这些是固件文件,包含了一些用于修复和初始化硬件的固件信息。
  6. initramfs*: 这些文件是初始内存文件系统(Initial RAM Filesystem)的镜像,用于在启动过程中提供临时的文件系统。
  7. overlays/: 这个目录包含了一系列的设备树覆盖文件,可以在不修改主设备树的情况下对硬件进行配置。
  8. start*.elf: 这是 Raspberry Pi 启动加载器(bootloader)的主要组件之一,负责加载内核和启动树。
  9. System Volume Information/: 这是一个 Windows 特定的隐藏系统目录,通常会出现在 FAT 文件系统中。
  10. bootcode.bin: 这是 Raspberry Pi 启动加载器的一个关键组件,负责初始化硬件并加载 start*.elf 文件。
  11. issue.txt: 这是一个文本文件,包含了一些有关系统的信息。

总的来说,这些文件组成了树莓派系统的启动和配置环境,它们协同工作以确保系统能够正确启动并运行。

我们再来细致的看一下cmdline.txt的内容。cmdline.txt 是树莓派操作系统中一个非常重要的配置文件,它包含了启动内核时传递给内核的参数。具体来说,cmdline.txt 文件包含了一个命令行参数字符串,这些参数会在树莓派启动时传递给 Linux 内核。这些参数可以控制内核的行为,例如设置根文件系统的位置、指定启动模式等。

在我使用的debian bookworm版本系统中,cmdline.txt的内容是这样的:

console=serial0,115200 console=tty1 root=PARTUUID=f6a7c4bd-02 rootfstype=ext4 fsck.repair=yes rootwait quiet init=/usr/lib/raspberrypi-sys-mods/firstboot splash plymouth.ignore-serial-consoles

我们来解释一下其中的内容:

  1. console=serial0,115200:将串口0(也就是 UART 接口)设置为控制台,波特率为 115200。这意味着可以通过串口连接来进行通信和调试。
  2. console=tty1:在控制台 1(也就是图形用户界面)上显示系统信息。
  3. root=PARTUUID=f6a7c4bd-02:指定根文件系统的位置,这里是通过 PARTUUID(分区唯一标识符)来指定的。这确保了根文件系统会被正确地挂载。
  4. rootfstype=ext4:指定根文件系统的类型,这里是 ext4 文件系统。
  5. fsck.repair=yes:在启动时如果检测到文件系统错误,将自动尝试修复。
  6. rootwait:等待根文件系统准备好后再继续启动。
  7. quiet:禁止显示大量启动信息,使启动过程更为安静。
  8. init=/usr/lib/raspberrypi-sys-mods/firstboot:指定要运行的第一个初始化程序。这通常用于执行一些系统初始化的任务。
  9. splash:允许显示启动画面(如果系统配置了这个功能的话)。
  10. plymouth.ignore-serial-consoles:忽略串口控制台,以避免干扰启动画面的显示。

我们再来看一下config.txt文件。config.txt 是 Raspberry Pi 系统中的一个重要配置文件,用于控制硬件参数和设置。它位于启动分区中,由 bootloader 在启动时读取并应用。

以下是 config.txt 文件的一些常见用途:

  1. 分辨率和显示设置:可以通过修改 config.txt 来设置显示器的分辨率、刷新率和其他显示参数。
  2. 超频:可以在 config.txt 中配置 Raspberry Pi 的CPU、GPU和内存的超频参数,以提升性能。
  3. 内存分配:可以调整系统中内存的分配方式,例如将 GPU 内存大小调整为满足特定需求。
  4. 电源管理:可以通过 config.txt 控制供电管理的行为,例如禁用通过 USB 端口供电。
  5. 设备树配置:可以在 config.txt 中加载特定的设备树文件,以配置硬件或启用外部设备。
  6. 启动选项:可以设置启动时的一些选项,例如禁用 splash 屏幕、指定根文件系统等。
  7. Overlays:可以通过 config.txt 加载一些硬件特定的功能或功能模块,例如 GPIO 扩展板。
  8. 音频设置:可以配置音频参数,如选择音频输出设备或配置 I2S 音频等。

总的来说,config.txt 提供了一种在硬件级别上对 Raspberry Pi 进行配置和定制的方法,以满足特定应用或需求。然而,编辑此文件时应小心,因为错误的配置可能会导致系统启动问题或硬件损坏。

在我使用的debian bookworm版本系统中,config.txt文件的内容是这样的:

# For more options and information see
# http://rptl.io/configtxt
# Some settings may impact device functionality. See link above for details# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on# Enable audio (loads snd_bcm2835)
dtparam=audio=on# Additional overlays and parameters are documented
# /boot/firmware/overlays/README# Automatically load overlays for detected cameras
camera_auto_detect=1# Automatically load overlays for detected DSI displays
display_auto_detect=1# Automatically load initramfs files, if found
auto_initramfs=1# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2# Don't have the firmware create an initial video= setting in cmdline.txt.
# Use the kernel's default instead.
disable_fw_kms_setup=1# Run in 64-bit mode
arm_64bit=1# Disable compensation for displays with overscan
disable_overscan=1# Run as fast as firmware / board allows
arm_boost=1[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1[all]

我们来解释一下其中的内容:

  1. dtparam=audio=on: 启用音频功能,并加载 snd_bcm2835 驱动程序。

  2. camera_auto_detect=1: 当检测到摄像头时,自动加载相关的 overlay。

  3. display_auto_detect=1: 当检测到 DSI(显示接口)显示屏时,自动加载相关的 overlay。

  4. auto_initramfs=1: 如果发现 initramfs 文件,则自动加载。

  5. dtoverlay=vc4-kms-v3d: 启用 DRM VC4 V3D 驱动程序,用于图形渲染。

  6. max_framebuffers=2: 设置最大帧缓冲区数量为 2。

  7. disable_fw_kms_setup=1: 禁用固件在 cmdline.txt 中创建初始的 video 设置,使用内核的默认设置。

  8. arm_64bit=1: 启用 64 位模式。

  9. disable_overscan=1: 禁用对具有超扫描的显示器的补偿。

  10. arm_boost=1: 在固件/板子允许的情况下以最大速度运行。

  11. [cm4]: 标志着接下来的设置是专门为 Compute Module 4 设计的。

  12. otg_mode=1: 启用 2711 内置的 XHCI USB 控制器的主机模式。

  13. [all]: 标志着接下来的设置适用于所有 Raspberry Pi 设备。

我们再更进一步解释一下上面的几个名词:

  • overlay: 在 Raspberry Pi 上,“overlay” 指的是一种可以动态加载和卸载的硬件配置文件。这些配置文件包含了设备树片段和参数,可以用来配置和启用特定的硬件功能或接口,例如摄像头、显示屏、传感器等。通过使用 overlay,你可以在不需要重新编译内核的情况下,动态地调整硬件配置,从而增强 Raspberry Pi 的灵活性和可配置性。这使得在不同的项目或场景中,可以轻松地切换和配置不同的硬件组件。

  • initramfs文件:initramfs 是一个临时的根文件系统,用于在 Linux 内核引导时提供必要的文件和工具,以便在实际的根文件系统挂载之前执行一些初始化任务。具体来说,initramfs 可以包含一些必要的设备驱动、文件系统工具、网络配置等,以确保系统能够正常启动和挂载真正的根文件系统。在 Raspberry Pi 中,auto_initramfs=1 的配置表示如果在 /boot/firmware 目录下发现了 initramfs 文件,就会在启动时自动加载它。使用 initramfs 的一个常见情况是在引导过程中可能需要解密根文件系统,或者进行一些需要提前初始化的操作。通过在 initramfs 中提供必要的工具和配置,可以确保系统能够顺利启动。总的来说,initramfs 是一个用于引导时期的临时文件系统,允许在正式的根文件系统挂载之前进行一些初始化和准备工作。

  • dtoverlay=vc4-kms-v3d:dtoverlay 是 Raspberry Pi 系统中用于加载设备树覆盖(Device Tree Overlay)的一个配置参数。

    设备树覆盖是一种在运行时修改设备树的机制,它允许你动态地添加、修改或删除设备树中的设备节点或属性,而无需重新编译整个设备树。通过在 config.txt 文件中使用 dtoverlay 参数,你可以加载特定的设备树覆盖,以对硬件进行配置或启用特定的功能。vc4-kms-v3d表示启用DRM VC4 V3D 驱动程序,用于图形渲染。DRM 表示 Direct Rendering Manager,它是 Linux 内核的一个子系统,用于管理图形硬件设备并提供直接的渲染支持。vc4 是指 Broadcom 公司开发的一款用于树莓派的图形处理器芯片(Broadcom VideoCore 4),它集成了 3D 图形处理器和视频解码器。V3D 是 VideoCore 4 的 3D 图形引擎部分,它负责处理与三维图形相关的任务,包括渲染、变换、纹理映射等。“kms” 代表 “Kernel Mode Setting”,它是一种在 Linux 内核层面进行显示设置的技术。KMS 允许内核控制显卡的显示设置,包括分辨率、刷新率等,而不再依赖于 X 服务器或其他用户空间工具来进行显示设置。通过 dtoverlay=vc4-kms-v3d 这条配置,启用了 Raspberry Pi 上的 VC4 显卡以及DRM 驱动程序,并将其配置为使用 KMS 技术进行显示设置,以便使用 VideoCore 4 的 3D 图形引擎进行硬件加速的图形渲染。这样的设置可以提高图形性能,特别是对于需要处理复杂图形的应用程序和游戏而言。

  • otg_mode=1: 启用 2711 内置的 XHCI USB 控制器的主机模式。2711 指的是树莓派的芯片型号。具体来说,它指的是树莓派4(Raspberry Pi 4)使用的 Broadcom BCM2711 SoC(系统芯片)。XHCI 是一种 USB 控制器接口的标准。全称为 “eXtensible Host Controller Interface”,它支持超速传输和低功耗。这种接口通常用于主机设备,比如连接外部 USB 设备(如鼠标、键盘、硬盘等)的主板 USB 控制器。通过将 otg_mode=1 添加到 config.txt 中,启用了树莓派4上内置的 USB 3.0 控制器,将其配置为支持主机模式,使你可以连接其他 USB 设备到树莓派。

我们再来看一下overlays文件夹。这个目录包含了一系列的设备树覆盖文件,可以在不修改主设备树的情况下对硬件进行配置。设备树(Device Tree)是一种描述硬件平台信息的数据结构,它以一种结构化的方式描述了系统中各个硬件组件之间的关系和属性。设备树文件通常以.dts.dtb为扩展名。

在嵌入式系统中,特别是在一些复杂的系统-on-chip(SoC)中,存在着大量的硬件组件,如处理器、外设、总线等。这些组件之间的连接和属性关系可能非常复杂。设备树的目的是将这些硬件信息抽象出来,以便内核在启动时能够正确地识别和配置硬件。

设备树的作用包括:

  1. 硬件描述: 设备树文件描述了硬件平台的组件以及它们之间的连接关系。这包括了处理器、内存、外设等。
  2. 抽象层: 设备树提供了一个硬件描述的抽象层,使得相同的内核镜像可以在不同的硬件平台上运行。
  3. 热插拔和动态配置: 设备树允许系统在运行时检测和配置硬件组件,从而支持热插拔和动态配置。
  4. 系统移植和开发简化: 设备树允许在不修改内核源代码的情况下将内核移植到不同的硬件平台上,从而简化了开发和移植的工作。

设备树的工作方式如下:

  1. 编写设备树源文件(.dts): 这是一个类似于脚本的文件,描述了硬件的结构、属性和连接关系。
  2. 编译设备树源文件(.dts): 使用设备树编译器(dtc)将设备树源文件编译成二进制的设备树文件(.dtb)。
  3. 内核启动时加载设备树: 内核在启动时会加载设备树文件,以获取硬件配置信息。
  4. 内核根据设备树配置硬件: 内核使用设备树文件中描述的信息来配置硬件组件。

总的来说,设备树是一种在嵌入式系统中描述硬件配置的强大工具,它允许内核在不同的硬件平台上运行,从而提高了系统的可移植性和灵活性。

下面我们用一个具体的例子来看一下设备树文件。

假设我们有一个树莓派 3 Model B+,我们将使用设备树文件来描述它的GPIO引脚以及一个LED灯连接到了其中一个引脚上。

首先,我们编写一个设备树源文件(.dts):

/dts-v1/;
/plugin/;/ {compatible = "brcm,bcm2835";fragment@0 {target = <&gpio>;__overlay__ {led_pin: led_pin {brcm,pins = <16>; // GPIO Pin Numberbrcm,function = <1>; // 1 is OUTPUT mode};};};
};

这个设备树源文件描述了以下信息:

  • 使用了 brcm,bcm2835 兼容性标识,表明这是适用于 BCM2835 SoC 的设备树文件。
  • 在设备树的第一个片段(fragment@0)中,我们将描述 GPIO 控制器(gpio)的属性。
  • __overlay__ 块内部,我们定义了一个名为 led_pin 的节点,该节点表示一个LED灯连接的GPIO引脚。
  • brcm,pins = <16>; 表示这个LED连接在 GPIO 16 引脚上。
  • brcm,function = <1>; 表示这个引脚将被配置为输出模式。

接下来,我们使用设备树编译器(dtc)将这个设备树源文件编译成二进制的设备树文件(.dtbo):

dtc -@ -I dts -O dtb -o led-overlay.dtbo led-overlay.dts

这将生成一个名为 led-overlay.dtbo 的二进制设备树文件。

最后,将生成的设备树文件加载到树莓派的 /boot/overlays 目录中,并在 config.txt 文件中添加一行来引用它:

dtoverlay=led-overlay

这样,在下一次启动时,设备树将会被内核加载,并配置相应的GPIO引脚以控制LED。

再来看一下/root/overlays文件夹里面的内容

请添加图片描述

overlays文件夹里面的内容相对多一些。/boot/overlays 文件夹中的文件是用于加载设备树覆盖(Device Tree Overlays)的配置文件。设备树覆盖允许在运行时动态地修改设备树,以便支持不同的硬件配置或功能。

以下是其中一些常见的设备树覆盖文件及其作用:

  1. ads1015.dtbo: 支持 ADS1015 类模数转换器。
  2. ads1115.dtbo: 支持 ADS1115 类模数转换器。
  3. gpio-fan.dtbo: 支持连接到 GPIO 的风扇。
  4. i2c-gpio.dtbo: 提供了通过 GPIO 模拟 I2C 总线的功能。
  5. spi0-0cs.dtbo, spi0-1cs.dtbo, spi0-2cs.dtbo: 针对 SPI0 总线的不同配置,例如启用/禁用片选线。
  6. spi1-1cs.dtbo, spi1-2cs.dtbo, spi1-3cs.dtbo: 针对 SPI1 总线的不同配置。
  7. spi2-1cs.dtbo, spi2-2cs.dtbo, spi2-3cs.dtbo: 针对 SPI2 总线的不同配置。
  8. spi3-1cs.dtbo, spi3-2cs.dtbo, spi3-2cs-pi5.dtbo: 针对 SPI3 总线的不同配置,包括针对特定硬件(如 Pi 5)的配置。
  9. spi4-1cs.dtbo, spi4-2cs.dtbo: 针对 SPI4 总线的不同配置。
  10. spi5-1cs.dtbo, spi5-1cs-pi5.dtbo, spi5-2cs.dtbo, spi5-2cs-pi5.dtbo: 针对 SPI5 总线的不同配置,包括针对特定硬件(如 Pi 5)的配置。
  11. uart0.dtbo, uart0-pi5.dtbo, uart1.dtbo, uart1-pi5.dtbo, uart2.dtbo, uart2-pi5.dtbo, uart3.dtbo, uart3-pi5.dtbo, uart4.dtbo, uart4-pi5.dtbo, uart5.dtbo: 针对不同 UART(串口)接口的配置。
  12. w1-gpio.dtbo, w1-gpio-pullup.dtbo: 支持 1-Wire 总线的 GPIO 配置。
  13. imx*.dtbo是树莓派支持的CMOS传感器型号的设备树覆盖文件。

这些文件允许用户根据实际需要动态地加载或卸载硬件模块,从而使树莓派适应各种不同的硬件配置。加载设备树覆盖时,可以通过修改 /boot/config.txt 文件,添加一行类似于 dtoverlay=<overlay-name> 的配置来指定使用哪个覆盖文件。

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

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

相关文章

经典链表试题(二)

文章目录 一、移除链表元素1、题目介绍2、思路讲解3、代码实现 二、反转链表1、题目介绍2、思路讲解3、代码实现 三、相交链表1、题目介绍2、思路讲解3、代码实现 四、链表的中间结点1、题目介绍2、思路讲解3、代码实现 五、设计循环队列1、题目介绍2、思路讲解3、代码实现 六、…

2023高频前端面试题-http

1. HTTP有哪些⽅法&#xff1f; HTTP 1.0 标准中&#xff0c;定义了3种请求⽅法&#xff1a;GET、POST、HEAD HTTP 1.1 标准中&#xff0c;新增了请求⽅法&#xff1a;PUT、PATCH、DELETE、OPTIONS、TRACE、CONNECT 2. 各个HTTP方法的具体作用是什么&#xff1f; 方法功能G…

『C语言进阶』动态内存管理

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f516;系列专栏&#xff1a; C语言、Linux、Cpolar ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 文章目录 前言一、动态内存函数的介绍1.1 malloc和free函数1.2 calloc函数1.3 realloc函数 二、常见的动态内存错误2.1 …

行业模型应该如何去拆解?

行业模型应该如何去拆解&#xff1f; 拆解行业模型是一个复杂的过程&#xff0c;涉及对整个行业的深入分析和理解。下面是一些步骤和方法&#xff0c;可以帮助你系统地拆解行业模型&#xff1a; 1. 确定行业范围 定义行业&#xff1a;明确你要分析的行业是什么&#xff0c;包括…

React中的Virtual DOM(看这一篇就够了)

文章目录 前言了解Virtual DOMreact创建虚拟dom的方式React Element虚拟dom的流程虚拟dom和真实dom的对比后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;react合集 &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌…

在pycharm中创建python模板文件

File——>Setting——>File and Code Templates——>Python Scripts 在文本框中输入模板内容

vue首页多模块布局(标题布局)

<template><div class"box"><div class"content"><div class"box1" style"background-color: rgb(245,23,156)">第一个</div><div class"box2" style"background-color: rgb(12,233,…

windows下使用FFmpeg开源库进行视频编解码完整步聚

最终解码效果: 1.UI设计 2.在控件属性窗口中输入默认值 3.复制已编译FFmpeg库到工程同级目录下 4.在工程引用FFmpeg库及头文件 5.链接指定FFmpeg库 6.使用FFmpeg库 引用头文件 extern "C" { #include "libswscale/swscale.h" #include "libavdevic…

composer安装thinkphp6报错

composer安装thinkphp6报错&#xff0c; 查看是否安装了对应的PHP扩展&#xff0c;我这边使用的是宝塔的环境&#xff0c;全程可以可视化操作 这样就可以安装完成了

【AIGC】百度文库文档助手之 - 一键生成PPT

百度文库文档助手之 - 一键生成PPT 引言一、文档助手&#xff1a;体验一键生成PPT二、文档助手&#xff1a;进阶用法三、其它生成PPT的方法3.1 ChatGPT3.2 文心一言 引言 就在上个月百度文库升级为一站式智能文档平台&#xff0c;开放四大AI能力&#xff1a;智能PPT、智能总结、…

【Ansible自动化运维工具 第一部分】Ansible常用模块详解(附各模块应用实例和Ansible环境安装部署)

Ansible常用模块 一、Ansible1.1 简介1.2 工作原理1.3 Ansible的特性1.3.1 特性一&#xff1a;Agentless&#xff0c;即无Agent的存在1.3.2 特性二&#xff1a;幂等性 1.4 Ansible的基本组件 二、Ansible环境安装部署2.1 安装ansible2.2 查看基本信息2.3 配置远程主机清单 三、…

计算机中了mallox勒索病毒怎么办,勒索病毒解密,数据恢复

最近一段时间&#xff0c;云天数据恢复中心陆续收到很多企业的求助&#xff0c;企业的计算机服务器遭到了mallox勒索病毒攻击&#xff0c;导致企业的数据库无法正常使用&#xff0c;严重影响了企业的正常生产生活&#xff0c;为此&#xff0c;云天数据恢复中心的工程师通过对此…

【Java笔记+踩坑】设计模式——原型模式

导航&#xff1a; 【Java笔记踩坑汇总】Java基础JavaWebSSMSpringBootSpringCloud瑞吉外卖/黑马旅游/谷粒商城/学成在线设计模式面试题汇总性能调优/架构设计源码-CSDN博客​ 目录 零、经典的克隆羊问题&#xff08;复制10只属性相同的羊&#xff09; 一、传统方案&#xff1…

酒类商城小程序怎么做

随着互联网的快速发展&#xff0c;线上购物越来越普及。酒类商品也慢慢转向线上销售&#xff0c;如何搭建一个属于自己的酒类小程序商城呢&#xff1f;下面就让我们一起来看看吧&#xff01; 一、登录乔拓云平台 首先&#xff0c;我们需要进入乔拓云平台的后台&#xff0c;点击…

使用boost.mysql来操作mysql 数据库

准备条件 1. visual studio 2019 2. boost库 3. 安装本地的mysql 服务器&#xff0c;boost.mysql对mysql有版本要求最好8.0&#xff0c;具体参考官方文档 安装 使用Nuget安装boost 要安装 openssl&#xff0c;否则的话编译其他项目会产生依赖ssl的错误 安装mysql 省略 …

Java操作Excel

一、Java操作Excel 二、Excel根据单元格状态自动变更行背景颜色 用excel记录和跟进工作的时候&#xff0c;设置背景颜色&#xff0c;以此让记录更加突出&#xff0c;方便查看&#xff0c;但是手动修改背景颜色一来麻烦容易漏&#xff0c;也可能颜色不统一&#xff0c;我们可以试…

PHP 数据库交互优化,根据传参查询

接上文 修改以下内容 将查询的 uid 改为 username&#xff0c;同时在 user 和 message 两张表中查询 $sql "select m.id,u.username,m.title,m.content from user u,message m where u.idm.uid;"根据 message 中的 id 查询&#xff0c;形式为 http://127.0.0.1/m…

数学与经济管理

数学与经济管理&#xff08;2-4分&#xff09; 章节概述 最小生成树问题 答案&#xff1a;23 讲解地址&#xff1a;74-最小生成树问题_哔哩哔哩_bilibili 最短路径问题 答案&#xff1a;81 讲解地址&#xff1a;75-最短路径问题_哔哩哔哩_bilibili 网络与最大流量问题 真题 讲解…

【STL】:vector用法详解

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关vector的基础用法&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数…

k8s-----24、亲和力Affinity

1、应用场景 pod和节点间的关系&#xff1a; 某些Pod优先选择有ssdtrue标签的节点&#xff0c;如果没有在考虑部署到其它节点;某些Pod需要部署在ssdtrue和typephysical的节点上&#xff0c;但是优先部署在ssdtrue的节点上; pod和pod间的关系&#xff1a; 同一个应用的Pod不…