55 KVM工具使用指南-LibcarePlus概述

news2024/10/5 12:46:02

文章目录

    • 55 KVM工具使用指南-LibcarePlus概述
      • 55.1 概述
      • 55.2 软硬件要求
      • 55.3 注意事项和约束

55 KVM工具使用指南-LibcarePlus概述

55.1 概述

LibcarePlus 是一个用户态进程热补丁框架,可以在不重启进程的情况下对 Linux 系统上运行的目标进程进行热补丁操作。热补丁可以应用于 CVE 漏洞修复,也可以应用于不中断应用服务的紧急 bug 修复。

55.2 软硬件要求

在 openEuler 上使用 LibcarePlus,需要满足一定的软硬件要求:

  • 当前LibcarePlus支持 x86 体系架构和arm64体系架构。
  • LibcarePlus 可以在任何支持安装 libunwindelfutils 以及 binutils 的 Linux 发行版系统上运行。
  • LibcarePlus 使用ptrace()系统调用,需要对应Linux发行版本的相关编译选项支持。
  • LibcarePlus 制作热补丁时,依赖原可执行文件的符号表,因此,请勿过早将符号表strip掉。
  • 对于开启selinux的Linux系统,需要自行适配对应的selinux规则。

55.3 注意事项和约束

使用 LibcarePlus,需遵循以下热补丁规范和约束:

  • 仅支持对 C 语言编写的代码,不支持汇编语言等。
  • 代码文件名必须符合 C 语言标识符命名规范:由字母(A-Z,a-z)、数字 (0-9)、下划线“_”组成;并且首字符不能是数字,但可以是字母或者下划线;不能包含“-”、“$”等特殊符号。
  • 支持增量补丁,即支持对进程打多个补丁,但补丁加卸载管理需使用者执行设计,一般遵循FILO规则。
  • 不支持补丁自动加载,对于特定进程,需使用者自行设计。
  • 支持补丁查询功能。
  • 静态函数补丁受限于系统中能找到该函数的符号表。
  • 热补丁为进程粒度,即动态库热补丁只能对调用这个动态库的进程打补丁。
  • 单个进程支持的补丁数受限于跳转指令的跳转范围和虚拟内存地址空洞大小,一般支持[1, 512];
  • 对于TLS变量,仅支持修改IE模式的TLS变量;
  • 后续补丁不能使用之前补丁中定义的符号;
  • 以下场景不支持热补丁:
    • 死循环函数、不退出函数、inline 函数、初始化函数、NMI 中断处理函数
    • 替换全局变量
    • 小于5字节的短函数
    • 修改头文件
    • 增加和删除目标函数的出参和入参
    • 数据结构成员变化(新增、删除、修改)
    • 修改包含 LINEFILE 等gcc编译宏的 C 文件
    • 修改 intel 矢量汇编指令

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

image-20230409094407695

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

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

相关文章

语音合成 - TTS-VUE 学习

今天给小伙伴测试了一款人工智能文字合成语音的工具,测试中发现应该是某位大神开发的开源工具,经过一下午的测试,发现有可学习之处,有兴趣的小伙伴可以一起来学习下。 一、简单介绍 微软的语音合成助手利用强大的微软AI语音库&am…

牛云企业官网小程序,外卖cps权益变现,uniCloud云开发无需购买服务器和域名,助力每一位创业者。

技术优势 基于 uniapp uniCloud 研发,无需购买服务器和域名,uniCloud 是 DCloud 联合阿里云、腾讯云 serverless 构建。从此不用关心服务器运维、弹性扩容、大并发承载、防DDoS攻击等,轻松应对高并发应用, 上图 小程序页面 体…

一种新颖的智能优化算法-蝠鲼优化算法(MRFO)

目录 一、MRFO数学模型 1.1 链式觅食 1.2 旋风式觅食 1.3 翻筋斗式觅食 二、MRFO伪代码 2019年提出一种新的仿生优化技术称为魔鬼鱼觅食优化算法,旨在提供一种替代优化 解决实际工程问题的方法。该算法的灵感是基于智能算法魔鬼鱼的行为。这项工作模拟了魔鬼…

轻量应用服务器性能如何?CPU带宽流量系统盘测评

轻量应用服务器性能如何?腾讯云轻量应用服务器是一种轻量级搭建小型网站和应用的服务器,相对于其他更高性能配置的服务器CVM,性价比更高。虽然其性能不如高性能云服务器CVM,但对于小型网站和应用来说,能够提供基本的计…

JDK1.8 lambda_函数式编程_stream流

