Andrej Karpathy的RSS订阅清单

← Andrej Karpathy的RSS订阅清单26. Sept. · 8 Min.

systemd作者警告:「程序活着,不代表判断正确」

systemd作者警告:「程序活着,不代表判断正确」26. Sept.8 Min.

一项看似温和的 systemd 安全设置 `ProcSubset=pid`,可能不会让服务崩溃,却会悄悄切断程序对 CPU 配额、内存策略、文件系统能力等运行环境的感知。Go、Python、Rust 以及 `ls`、`mkdir` 等常见工具,都可能因此采用错误的默认判断。

本期深度解析 Chris Siebenmann 的观察:真正危险的加固失败模式,并非“拒绝运行”,而是程序仍在运行、却在错误前提下运行。当负载升高后,性能抖动、CPU throttling、OOM 与功能降级才可能集中显现。

原文链接:

https://utcc.utoronto.ca/~cks/space/blog/linux/ProcGetsUsedByPrograms

原文标题:Linux programs look at things in /proc more than you'd expect

主要内容:

• `ProcSubset=pid` 会隐藏大量 `/proc` 系统信息,提升隔离性,却可能改变程序的环境探测逻辑。

• Go 运行时会结合 cgroup 的 `cpu.max` 等信息决定并发能力;信息缺失可能导致线程数与实际 CPU 配额不匹配。

• Python、Rust 工具链及基础命令都会在启动或运行时读取 `/proc`,这些访问往往发生在应用业务代码执行之前。

• 程序读不到环境信息时,常常不会报错,而是回退到看似合理的默认策略,埋下性能与稳定性隐患。

• systemd 的隔离粒度可能比 Linux audit 的观测粒度更细,使团队难以准确验证某项限制是否改变了服务语义。

推荐理由: