Linux ACPI - ACPI系统描述表架构(2)
- ACPI系统描述表架构
1.概要
ACPI defines a hardware register interface that an ACPI-compatible OS uses to control core power management features of a machine, as described in ACPI Hardware Specification ACPI also provides an abstract interface for controlling the power management and configuration of an ACPI system. Finally, ACPI defines an interface between an ACPI-compatible OS and the platform runtime firmware.
To give hardware vendors flexibility in choosing their implementation, ACPI uses tables to describe system information, features, and methods for controlling those features. These tables list devices on the system board or devices that cannot be detected or power managed using some other hardware standard, plus their capabilities as described in ACPI Concepts They also list system capabilities such as the sleeping power states supported, a description of the power planes and clock sources available in the system, batteries, system indicator lights, and so on. This enables OSPM to control system devices without needing to know how the system controls are implemented.
ACPI定义了一个硬件寄存器接口。ACPI兼容OS使用此接口来控制机器的核心电源管理特征。ACPI也提供了一个抽象接口,用来控制ACPI系统的电源管理及配置。此外,ACPI定义了ACPI兼容OS和系统BIOS之间的接口。
由平台固件创建的RSDP(Root System Description Pointer)结构位于系统内存地址空间中。此结构包含了RSDT(Root System Description Table)或者XSDT(eXtended System Description Table)的地址,而RSDT或者XSDT指向了其他向OSPM提供数据的系统描述表。这些系统描述表一起将系统的基础实现和配置提供给OSPM,如图1所示。
所有系统描述表都以相同的头部开始。系统描述表的主要目的是为OSPM定义各种业界标准的实现细节。这样,可以非常灵活地实现硬件需求、设计中涉及的各个部分,同时也将直接控制这些硬件所需的信息提供给OPSM。
RSDT/XSDT指向内存中其他系统描述表。RSDT/XSDT指向的第一个系统描述表总是FADT(Fixed ACPI Description Table)。FADT中的数据包括各种固定长度的表项,用于描述硬件固定的ACPI特征。FADT总会指向DSDT(Differentiated System Description Table),而DSDT包含了有关系统特征的各种信息和描述。这些表之间的关系如图2所示。
当OSPM定位了RSDP结构后,它在物理地址中查找RSDT或XSDT。RSDT以签名“RSDT”开始,而XSDT以签名“XSDT”开始。RSDT或XSDT包含了一个或多个指向其他系统描述表的物理指针,这些系统描述表提供了有关系统的各种信息。在RSDT/XSDT中总会有一个物理地址指向FADT。
当OSPM跟随一个物理指针找到另一个系统描述表时,它检查每个系统描述表中已知的签名。基于此签名,OSPM随后可以解释系统描述表中实现的特定数据。
FADT的目的是定义各种与设备配置和电源管理相关的静态信息。FADT以签名“FACP”开始。FADT描述了平台中ACPI硬件寄存器的实现及配置细节。此外,FADT也包含了指向DSDT数据结构的物理指针。DSDT按照定义块格式进行编码。
- 定义块包含了有关平台硬件实现细节的信息,通过在ACPI名字空间中排列的数据对象的形式来表示。OSPM加载的所有定义块合并在一起形成一个表示此平台的名字空间。数据对象按照AML格式进行编码。AML解释器会评估编码在AML中的数据对象。数据对象可以是静态或动态的值。AML解释器的动态数据对象评估能力包含对编程表达式、计算和逻辑操作的支持。编程表达式中可以对地址空间进行访问(例如访问I/O或者内存)。通过对动态数据对象进行评估来确定结果。动态名字空间对象被称为“控制方法”。OSPM将整个定义块作为一个逻辑单元进行加载或者卸载——向名字空间中添加相关的对象或者从名字空间中移走相关的对象。**在启动时,OSPM总会加载DSDT并且不会卸载此表。**它包含一个称为差异定义块的定义块。此定义块中包含了实现及配置信息。OSPM可以使用这些信息来执行ACPI硬件寄存器所描述信息之外的电源管理、散热管理或即插即用功能。
- 定义块可以定义新的系统属性,或者在某些情况下修建在之前的定义上。可以从系统内存地址空间中加载定义块。定义块的一种应用是描述和分发平台版本的改变。
- 通过定义块,可以将硬件平台实现的改变描述给ACPI兼容OS并且将此改变限制在合理的范围内。定义块使用一些明确定义的对象名就可表示一个简单的平台实现。理论上,在一个定义块中也可以定义一个像PCI配置空间那样的访问方法,但那不是定义块规范的目标。这样的一个空间通常被定义为内建的操作符。
2.ACPI系统描述表
The Root System Description Pointer (RSDP) structure is located in the system’s memory address space and is setup by the platform firmware. This structure contains the address of the Extended System Description Table (XSDT), which references other description tables that provide data to OSPM, supplying it with knowledge of the base system’s implementation and configuration (see Root System Description Pointer and Table ).
- RSDP(Root System Description Pointer)
- RSDT(Root System Description Table)
- XSDT(Extended System Description Table)
- FADT(Fixed ACPI Description Table)
- FACS(Firmware ACPI Control Structure)
- DSDT(Differentiated System Description Table)
- SSDT(Secondary System Description Table)
- MADT(Multiple APIC Description Table)
- SBST(Smart Battery Table)
- ECDT(Embedded Controller Boot Resource Table)
- SRAT(System Resource Affinity Table)
- SLIT(System Locality Distance Information Table)
2.1.DSDT 描述
DSDT (Differentiated System Description Table) is a part of the ACPI specification. It supplies information about supported power events in a given system. ACPI tables are provided in firmware from the manufacturer. A common Linux problem is missing ACPI functionality, such as: fans not running, screens not turning off when the lid is closed, etc. This can stem from DSDTs made with Windows specifically in mind, which can be patched after installation. The goal of this article is to analyze and rebuild a faulty DSDT, so that the kernel can override the default one.
DSDT(差异化系统描述表)是一个重要的表格,它定义了操作系统在启动过程中如何与硬件交互。DSDT 通常包含系统硬件资源的详细描述、设备节点、方法、事件以及电源管理相关的信息。编译完成后的 DSDT 被加载到系统内存中,并由操作系统的 ACPI 驱动进行解析。
DSDT 是 ACPI 表格之一,ACPI 表格通常存储在系统的内存中,具体存放位置通常在以下地址:
- 0x000E0000 到 0x000FFFFF:这是传统的内存区域,许多 BIOS 或 UEFI 固件将 ACPI 表格加载到该区域,尤其是 DSDT 和其他 ACPI 表格(如 SSDT, FADT, SRAT 等)。
- 系统固件(BIOS 或 UEFI):ACPI 表格通常会嵌入到系统的固件中,并且在启动时被加载到内存中。
具体来说,DSDT 表格在系统启动时由固件(如 BIOS 或 UEFI)读取并加载到内存中,然后操作系统会在其启动过程中访问这些表格。
2.1.1.OS 如何解析 DSDT 表格
OS在启动时会通过一系列的步骤来解析 DSDT 表格。这个过程包括以下几个主要步骤:
-
加载 ACPI 表格
操作系统通常会在系统启动时查找 ACPI 表格。在 UEFI 系统中,操作系统会通过 UEFI 固件接口来查找并加载 ACPI 表格。常见的 ACPI 表格位置包括:- SDT (System Description Table) 中定义的表格地址。
- RSDP (Root System Description Pointer),它位于物理内存的一个固定位置。RSDP 是一个指向 ACPI 表格的指针,操作系统通过该指针找到其他 ACPI 表格的位置,包括 DSDT。
-
定位 DSDT 表格
通过 RSDP,操作系统会查找包含 DSDT 的 RSDT 或 XSDT 表格。RSDT 和 XSDT 都包含指向所有 ACPI 表格的指针,包括 DSDT。- RSDT(Root System Description Table)是 ACPI 1.0 中使用的表格,存储着指向所有 ACPI 表格的 32 位指针。
- XSDT(Extended System Description Table)是 ACPI 2.0 和更高版本中的表格,存储着指向所有 ACPI 表格的 64 位指针。
在 RSDT 或 XSDT 中找到 DSDT 后,操作系统就可以加载并解析它。
-
解析 DSDT 表格
一旦操作系统加载了 DSDT,它会解析其中的内容。具体来说,操作系统会读取 ACPI 表中的硬件信息、设备节点、资源描述符、电源管理信息等。以下是操作系统如何使用 DSDT 中的信息:- 设备节点和资源管理:DSDT 中定义了硬件资源(如内存、I/O 端口、IRQ 等)以及如何与硬件设备进行交互。操作系统会根据这些描述来初始化和配置硬件设备。
- 电源管理:DSDT 包含电源管理方法和状态(如 _S0、_S4、_S5 等),操作系统使用这些信息来控制系统的电源状态。例如,当操作系统需要进入睡眠模式时,会根据 DSDT 中定义的电源管理方法执行相关操作。
- ACPI 方法的执行:DSDT 中可能包含方法(如 _STA,_INI,_PS0,_PS3 等),这些方法用于控制硬件的状态和行为。操作系统会根据需要调用这些方法。例如,当操作系统需要启动一个设备时,它会执行 _INI 方法。
-
执行 ACPI 方法
DSDT 中定义的设备方法通常是以 ACPI 机器语言(AML)形式编写的。操作系统的 ACPI 驱动程序会执行这些方法。它们会在不同的硬件事件和状态转换时被触发。例如:- 电源管理:通过调用 DSDT 中定义的 _S0、_S4、_S5 等方法,操作系统可以控制系统的电源状态。
- 设备状态管理:例如,设备的初始化、启动、停止等操作,可以通过调用设备方法来完成。
-
设备管理和调度
操作系统利用 DSDT 中描述的硬件资源和设备信息来管理和调度硬件设备。通过 DSDT 操作系统能够获得设备的地址、资源需求和电源管理要求,进而执行以下操作:- 配置设备(例如,PCI 设备的配置、内存映射、I/O 地址等)。
- 管理设备的生命周期(如启动、暂停、关闭等)。
- 处理硬件中断和事件。
-
ACPI 电源管理
操作系统会根据 DSDT 中定义的电源状态,控制系统的电源模式。例如,当用户请求系统进入睡眠状态时,操作系统会通过调用 DSDT 中的 _S4 方法,进入休眠状态;当从休眠状态恢复时,操作系统会通过 _S0 方法恢复到正常工作状态。
2.1.2.ACPI Definition Blocks
为了让OSPM能够控制计算机上的设备的资源和热插拔,ACPI提供了一种描述这些设备的信息和控制方式的结构,称为ACPI Definition Blocks,它们按照一种层级结构组织,这种组织方式成为ACPI Namespace。这个命令空间的开始是ROOT,符号“/”,下面又分配了几个预定义的命令空间:
ACPI Definition Blocks包含在DSDT(Differentiated System Description Table)和很多的二级表(SSDT,Secondary System Description Tables)之中。
refer to
- https://blog.csdn.net/jxdzlgl2018/article/details/144954888
- https://blog.csdn.net/qq_44189622/article/details/142205896
- https://blog.csdn.net/jiangwei0512/article/details/51614383
- https://wiki.archlinux.org/title/DSDT
- https://uefi.org/htmlspecs/ACPI_Spec_6_4_html/05_ACPI_Software_Programming_Model/ACPI_Software_Programming_Model.html
相关文章:
Linux ACPI - ACPI系统描述表架构(2)
ACPI系统描述表架构 1.概要 ACPI defines a hardware register interface that an ACPI-compatible OS uses to control core power management features of a machine, as described in ACPI Hardware Specification ACPI also provides an abstract interface for controlli…...
实时在线状态
以下是一个完整的 OnlineUsers 类实现,包含线程安全的在线用户管理功能: import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors;/*** 在线用户管理器(线程安全)* 功能&#…...
《算法导论(第4版)》阅读笔记:p6-p6
《算法导论(第4版)》学习第 4 天,p6-p6 总结,总计 1 页。 一、技术总结 无。 二、英语总结(生词:1) 1. disposal (1)dispose: dis-(“aprt”) ponere(“to put, place”) vt. dispose literally means “to put apart(to separate sth…...
录播课制作技术指南
1.技术版本选择策略 优先采用长期支持版本作为课程开发基础,此类版本在企业级应用中普及度高且稳定性强。技术选型直接影响课程生命周期,稳定的底层框架可降低后续维护成本,避免因技术迭代导致教学内容快速过时。建议定期查看技术社区官方公告…...
【2025软考高级架构师】——知识脑图总结
摘要 本文是一份关于 2025 年软考高级架构师的知识脑图总结。整体涵盖系统工程与信息系统基础、软件工程、项目管理等众多板块,每个板块又细分诸多知识点,如系统工程部分提及系统工程方法、信息系统生命周期等内容,旨在为备考人员提供系统全…...
Allegro23.1新功能之如何设置高压爬电间距规则操作指导
Allegro23.1新功能之如何设置高压爬电间距规则操作指导 Allegro23.1升级到了23.1之后,新增了一个设置高压爬电间距的规则 如下图,不满足爬电间距要求,以DRC的形式报出来了...
**电商推荐系统设计思路**
互联网大厂Java面试实录:马小帅的生死时速 第一轮提问 面试官(严肃地):马小帅,请你先简单介绍一下你过往的项目经验,特别是你在项目中使用的技术栈。 马小帅(紧张地搓手)ÿ…...
BC19 反向输出一个四位数
题目:BC19 反向输出一个四位数 描述 将一个四位数,反向输出。(有前导零的时候保留前导零) 输入描述: 一行,输入一个整数n(1000 < n < 9999)。 输出描述: 针对每组…...
【前端】【面试】在 Vue-React 的迁移重构工作中,从状态管理角度来看,Vuex 迁移到 Redux 最大的挑战是什么,你是怎么应对的?
在从 Vue(Vuex)迁移到 React(Redux)时,状态管理无疑是重构中最具挑战性的部分之一。两者虽本质上都实现了全局状态集中式管理,但在思想、结构与实现方式上存在显著差异。 Vuex 到 Redux 状态管理迁移的挑战…...
ActiveMQ 与其他 MQ 的对比分析:Kafka/RocketMQ 的选型参考(一)
消息队列简介 在当今的分布式系统架构中,消息队列(Message Queue,MQ)扮演着举足轻重的角色,已然成为构建高可用、高性能系统不可或缺的组件。消息队列本质上是一种异步通信的中间件,它允许不同的应用程序或…...
OPENGLPG第九版学习 -视口变换、裁减、剪切与反馈
文章目录 5.1 观察视图5.1.1 视图模型—相机模型OpenGL的整个处理过程中所用到的坐标系统:视锥体视锥体的剪切 5.1.2 视图模型--正交视图模型 5.2 用户变换5.2.1 矩阵乘法的回顾5.2.2 齐次坐标5.2.3 线性变换与矩阵SRT透视投影正交投影 5.2.4 法线变换逐像素计算法向…...
大连理工大学选修课——图形学:第一章 图形学概述
第一章 图形学概述 计算机图形学及其研究内容 计算机图形学:用数学算法将二维或三维图形转化为计算机显示器的格栅形式的科学。 图形 计算机图形学的研究对象为图形广义来说,能在人的视觉系统形成视觉印象的客观对象都可称为图形。 既包括了各种几何…...
雅思听力--75个重点单词/词组
文章目录 1. in + 一段时间2. struggle with + doing sth.3. due to + n. / doing sth.4. all kinds of + n.5. supply6. get sb. down7. sth. be a hit8. ups and downs1. in + 一段时间 “in ten minutes”表示“10分钟内”,“in + 一段时间”表示“在一段时间之内”。 You…...
dubbo 参数校验-ValidationFilter
org.apache.dubbo.rpc.Filter 核心功能 拦截RPC调用流程 Filter是Dubbo框架中实现拦截逻辑的核心接口,作用于服务消费者和提供者的作业链路,支持在方法调用前后插入自定义逻辑。如参数校验、异常处理、日志记录等。扩展性机制 Dubbo通过SPI扩展机制动态…...
Fine Structure-Aware Sampling(AAAI 2024)论文笔记和启发
文章目录 本文解决的问题本文提出的方法以及启发 本文解决的问题 传统的基于Pifu的人体三维重建一般通过采样来进行学习。一般选择的采样方法是空间采样,具体是在surface的表面随机位移进行样本的生成。这里的采样是同时要在XYZ三个方向上进行。所以这导致了一个问…...
股票单因子的检验方法有哪些?
股票单因子的检验方法主要包括以下四类方法及相关指标: 一、统计指标检验 IC值分析法 定义:IC值(信息系数)衡量因子值与股票未来收益的相关性,包括两种计算方式: Normal IC:基于Pearson相关系数…...
Android第三次面试总结之activity和线程池篇(补充)
一、线程池高频面试题 1. 为什么 Android 中推荐使用线程池而非手动创建线程?(字节跳动 / 腾讯真题) 核心考点:线程池的优势、资源管理、性能优化答案要点: 复用线程:避免重复创建 / 销毁线程的开销&…...
【Trae+LucidCoder】三分钟编写专业Dashboard页面
AI辅助编码作为一项革命性技术,正在改变开发者的工作方式。本文将深入探讨如何利用Trae的AI Coding功能构建专业的Dashboard页面,同时向您推荐一个极具价值的工具——Lucids.top,它能够将页面截图转换为AI IDE的prompt,从而生成精…...
CUDA Toolkit 12.9 与 cuDNN 9.9.0 发布,带来全新特性与优化
NVIDIA 近日发布了 CUDA Toolkit 12.9,为开发者提供了一系列新功能和改进,旨在进一步提升 GPU 加速应用的性能和开发效率。CUDA Toolkit 是创建高性能 GPU 加速应用的关键开发环境,广泛应用于从嵌入式系统到超级计算机的各种计算平台。 新特…...
chrome 浏览器怎么不自动提示是否翻译网站
每次访问外国语网页都会弹出这个对话框,很是麻烦,每次都得手动关闭一下。 不让他弹出来方法: 设置》语言》首选语言》添加语言,搜索英语添加上 如果需要使用翻译,就点击三个点,然后选择翻译...
编程速递-RAD Studio 12.3 Athens四月补丁:关注软件性能的开发者,安装此补丁十分必要
2025年4月22日,Embarcadero发布了针对RAD Studio 12.3、Delphi 12.3以及CBuilder 12.3的四月补丁。此更新旨在提升这些产品的质量,特别关注于Delphi编译器、C 64位现代工具链、RAD Studio 64位IDE及其调试器、VCL库和其他RAD Studio特性。强烈建议所有使…...
Linux54 源码包的安装、修改环境变量解决 axel命令找不到;getfacl;测试
始终报错 . 补充链接 tinfo 库时报错软件包 ncurses-devel-5.9-14.20130511.el7_4.x86_64 已安装并且是最新版本 没有可用软件包 tinfo-devel。 无须任何处理 make LDLIBS“-lncurses"报错编译时报错make LDLIBS”-lncurses" ? /opt/rh/devtoolset-11/roo…...
驱动开发硬核特训 · Day 27(上篇):Linux 内核子系统的特性全解析
在过去数日的练习中,我们已经深入了解了字符设备驱动、设备模型与总线驱动模型、regulator 电源子系统、I2C 驱动模型、of_platform_populate 自动注册机制等关键模块。今天进入 Day 27,我们将正式梳理 Linux 内核子系统的核心特性与通用结构,…...
【学习笔记】深度学习:典型应用
作者选择了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰写的《Deep Learning》(人工智能领域的经典教程,深度学习领域研究生必读教材),开始深度学习领域学习,深入全面的理解深度学习的理论知识。 之前的文章参考下面的链接…...
万字详解ADC药物Payload
抗体药物偶联物(ADC)是一种有前景的癌症治疗方式,能够选择性地将有效载荷(Payload)细胞毒性分子递送至肿瘤,降低副作用的严重程度。通常ADC由3个关键成分组成:抗体,连接子和有效载荷…...
算法笔记.求约数
代码实现: #include<iostream> using namespace std; #include<vector> void check(int x) {vector<int> v;for(int i 1;i< x/i;i){if(x%i 0) {cout << i<<" ";v.push_back(i);}}for(int i v.size()-1;i>0;i--){…...
Assetto Corsa 神力科莎 [DLC 解锁] [Steam] [Windows]
Assetto Corsa 神力科莎 [DLC 解锁] [Steam] [Windows] 需要有游戏正版基础本体,安装路径不能带有中文,或其它非常规拉丁字符; DLC 版本 至最新全部 DLC 后续可能无法及时更新文章,具体最新版本见下载文件说明 DLC 解锁列表&…...
启发式算法-遗传算法
遗传算法是一种受达尔文生物进化论和孟德尔遗传学说启发的启发式优化算法,通过模拟生物进化过程,在复杂搜索空间中寻找最优解或近似最优解。遗传算法的核心是将问题的解编码为染色体,每个染色体代表一个候选解,通过模拟生物进化中…...
生成式AI将重塑的未来工作
在人类文明的长河中,技术革命始终是推动社会进步的核心动力。从蒸汽机的轰鸣到互联网的浪潮,每一次技术跃迁都在重塑着人类的工作方式与生存形态。而今,生成式人工智能(Generative AI)的崛起,正以超越以往任何时代的速度与深度,叩响未来工作范式变革的大门。这场变革并非…...
【操作系统】吸烟者问题
问题描述 吸烟者问题是一个经典的同步问题,涉及三个抽烟者进程和一个供应者进程。每个抽烟者需要三种材料(烟草、纸和胶水)来卷烟,但每个抽烟者只有一种材料。供应者每次提供两种材料,拥有剩下那种材料的抽烟者可以卷烟…...
mysql-内置函数,复合查询和内外连接
一 日期函数 函数名称描述示例current_date()返回当前日期(格式:yyyy-mm-dd)select current_date(); → 2017-11-19current_time()返回当前时间(格式:hh:mm:ss)select current_time(); → 13:51:21current…...
软件架构之旅(6):浅析ATAM 在软件技术架构评估中的应用
文章目录 一、引言1.1 研究背景1.2 研究目的与意义 二、ATAM 的理论基础2.1 ATAM 的定义与核心思想2.2 ATAM 涉及的质量属性2.3 ATAM 与其他架构评估方法的关系 三、ATAM 的评估流程3.1 准备阶段3.2 场景和需求收集阶段3.3 架构描述阶段3.4 评估阶段3.5 结果报告阶段 四、ATAM …...
【SQL触发器、事务、锁的概念和应用】
【SQL触发器、事务、锁的概念和应用】 1.触发器 (一)触发器概述 1.触发器的定义 触发器(Trigger)是一种特殊的存储过程,它与表紧密相连,可以是表定义的一部分。当预定义的事件(如用户修改指定表或者视图中的数据)发生时,触发器会自动执行。 触发器基于一个表创建,…...
5.4学习记录
今天的目标是复习刷过往的提高课的DP题目:重点是数位DP,状态压缩DP,然后去做一些新的DP题目 然后明天的任务就是把DP的题目汇总,复习一些疑难的问题 方格取数: 题目背景 NOIP 2000 提高组 T4 题目描述 设有 NN 的方…...
Hadoop 1.x设计理念解析
一、背景 有人可能会好奇,为什么要学一个二十年前的东西呢? Hadoop 1.x虽然是二十年前的,但hadoop生态系统中的一些组件如今还在广泛使用,如hdfs和yarn,当今流行spark和flink都依赖这些组件 通过学习它们的历史设计…...
缓存与数据库的高效读写流程解析
目录 前言1 读取数据的流程1.1 检查缓存是否命中1.2 从数据库读取数据1.3 更新缓存1.4 返回数据 2 写入数据的流程2.1 更新数据库2.2 更新或删除缓存2.3 缓存失效 3 缓存与数据库的一致性问题3.1 写穿(Write-through)策略3.2 写回(Write-back…...
Linux中的粘滞位和开发工具和文本编辑器vim
1.粘滞位的使用的背景: 当几个普通用户需要文件共享操作时,他们就需要在同一个目录下进行操作,那么就诞生一个问题,由谁来创建这个公共的目录文件?假设是由其中的一个普通用户来创建一个默认的目录文件,这就…...
冯诺依曼结构与哈佛架构深度解析
一、冯诺依曼结构(Von Neumann Architecture) 1.1 核心定义 由约翰冯诺依曼提出,程序指令与数据共享同一存储空间和总线,通过分时复用实现存取。 存储器总带宽 指令带宽 数据带宽 即:B_mem f_clk W_data f_…...
如何提升个人情商?
引言 提升个人情商(EQ)是一个持续的自我修炼过程,涉及自我认知、情绪管理、人际沟通等多个方面。以下是一些具体且可实践的方法,帮助你逐步提升情商: 一、提升自我觉察能力 1. 记录情绪日记 每天回顾自己的情绪…...
JSON Web Token 默认密钥 身份验证安全性分析 dubbo-admin JWT硬编码身份验证绕过
引言 在web开发中,对于用户认证的问题,有很多的解决方案。其中传统的认证方式:基于session的用户身份验证便是可采用的一种。 基于session的用户身份验证验证过程: 用户在用进行验证之后,服务器保存用户信息返回sess…...
K230的ISP(图像信号处理器)通常支持多通道输出,常见配置为3个独立通道
也就是一个摄像头可以拍摄三种配置的图片,这样就可以调用三种: img_try sensor.snapshot(chnCAM_CHN_ID_0) img_try2 sensor.snapshot(chnCAM_CHN_ID_1) img_try3 sensor.snapshot(chnCAM_CHN_ID_2) 这样可以一图多用 eg: # 初始化并配…...
工程师 - 小米汽车尾部主动扩散器
关于小米SU7 Ultra的主动尾部扩散器,其设计初衷是为了平衡日常驾驶的节能需求与运动驾驶的操控性能。这一装置位于车辆尾部下方,具备自动调节功能,能够根据车速在0和32之间切换,同时也支持手动调整。 32度打开状态: 0度…...
Linux watch 命令使用详解
简介 watch 命令会以固定间隔(默认每 2 秒)重复运行给定命令,并在终端上显示其输出。它非常适合监控不断变化的输出,例如磁盘使用情况、内存使用情况、文件更改、服务状态等。 基础语法 watch [options] command常用选项 -n, -…...
RabbitMQ-基础
RabbitMQ-基础 文章目录 RabbitMQ-基础1.同步调用2.异步调用3.技术选型4.安装RabbitMQ(官方网址)https://www.rabbitmq.com/5.快速入门5.1收发消息5.1.1交换机5.1.2队列5.1.3绑定关系5.1.4发送消息 5.2数据隔离5.2.1用户管理5.2.2virtual host 6.Java客户端操作RabbitMQ6.1快速…...
第九周作业
安全专题笔记 1、文件上传 (1) 服务端白名单绕过 %00截断绕过要求虚拟机中搭建实验环境,分别实现GET、POST方法的绕过 前提条件: 1 php的版本需要在5.4以下 2 magic_quotes_gpc需要设置为off 启动phpstudy,前往php-ini将magic_quotes_gpc…...
AtCoder Beginner Contest 404 C-G(无F)题解
C. Cycle Graph? 题意 给你一个 N N N 个顶点 M M M 条边的简单(无重边、自环)无向图,第 i i i 条边连接节点 A i A_i Ai 和 B i B_i Bi,判断这个图是不是一个环。 思路 首先一个图是环,要满足点数等于边…...
Python----机器学习(模型评估:准确率、损失函数值、精确度、召回率、F1分数、混淆矩阵、ROC曲线和AUC值、Top-k精度)
一、模型评估 1. 准确率(Accuracy):这是最基本的评估指标之一,表示模型在测试集上正确 分类样本的比例。对于分类任务而言,准确率是衡量模型性能的直观标准。 2. 损失函数值(Loss)࿱…...
开上“Python跑的车”——自动驾驶数据可视化的落地之道
开上“Python跑的车”——自动驾驶数据可视化的落地之道 一、自动驾驶离不开“看得见”的智能 在智能汽车时代,自动驾驶已然不是“炫技”标签,而是一场技术实力的全面拉锯战。而在这场战役中,有一个极其关键但常被忽略的领域,叫做: 数据可视化(Data Visualization)。 为…...
Linux内核gcov修改为模块
Linux内核gcov修改为模块 Gcov 是 GNU 项目开发的代码覆盖率分析工具,与 GCC 编译器深度集成,用于统计程序运行时代码的执行情况,帮助开发者评估测试用例的完整性和代码质量。 Gcov工作原理 1. 编译插桩 编译时需添加 -fprofile-arcs -…...
【安装配置教程】linux部署AList记录
之前朋友安利给自己AList,这个工具可以很方便的管理个人的网盘内容,可以随时上传下载拉取,于是心血来潮自己部署并记录一下。 一、拉取下载脚本 在AList官网,找到安装下面的一键脚本 curl -fsSL "https://alist.nn.ci/v3.sh…...