一、 lambda表达式 jdk 1.8 引入了 lambda表达式 能够我们 编写代码时更加简洁,也为函数式编程提供了支持 lambda表达式 作用 简化匿名实现类的书写,实现接口抽象方法; (参数类型 参数名1,参数类型 参数名2,……参数类型 参数名n)->{ //方法体 } …

【工具】搜狗输入法常用配置(持续更新)

▒ 目录 ▒ 🛫 问题描述环境 1️⃣ 按键相关通用快捷键系统快捷键辅助输入快捷键 2️⃣ 其它自定义语句关闭自动更新 🛬 结论 🛫 问题 描述 作为输入法的常青树,重装系统后经常第一步就是装输入法,由于以下原因&#…

开发框架前后端分离的好处是什么

关于将前端和后端保持在一起或分开,存在广泛的意见分歧。唯一重要的是,这两个组件对于开发成熟的应用程序都是必需的。 考虑:紧密耦合的前端和后端 许多人认为后端和前端的分离是一个坏主意,这两个角色之间没有太大区别。 以下…

多旋翼无人机振动分析与减振方法

多旋翼无人机振动分析与减振方法 振动分析无人机减振设计机械减振数字滤波减振 振动分析 振动机制包括: 激励(振动源)系统响应 无人机振动机制: 激励 —— 动力系统(旋翼电机)系统 —— 机架响应 —— …

《产品思维》 要点

“一切以用户价值为依归”的价值观,落地下来就是从用户中来,到用户中去。 认知用户 用户画像 用户是一切产品的源头 用户不是理性人 我们的用户到底是谁、究 竟在哪里。这个“到底是谁”“究竟在哪里”。 用户生活工作的环境,是他们日常的…

【机器学习】机器故障的二元分类模型-Kaggle竞赛

竞赛介绍 数据集描述 本次竞赛的数据集(训练和测试)是从根据机器故障预测训练的深度学习模型生成的。特征分布与原始分布接近,但不完全相同。随意使用原始数据集作为本次竞赛的一部分,既可以探索差异,也可以了解在训…

[RockertMQ] Broker启动加载消息文件以及恢复数据源码 (三)

Broker的启动过程中, 在DefaultMessageStore实例化后, 会调用load方法将磁盘中的commitLog、ConsumeQueue、IndexFile文件的数据加载到内存中, 还有数据恢复的操作。 调用isTempFileExist方法判断上次broker是否是正常退出, 如果是正常退出不会保留abort文件, 异常退出则会。 …

【MySQL】关于自增id、雪花id还是uuid作为MySQL主键

在MySQL中设计表的时候,MySQL官方推荐不要使用uuid或者不连续不重复的雪花id(long型且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment。那么为什么不使用雪花id或者uuid呢?让我们来探讨分析一下这个问题的原因。 关于…

【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)

零基础带你进军人工智能领域的全流程技术体系和实战指南(机器学习基础知识) 前言专栏介绍专栏说明学习大纲前提条件面向读者学习目标核心内容机器学习的概念定义回顾人工智能机器学习概念国外知名学者对机器学习的定义中文翻译 机器学习发展历程机器学习…

Oracle JSON_ARRAYAGG()函数的排序失效问题

引入: 在实际操作中,俺写了这样一个Funtcion: FUNCTION fun_get_xxx(v_param_one VARCHAR2) RETURN CLOB ASv_OUTPUT CLOB;BEGINWITH temp_table AS (SELECT * FROM (( SELECT one.action_id,two.log_timeFROM table_one oneLEFT JOIN table…

【深度学习】6-4 卷积神经网络 - CNN的实现

CNN的实现 网络的构成是“Convolution - ReLU - Pooling -Affine - ReLU - Affine - Softmax”,我们将它实现为名为 SimpleConvNet的类。 首先来看一下 SimpleConvNet的初始化(init),取下面这些参数。 input_dim——输入数据的维…

七彩虹CN600+Meetiger N10C测评

七彩虹CN600这款M.2固态硬盘的参数就不多说了 本期采用为512版本 迷虎品牌,英文名Meetiger,Meetiger/迷虎品牌成立于2012年,品牌迷虎产品主要有硬盘底座,保护盒,硬盘座,移动硬盘盒子,硬盘盒子,... 以下就是本期的硬盘盒 当这两样东西在一起…

C++(10):泛型算法

泛型算法:可用于不同类型的容器和不同类型的元素的通用算法。 概述 大多数算法都定义在头文件algorithm 中。标准库在头文件 numeric 中定义了一组数值泛型算法。 一般情况下,泛型算法不直接操作容器,而是遍历由两个迭代器指定的一个元素范…

【Spring Boot学习】日志文件,Spring Boot也会写日记了,这些事你知道嘛 ? ? ?

前言: 大家好,我是良辰丫,在上一篇文章中我们已经学习了Spring Boot的配置,接下来我们要学习一些日志相关的东西,什么是日志呢?我们慢慢往下看.💌💌💌 🧑个人主页:良辰针不戳 📖所属专栏:javaE…

7.4_2B树的插入删除

我们先设置根节点 我们再往里面插入关键字 比如说:80 中间位置为49:(5/2)向上取整为3 新元素一定要插入到最底层”终端结点“,用”查找”来确定插入位置。 失败节点(叶子节点不属于同一层) 讲…

Vue-全局事件总线(GlobalEventBus)

全局事件总线(GlobalEventBus) 全局事件总线是vue中特别厉害的一种组件中通信的方式,它可以实现任意组件中通信,随便拿出来两个组件就能互通数据,就像对讲机一样,它在开发中用的也是特别的多 1 编写案例 首先准备两个组件&…