LWN:mseal() 以及后续方案!

stb-translator-data-repository.zip - Web 版翻译者资料库项目源码 本项目是由 VB6/Qt 桌面版《翻译者资料库》移植而来的 Web 版本,采用 Spring Boot 3.3 + Thymeleaf + Bootstrap 5.3 + MySQL 8.0 技术栈,面向翻译与写作场景提供一站式资料管理底座。系统涵盖资料管家、分类词库、句库、文本处理器、中英对照制作、通用查找、数据备份恢复及旧库迁移等核心模块,完整继承桌面版的编号连续、引号规范化、查重、RTF 附件同步等关键业务规则。前端采用服务端渲染配合本地静态资源,支持离线使用;通过 run.bat 一键完成环境检查、建库、编译与启动,访问 http://localhost:8080 即可使用。 立即下载

关注了就能看到更多这么棒的文章哦~

mseal() and what comes after

By Jonathan Corbet
October 20, 2023
ChatGPT translation
https://lwn.net/Articles/948129/

Jeff Xu提出了新增一个名为 mseal() 的系统调用的提案,该系统调用将允许应用程序阻止对选定内存映射(memory mapping)的修改。这有助于阻止用户空间应用程序对某些类型的攻击;一些其他操作系统已经具备了这种功能。在Linux内核中也有添加此类机制的支持,但是目前明确下来 mseal() 不会以其当前形式进入主线。相反,从多个角度来说,它已经成为了内核开发中应该不要做什么的一个反面案例。

Xu描述了新系统调用的目的如下:

“内存密封可以额外防止对映射本身进行修改。这有助于减轻已损坏的指针传递给内存管理系统调用的情况下的内存破坏问题。例如,这样的攻击方式可以破坏控制流完整性(control-flow integrity)的保证,因为应该受信任的只读内存可能会改变为可写,或者.text page可以重新映射。”

这项功能的目标用户是Chrome浏览器,其中包含了JavaScript代码的即时(JIT)编译引擎。由于它会即时生成可执行代码,因此JIT编译必须小心进行,以免创建(和运行)有问题的代码。如Stephen Röttger在这篇博客文章中所述,已经付出了大量努力来实现控制流完整性,以防止JIT系统成为攻击者的工具。但是,如果攻击者以某种方式强制执行更改内存权限的内存管理系统调用,那么一切预防措施都不再成立。因此,Chrome开发人员希望有一种机制,使那些系统调用不适用于内存的特定区域,以增强浏览器对此类攻击的防护。

封面信件指出, mseal() 类似于最近添加到OpenBSD的 mimmutable()。但是,所提议的系统调用的原型与 mimmutable() 完全不同:

int mseal(void *addr, size_t len, unsigned int types, unsigned int flags);

要受影响的内存范围由 addr 和 len 指示。必须将 flags 设置为零,而 types 控制要在该地址范围上阻止哪些系统调用:

  • MM_SEAL_MPROTECT: mprotect()和pkey_mprotect()

  • MM_SEAL_MMAP: mmap()

  • MM_SEAL_MUNMAP: munmap()

  • MM_SEAL_MREMAP: mremap()

  • MM_SEAL_MSEAL: 未来的 mseal() 调用

Linus Torvalds迅速对该补丁系列提出了异议,他表示:“我对添加某种“锁定内存映射”模型没有异议,但对当前方案不满意”。他对实现的细节提出了许多投诉,但后来明确表示系统调用的设计是错误的。例如,阻止 munmap() 在其他可以导致地址取消映射的操作(例如mmap()和mremap())仍然被允许,是没有多少意义的。他说,投入的努力只阻止特定系统调用操作,这显然是错误的做法;如果阻止了一个范围的内存被取消映射(例如),它必须从所有方向阻止,否则提供的保护将只是一个幻想。

Matthew Wilcox质疑接口的复杂性,建议仅添加到 mprotect() 的几个标志即可。他表示,内存区域应该是不可变的(可能还可以进一步减少访问权限),或者不可变,无论是使用哪个系统调用。他后来补充道:

