
一句话看懂:Linux 7.2 内核正式移除了长期被视为安全隐患的 strncpy() 函数接口。这项历时六年、涉及 362 次提交的清理工作,意味着内核中不再使用 strncpy,转而采用更安全的替代函数,从根本上减少了因字符串拷贝引发的内存和数据损坏风险。
事件核心:发生了什么
据 Phoronix 报道,Linux 7.2 版本已完成对 strncpy API 的移除。strncpy() 函数用于复制指定字节数的字符串,但在 NUL 终止符处理上存在语义不直观、性能低效(冗余零填充)等问题,多年以来一直是内核中“持续不断的 bug 源头”。自 2020 年左右启动的清理工作,经过六年时间、360 多个补丁后,最终移除了所有用户及各 CPU 架构的实现代码。替代方案包括:用于 NUL 终止字符串的 strscpy()、带零填充的 strscpy_pad()、用于非 NUL 终止固定宽度字段的 strtomem_pad()、以及显式填充的 memcpy_and_pad() 等。
为什么重要
这一变化的核心意义在于安全性和代码健壮性。strncpy 的“反直觉”行为常导致缓冲区未正确终止,进而引发内存越界读写漏洞——这在操作系统内核中尤为危险。移除 strncpy 并非简单的 API 替换,而是对整个内核代码库的一次系统性安全升级。对于 AI 基础设施而言,Linux 内核是所有大模型训练和推理的底层根基,内核级别的安全改进直接降低了服务器运行时的崩溃和潜在攻击面。虽然对绝大多数 AI 应用开发者无感,但这代表了开源社区在基础软件质量控制上的长期承诺。
对用户/开发者/创作者的影响
普通用户与运维人员:升级到 Linux 7.2 内核后,底层系统的稳定性与安全性得到提升,尤其是在高负载或长时间运行场景下,因字符串操作导致的罕见内核 Bug 将更少发生。内核模块/驱动开发者:必须确保自己的代码不再使用 strncpy,而是选择 strscpy 等替代函数。目前公开信息显示,所有内核内用户均已迁移,但外部第三方驱动仍需自行适配。AI 硬件与算力平台:运行 GPU 加速或 FPGA 驱动的基础设施,如果依赖内嵌内核模块,需要验证与 Linux 7.2 的兼容性,避免因 API 移除导致编译失败。
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
值得关注的后续
1. 主流发行版(如 Ubuntu、RHEL、Debian)对 Linux 7.2 的采纳时间表,这决定了大多数生产环境受益的节奏。2. 是否有历史遗留的第三方模块出现兼容性问题,尤其是闭源驱动或特殊场景的内核补丁集。3. 此次清理的经验能否推广到其他类似的不安全 API(如 strlcpy),推动内核进一步标准化安全字符串处理接口。


