使用Checked C重构FreeBSD内核:安全与效率的双赢

0 下载量 39 浏览量 更新于2024-08-25 收藏 192KB PDF 举报
"Refactoring the FreeBSD Kernel with Checked C - 2020 是一篇由 Junhan Duan、Yudi Yang、Jie Zhou 和 John Criswell 等人撰写的计算机科学论文,发表于罗切斯特大学计算机科学系。该研究关注了现代操作系统内核普遍采用C语言编程的问题,这使得它们易受缓冲区溢出和缓冲区读取攻击。Microsoft针对这一问题开发了一种名为Checked C的C语言扩展,通过静态分析和运行时检查插入,旨在防止空指针解引用和空间内存安全错误。 文章的核心内容是作者们对FreeBSD内核代码的重构实践,他们将部分系统调用实现、UDP和IP网络功能的代码转换为使用Checked C特性。重构工作由两名研究生历时约三个月完成,包括系统调用处理、网络包(mbuf)实用程序以及IP和UDP处理代码。研究发现,尽管进行了这样的改造,Checked C并未带来显著的性能损失或代码大小增加,证明了这种安全增强技术在实际操作系统的可接受性。 通过这项实证研究,作者们评估了Checked C在操作系统内核中的适用性和效率,为其他开发者提供了一个关于如何在保证代码安全性的前提下进行代码重构的案例。这对于理解如何在现代操作系统开发中平衡安全和性能具有重要意义,特别是对于那些致力于提高系统稳定性和减少潜在安全漏洞的开发者来说,Checked C提供了一种值得考虑的解决方案。" 本文不仅探讨了技术细节,还强调了在实际项目中的实施步骤和结果,为软件工程实践者提供了有益的经验教训,尤其是在处理关键系统代码时如何采用更安全的编程语言特性。这篇论文是关于C语言安全改进、系统级代码重构和性能评估的重要参考资料。