“这就是seccomp的毛病,并且更糟,因为你试图拒绝单个系统调用,而不是建立一个可以允许的系统调用列表。如果我们明天引入了一个新的系统调用,可以影响VMA,那么问题将归咎于应用程序未禁用新的系统调用。那是可怕的设计!”

甚至在linux-kernel上还出现了OpenBSD维护者Theo de Raadt,他赞同了Torvalds的观点,并建议Linux应该简单地添加 mimmutable() ,而不是以更复杂的形式重新发明该功能。Torvalds 同意了这个想法 ,尽管他建议添加一个用于未来更改的 flags参数,Theo de Raadt不喜欢 这个想法。这反映了一个事实,就是OpenBSD可以控制其用户空间,因此如果有必要的话它可以在今后添加一个flags参数;Linux没有这种奢侈的条件,因此如果要存在的话,该参数必须从一开始就存在。

Xu抵制了这个想法,引发了一种典型的(相对温和的)de Raadt回复。实际上,即使在收到了评论后,Xu仍然坚持他提出的设计,这就引出了来自Wilcox的回复,Wilcox在其中试图把讨论引导回这组补丁系列实际试图实现的内容之上:

“让我们从目的开始。mimmutable/mseal/任何东西的目的是修复地址范围到其基础对象的映射,无论它是特定的文件映射还是匿名内存。调用成功后,不得可能使该虚拟范围中的任何地址指向任何其他对象。

次要目的是锁定该范围的权限。在那里修复它们可能在那里修复它们,可能允许RW->RO转换。

在这些目的的基础上,您应该能够判断任何一个系统调用或任何madvise()…是否应该被允许。”

Wilcox最后得出的结论是,Xu需要更好地倾听那些试图帮助他的开发人员。

目前,很明显 mseal() 不会以其当前形式进入内核。这引出了一个问题,就是接下来应该做些什么。Röttger加入了讨论,指出纯 mimmutable() 解决方案并不满足Chrome开发人员想要看到的一切;他们有一些情况下希望阻止做取消映射的动作(unmapping),但仍然需要能够使用 mprotect() 更改内存保护。De Raadt描述了这种情况,称其为“部分密封”,这意味着受影响的内存实际上没有得到保护。

在保留这种功能的同时,将从 mseal() 中删除由 mseal() 提供的更复杂选项的一些后续提案将来可能会提出。但是,这个提案是否是 mimmutable() 或其变体的方式是否还有待观察。

可以指出,这里出了一些问题。许多人认为最初的提案只是实现了Chrome开发人员所说他们想要的东西,而没有深入研究真正的需求(对于Chrome和任何其他潜在用户公共的需求)是什么。Google拥有许多有经验的开发人员,他们可以在将其公开发布之前审查此提交,但似乎没有发生这种情况,导致相对经验不足的开发人员陷入了困境。对提案的反馈受到了抵制,而不是得到了认真的听取。这就导致一系列不让任何人满意的交互。

尽管如此,每个人都似乎认为这里是一个合理的使用场景。因此,问题的解决方法是找到正确的方式,希望现在更好地理解了该问题。如果下一次尝试看起来更像 mimmutable() ,并反映了已经给出的反馈,那么内核可能会获得这个密封功能以满足Chrome场景,并提供更广泛的用户空间强化。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

format,png

利用LQR反馈控制器在不同风况下模拟风力涡轮转速控制的MATLAB.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载

相关推荐

基于jdk21、jdk17、jdk8 + SpringCloud + SpringBoot 开发的微服务中后台快速开发平台,专注于多租户、开放平台解决方案,亦可作为普通项目的基础开发框架使用

基于jdk21、jdk17、jdk8 + SpringCloud + SpringBoot 开发的微服务中后台快速开发平台,专注于多租户(SaaS架构)、开放平台解决方案,亦可作为普通项目(非SaaS架构)的基础开发框架使用,目前已实现数据库隔离、字段隔离等租户隔离方案。

LWN:在GNU C库实现内存封印!

关注了就能看到更多这么棒的文章哦~Memory sealing for the GNU C LibraryBy Jonathan CorbetJune 12, 2024Gemini-1.5-flash translationhttps://lwn.net/Articles/978010/mseal()系统调用允许进程阻止其地址空间未来进行任何更改(因此被称为“密封 sealing”);它借鉴了...

