在2018年4月的时候就有消息指出,GCC 正在准备弃用英特尔内存保护扩展(Memory Protection Extensions,MPX),而英特尔也不再维护 MPX 的代码,原因就是用户量极少。
在最近一次代码提交中,GCC 完全删除了 MPX 涉及到的42014行代码及超过500个文件,这意味着 GCC 9 不再支持英特尔内存保护扩展 MPX。
英特尔 MPX 旨在通过检查指针引用等来提供更好的软件安全性,以防止缓冲区溢出。尽管采用率并不高,但是自从英特尔 Skylake CPU 以来,MPX 支持一直都存在,并且近年来在 Linux 协议栈中得到了广泛应用。
有些人更倾向于使用 AddressSanitizer 和其他软件替代品来提高代码安全性,Linux 内核开发人员也一直在考虑从 Linux 中将 MPX 移除,像红帽和 SUSE 等开发人员希望放弃 MPX 以减轻维护负担。如今 GCC 从代码中移除了 MPX,那么接下来,Linux 内核中移除 MPX 也应该是可以确定的了,毕竟 MPX 支持是取决于编译器的。
相关主题 |