正文
Google提议用“页表检查”功能应对Linux内核的内存崩坏问题
上周,Google 工程师发现了一个引用数据下溢(reference count underflow)问题,且一路可追溯到 2017 年的 Linux 4.14 内核。这个偶然发现的问题,会导致内存从一个进程泄露到另一个进程。为化解此类内存缺陷,Google 提出了一个全新的“页表检查”(Page Table Check)解决方案。问题从 Linux 4.14 延续到 Linux 5.16(来自:Kernel.org)除了 Google,近期还有不少合并提交修复了其它引用计数问题。但若“页表检查”功能推广开来,Linux 内核就会在页表条目插入 / 删除时,检查是否存在非法共享。若检测到内存遭到破坏,内核也会以崩溃作为回应。此外需要注意的是,额外检查会导致一些性能影响、以及额外的内存资源开销。基于此,“页表检查”功能不会在默认情况下开启。有需要的用户,需在手动激活 PAGE_TABLE_CHECK 的情况下进行构建。然后在运行时,还要动用 page_table_check=on 这个内核启动参数。感兴趣的朋友,可移步至内核邮件公告列表(LKML)获取更多细节。最后,作为单独补丁系列的一部分,我们还于本周二迎来了一组页面强化(hardening page _refcoount)。参与其中的 Google 工程师,希望改进围绕引用计数代码的调试、并减少内存破坏等相关问题。
若无特殊标注皆为互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
还没有评论,来说两句吧...