Linux News搬运工 1736

【无人机控制】基于MATLAB的侧风扰动抑制与风力模型构建:位置误差评估及风场感知路线规划系统设计 MATLAB 无人机侧风扰动抑制|风力模型与位置误差评估

内容概要:本文档围绕无人机在侧风扰动下的飞行稳定性问题,构建了一个基于MATLAB的完整仿真框架,涵盖风力建模、无人机运动仿真、侧风抑制控制、风场感知路线规划及位置误差评估。项目通过五种独立机制(平均风速、风向投影、阵风、湍流、定位噪声)生成具有物理意义的模拟数据,构建二维无人机运动模型,并设计包含比例-积分-前馈的复合控制器以抑制侧风引起的横向漂移。路线规划采用融合距离、风场与转弯代价的A*算法,实现抗扰路径选择。系统提供多层次误差评价体系,并支持结果可视化与模型部署,适用于低空飞行任务的抗风性能分析与优化。; 适合人群:具备MATLAB编程基础,从事无人机控制、路径规划或自动化系统开发的研发人员,尤其适合工作1-3年、希望深入理解环境扰动建模与控制系统协同设计的工程师。; 使用场景及目标:①研究侧风环境下无人机航迹跟踪的误差来源与抑制方法;②对比不同控制策略(如无补偿、积分补偿、前馈补偿)在侧风扰动中的性能差异;③实现融合风场代价的智能路径规划,提升任务安全性与能效;④基于模拟数据训练误差预测模型,支持数据驱动的飞行优化。; 阅读建议:此资源强调可复现性与工程实用性,建议读者结合代码逐模块运行,重点关注风场建模机制、控制律设计、路线代价函数构建及多指标评估方法。应通过调整参数(如风场权重、控制增益)观察系统响应变化,并利用提供的GUI界面进行交互式调试,以深化对各模块协同机制的理解。

LWN:mseal() 即将确定!

关注了就能看到更多这么棒的文章哦~mseal() gets closerBy Jonathan CorbetJanuary 19, 2024Gemini translationhttps://lwn.net/Articles/958438/2023 年 10 月首次提出的 mseal() 系统调用引发了一些争议。自那以后,它一直静悄悄地开发演进,并且似乎已经达到了相关评论者愿意接受的程度。预计会在...

Linux News搬运工 517

高校技术转移办公室人员如何提升技术成果的推介效果和市场转化率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

agent-browser 实战资源包:给 AI Agent 装上浏览器(open/snapshot/click 最小复现 + smoke 脚本 + 中文README)

agent-browser(Vercel Labs 开源、Apache-2.0)实战配套包。本包全部脚本与示例页为作者自写(MIT),不含浏览器二进制、不含任何账号密码。 内容包含: - 中文 README:环境要求、安装、open→snapshot→click 循环讲解、安全注意、许可声明 - scripts/smoke.sh:对本地 samples/ 示例页离线跑通「打开→快照→点击→核对→关闭」,附 out/smoke-output.txt 实测留档 - scripts/demo-csdn.sh:真实站点(优快云 首页)最小演示,ref 动态解析 - package.json + package-lock.json:锁定 agent-browser 0.41.2,便于复现(Node >= 24) 实测环境:agent-browser 0.41.2 / Chrome for Testing 157 / Linux x86_64 / Node 24。 Chrome 需使用者自行 agent-browser install 下载(约 190MB,本包不代分发)。 关联博客:https://blog.youkuaiyun.com/mtl1994/article/details/170340810

刚刚发布的LINUX 6.10内核有哪些新功能

2024 年年中内核升级带来了大量令人兴奋的功能和改进,这些功能和改进增强了跨各种平台的性能、安全性和硬件支持。译自What's New With the Just-Released Linux 6.10 Kernel,作者 Steven J Vaughan-Nichols。最新的 Linux 内核 6.10 已经发布。...

weixin_41136446的博客 300

两相交错并联BuckBoost变换器仿真模型(Simulink仿真实现)

