$英特尔(INTC)$ 日前,英特尔处理器被曝存在重大底层设计缺陷,迫使 Linux 和 Windows 内核需要展开复杂的重新设计,以消除芯片层面的安全漏洞。 Linux 程序员正在加紧检修开源内核的虚拟内存系统,微软也预计在下周二的补丁中对 Windows 系统进行更新和调整。 关键问题在于,Linux 和 Windows 系统的更新会对英特尔产品的性能造成影响。虽然具体影响还有待确定,但预计速度会放慢 5% 至 30%,具体取决于处理任务类型和处理器模式。英特尔最近配备了 PCID 功能的芯片,也预计会受其影响造成性能降低。 该漏洞存在于英特尔的 x86 硬件之中,无法通过微码升级来解决,必须在系统层面通过安装软件、或者购买没有设计缺陷的新处理器来解决——所以包括苹果 64 位 macOS 等在内的其他系统也需要进行类似的更新和调整。 目前,英特尔芯片漏洞的具体细节尚未披露,预计会在下周二的微软补丁发布日公布。虽然 Linux 内核的修补程序可供所有人查看,但源代码中的注释已被改动以混淆该问题。 漏洞可能造成的影响 该 bug 存在于过去十年中所生产的现代英特尔处理器中,它能在一定程度上允许普通的用户程序识别受保护区域的内核布局及内容——从数据库应用到网页浏览器中使用的 JavaScript。 一般的解决方法是使用 KPTI(内核页面表)隔离,将内核的内存与用户进程完全分开。如果需要执行写入文件或打开网络连接等操作,就必须暂时将处理器的控制权交给内核来执行。为了尽可能快速高效地从用户模式转换到内核模式并最终回到用户模式,内核需要放置于进程的虚拟内存地址空间中(程序不可见)。当需要内核时,程序进行系统调用,处理器切换到内核模式并进入内核。完成后,告知 CPU 切换回用户模式,并重新进入该过程。在用户模式下,内核的代码和数据不可见,但会在进程的页表中显示。 这些 KPT