Memory Tagging and how it improves C/C++ memory safety

Memory Tagging and how it improves C/C++ memory safety
复制标题

DOI:
--
复制
发表时间:
2018-02
期刊:
ArXiv
影响因子:
--
通讯作者:
Kostya Serebryany;Evgenii Stepanov;A. Shlyapnikov;Vlad Tsyrklevich;Dmitry Vyukov
Kostya Serebryany;Evgenii Stepanov;A. Shlyapnikov;Vlad Tsyrklevich;Dmitry Vyukov
中科院分区:
其他
文献类型:
--
作者:
Kostya Serebryany;Evgenii Stepanov;A. Shlyapnikov;Vlad Tsyrklevich;Dmitry Vyukov

文献摘要

被引文献

相似文献

C和C++中的内存安全问题在很大程度上仍然没有得到解决。一种通常被称为“内存标记”的技术如果在硬件中实现并具有合理的开销,则可以显著改善这种情况。本文介绍了两个现有的实现内存标记:一个是在ARM的全硬件实现,另一个是部分硬件辅助编译器为基础的工具AArch64。我们描述的基本思想,评估两个实现,并解释他们如何提高内存安全。本文旨在发起对内存标记的更广泛讨论,并激励CPU和操作系统供应商在不久的将来增加对它的支持。
Memory safety in C and C++ remains largely unresolved. A technique usually called "memory tagging" may dramatically improve the situation if implemented in hardware with reasonable overhead. This paper describes two existing implementations of memory tagging: one is the full hardware implementation in SPARC; the other is a partially hardware-assisted compiler-based tool for AArch64. We describe the basic idea, evaluate the two implementations, and explain how they improve memory safety. This paper is intended to initiate a wider discussion of memory tagging and to motivate the CPU and OS vendors to add support for it in the near future.