内容概要:本文档系统整合了电力电子与新能源领域的Simulink仿真资源,聚焦于两相交错并联Buck-Boost变换器的双闭环PWM控制建模与仿真,同时涵盖多种典型拓扑结构,包括交错并联Boost、PFC功率因数校正、LLC谐振变换器、双向CLLC、DAB变换器、VIENNA整流器等。资源体系完整,包含仿真模型、设计报告、计算书、PPT说明文档及Matlab/Python代码,覆盖从基础建模到高级控制策略(如软开关技术、谐波抑制、状态估计、双闭环控制)的全流程。此外,还拓展至状态估计(卡尔曼滤波、粒子滤波)、智能优化算法、机器学习、信号处理、路径规划等多个交叉学科方向,构建了一个面向科研与工程应用的综合性技术平台。; 适合人群:电气工程、自动化、电力电子、新能源科学与工程等专业的硕士博士研究生、高校科研人员,以及从事新能源发电、智能电网、电动汽车、电力传动等领域技术研发的工程师。; 使用场景及目标:①开展电力电子变换器(如Buck-Boost、LLC、DAB、PFC等)的建模、控制与仿真研究;②支撑课程设计、学位论文、科研项目中的系统仿真与算法验证;③学习并复现高水平期刊(如EI)提出的先进控制策略,如基于KKT条件的最优控制、扩展移相调制、恒压恒流双环竞争控制等;④结合智能算法(如粒子群、秃鹰算法)进行微电网调度、储能配置、路径规划等多目标优化问题的研究与快速原型开发。; 阅读建议:建议依据提供的资源目录循序渐进地查阅资料,优先选取与自身研究方向高度契合的内容进行深入学习;应结合仿真模型与配套文档动手实践,调试参数并分析结果,充分利用百度网盘与公众号渠道获取完整资源,提升科研工作的系统性、规范性与创新性。

LWN:6.10合并窗口的后半部分!

关注了就能看到更多这么棒的文章哦~The rest of the 6.10 merge windowBy Jonathan CorbetMay 27, 2024Gemini-1.5-flash translationhttps://lwn.net/Articles/974869/Linus Torvalds发布了 6.10-rc1并在 5 月 26 日关闭了 6.10 合并窗口。当时,已经有 ...

Linux News搬运工 550

【基于Zernike矩的良性和恶性肿块的分类】应用于乳腺癌诊断中的快速相反权重学习规则(Matlab代码实现)

内容概要:本文详细介绍了基于Plecs软件构建的全桥LLC谐振变换器仿真模型,重点阐述了其在软开关技术条件下的建模方法与仿真分析过程。该模型能够精确模拟LLC谐振变换器在不同运行工况下的动态响应特性,涵盖开环与闭环控制策略的设计与实现,适用于研究变换器的效率优化、谐振参数匹配、系统稳定性及软开关性能等问题。相较于Simulink等传统仿真工具,Plecs在高频电力电子系统仿真中展现出更高的仿真速度与数值精度,尤其适合用于复杂电力电子拓扑的快速原型验证与优化设计。; 适合人群:具备扎实电力电子技术基础和仿真经验,从事高频功率变换器设计、新能源电源开发、电力电子系统研究的研发工程师及高校研究生。; 使用场景及目标:①深入理解全桥LLC谐振变换器的工作原理与软开关实现机制;②掌握在Plecs环境中搭建高精度、高效率电力电子系统仿真模型的方法;③开展变换器控制策略(如变频控制、闭环稳压)的仿真验证与参数优化;④为科研课题、学位论文或工业项目提供可靠的仿真平台与技术支持。; 阅读建议:建议结合相关电力电子教材与LLC变换器设计指南,深入掌握谐振参数计算与系统稳定性分析方法,并通过反复调试仿真模型,观察关键波形(如原边电流零点切换、副边整流波形),以全面理解软开关过程的物理本质与控制实现细节。

产业园区运营负责人如何提升园区内技术成果与企业需求的精准对接效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

两相交错并联Buck/Boost变换器仿真模型(Simulink仿真实现)

