惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
G
Google Developers Blog
博客园 - 司徒正美
J
Java Code Geeks
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
D
Docker
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
腾讯CDC
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
C
Check Point Blog
M
MIT News - Artificial intelligence
Jina AI
Jina AI
I
InfoQ
雷峰网
雷峰网
The Cloudflare Blog
美团技术团队
Engineering at Meta
Engineering at Meta

News Hacker | 极客洞察

Rockstar GTA 6 团队组工会:薪酬透明、灵活工时、反 crunch 古罗马公寓:日常、城市规划与沉浸式体验 AI时代的专家价值:验证、经验与大学角色 Chad Whitacre 退 tech 转离线:Home Depot、印刷杂志、东正教社区 本地 Git remote:共享、隔离与 GitHub 误解 AI只该做琐事,别替代人情与创作 AISlop:检测 AI 生成代码坏味道的多语言 CLI 英国低价值采购系统:每月零申报的官僚负担 郁金香狂热:泡沫神话与理性争议 用 LLM 写代码,也要让人比模型更累 AI会重演前端“失去的十年”吗? AI 编程提产却压缩思考,工程质量与协作承压 Cloudflare 多 agent AI 代码评审引发成本与流程争议 500K AI电影“戛纳首映”被质疑只是公关噱头 8×H200跑2B模型到3k tok/s,“标准GPU”标题引争议 防水夹克演化:材料回潮、帽兜变迁与AI争议 意大利人与荷兰人教学时共享手势本能 Claude Code 隐藏配置考古:文档滞后、版本易碎与自动执行争议 大众汽车用 client assertion 阻断 Home Assistant 接入 Zot 支持 Claude Opus 4.8,评论聚焦 Claude Code 计费与 harness 神秘 Hy3 LLM 在 OpenRouter 霸榜:便宜、刷量与隐私争议 佛州 Blue Origin New Glenn 静态点火爆炸,堪比 N1 联网汽车监控升级:数据售卖、监管失灵与断网自保 Blue Origin New Glenn静态点火爆炸,发射台损毁恐延一年 住宅建造为何难规模化:地段、法规、偏好与收入 十种基础云:观云分类、光学现象与云计算误会 据称被 Shopify 收购后,Garnix 关停并开源 Bot Company疑借Airbnb私测家务机器人,致房屋受损 Coalton:Common Lisp 上的静态类型 Lisp,讨论集中在上手与类型建模 ktx:面向 data agents 的开源可执行上下文层,自动生成语义层与业务 wiki
Linux OOM killer 误杀 xlock,引发锁屏安全与 overcommit 争论
2026-06-01 · via News Hacker | 极客洞察

🎯 讨论背景

这条讨论围绕一项名为 “OOM_pardon, a.k.a. don't kill my xlock” 的 Linux 内核补丁展开,核心问题是:当系统陷入内存耗尽时,OOM killer 是否应该避开像 xlock 这样的屏幕锁定进程。xlock 是 X11(老式图形系统)里的锁屏程序,如果它被杀掉,某些实现可能会导致会话直接解锁,因此争论不只是“保活”而是“安全边界是否会失败打开”。评论把问题延伸到 Linux 的 memory overcommit(超额承诺内存)和按需分页机制:即使某进程没在“申请内存”的那一刻出问题,也可能在之后的页面访问时触发 OOM。讨论中还提到 `oom_score_adj=-1000` 这类现成的 per-process 调整手段,以及 `mlockall(2)`、`madvise` 等让关键程序更不容易因缺页而死的方法。

📌 讨论焦点

浏览器总先被杀

有人吐槽到了 2026 年,Linux 的 OOM killer 依然很难优先干掉 Firefox,而不是别的进程。评论里也延伸到 Chrome 经常“跑飞”占满内存,最后只能靠手动 `killall -9 chrome` 处理。这个分支更像是对桌面浏览器内存膨胀的日常抱怨,顺带调侃 OOM 机制的选择结果并不总是符合直觉。

[来源1] [来源2]

OOM 受害者选择应更合理

一部分人主张,应该让真正尝试分配内存的进程自己崩掉,而不是让无辜的关键进程被随机挑中。反对者指出,Linux 的 overcommit 和按需缺页会让 OOM 在“访问页面”时才爆发,因此触发点未必是最近申请内存的进程。若没有某种选择机制,就会变成“随机死一个”,也就是所谓的 OOM roulette。

[来源1] [来源2] [来源3] [来源4] [来源5]

锁屏进程需要失败关闭而非失败打开

有人认为 xlock 这类关键锁屏程序应该用静态内存、避免再次分配,并尽量通过 `mlockall(2)` 之类方法减少被换出或触发缺页的机会。也有人直接指出,xlock 崩溃后竟然会把 X11 会话解锁,这在安全上非常离谱,因为锁屏不该只是认证桌面的一个普通图层。讨论进一步上升到安全原则:如果系统安全依赖锁屏不崩,那这个系统本身就不够安全,锁屏应当 fail closed,而不是 fail open。

[来源1] [来源2] [来源3] [来源4] [来源5]

现有 per-process OOM 控制与补丁必要性

有人提到其实已经可以通过把进程的 `oom_score_adj` 设为 `-1000` 来避免被 OOM killer 杀掉,因此最初对这个补丁的必要性有些困惑。这个观点暗示,问题可能不在于完全没有控制手段,而在于锁屏程序是否默认正确使用了这些机制,以及补丁是不是只是把已有能力做成更明确的保护策略。也就是说,争论焦点从“能不能免死”变成了“该不该默认特赦这类进程”。

[来源1]

📚 术语解释

OOM killer: Linux 在内存严重不足时触发的进程回收机制,用来挑选并杀死某个进程以释放内存。

overcommit: Linux 允许先“承诺”超过物理内存的内存分配策略,真正用到页面时才可能暴露内存不足。

xlock: X11 环境下的屏幕锁定程序,负责在会话上锁后阻止未授权访问。

oom_score_adj: Linux 中用于调整进程被 OOM killer 选中概率的参数,数值越低通常越不容易被杀。

mlockall(2): 一个系统调用,可将进程内存锁定在 RAM 中,减少被换出到 swap 的可能。

MCL_ONFAULT: `mlockall` 的一个标志,表示在页面首次缺页时再锁定,常用于减少启动时的内存压力。

MADV_POPULATE_*: `madvise` 的一组提示,用于预先触发页面填充,降低运行时因缺页导致的意外失败。