内容概要:本文提供了一个两相交错并联Buck/Boost变换器的Simulink仿真模型,旨在通过高精度建模实现对这类双向DC-DC变换器的动态特性分析与控制策略验证。该仿真模型详细构建了主电路拓扑结构,包含两个交错并联的Buck/Boost单元、电感、开关器件及滤波元件,并集成了闭环控制模块,如电压/电流双闭环PI控制器、PWM调制单元以及驱动逻辑,支持升压(Boost)与降压(Buck)两种工作模式的平滑切换。模型充分体现了交错并联技术在减小输入输出电流纹波、提升系统效率与功率密度方面的优势,适用于研究均流控制、软开关实现、动态响应优化等关键技术问题。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生、科研人员以及从事新能源发电、电动汽车、储能系统等领域研发的工程技术人员。; 使用场景及目标:①掌握两相交错并联Buck/Boost变换器的工作原理与建模范式;②设计与验证针对此类变换器的先进控制算法(如均流控制、模式切换平滑控制);③分析系统在负载突变、输入电压波动等工况下的动态性能与稳定性;④为实际硬件开发提供前期理论仿真与参数优化依据。; 阅读建议:使用者应具备一定的电力电子变换器基础知识和Simulink/MATLAB操作能力,建议在学习过程中结合相关文献深入理解控制策略的设计逻辑,并尝试修改电路参数或控制算法以观察系统响应变化,从而加深对变换器动静态特性的理解。

国央企创新负责人如何利用数智平台提升核心技术攻关与成果转化协同能力?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

科技中介服务机构如何借助平台实现服务模式的数智化升级?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

高校技术转移办公室人员如何高效完成技术成果的筛选与推介?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

里面有DoTweenPro

里面有DoTweenPro

bili-comments-sidebar-1.7.0.zip

扩展升级到 1.7.0。 这次主要改动: 一条笔记可以插入多个时间戳。 一条笔记可以截取多张画面。 可以连续点击「截取画面」,不需要清空编辑器。 编辑器中会显示所有待保存截图。 每张截图都可以单独移除。 已保存笔记中的所有时间戳都可以点击跳转。 已保存笔记中的所有截图都可以点击放大查看。 截图会显示对应的时间。 Markdown 导出会包含一条笔记中的全部截图。 兼容之前版本只有单张图片的旧笔记。 编辑区域纵向高度从原来的约 100px 增加到 220px。 笔记中的时间戳支持类似: [00:32] 看这一段 01:25 很重要 1:23:45 安装方式仍然是: 解压 ZIP。 打开 chrome://extensions/。 开启「开发者模式」。 移除旧版扩展。 点击「加载已解压的扩展程序」。 选择解压后的文件夹。 建议用新版本打开旧笔记测试一下。旧笔记会自动兼容读取,新保存的笔记会使用多截图格式。

三电平维也纳VIENNA双闭环控制整流器仿真(Simulink仿真实现)

内容概要:本文档详细介绍了一个基于Simulink的三电平维也纳(VIENNA)整流器双闭环控制系统仿真模型,重点实现了电压外环与电流内环的双闭环PI控制策略,并结合空间矢量脉宽调制(SVPWM)技术实现中点电位平衡控制。该模型全面涵盖了三相三电平整流器的数学建模、坐标变换(如abc/dq)、控制器设计、调制算法实现及系统稳定性分析,能够有效验证整流器在高功率因数、低谐波畸变和稳定直流电压输出方面的优异性能,适用于电力电子系统中的高性能整流应用研究与教学演示。; 适合人群:电力电子、电气工程及其自动化等相关专业的研究生、高校教师、科研人员以及从事新能源变换器、工业电源系统开发的工程技术人员。; 使用场景及目标:①深入理解三电平VIENNA整流器的工作原理与拓扑优势;②掌握双闭环PI控制器在dq坐标系下的设计方法与参数整定技巧;③学习SVPWM调制技术在中点电位平衡控制中的实现机制;④支撑科研课题、学位论文仿真验证、课程设计或实际工程项目的技术预研。; 阅读建议:建议结合《电力电子技术》《现代控制理论》等教材同步学习,重点关注仿真模型中各模块的信号流向与控制逻辑,建议动手调整PI参数、负载条件及电网扰动,观察动态响应波形,深入掌握系统鲁棒性与控制精度之间的权衡关系。

上一篇: LWN:让GNU C库的可调参数更安全!
下一篇: LWN:内存分层下的加权交错分配!
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值