Intel CPU BUG:迫使重新设计 Linux 和 Windows,可能电脑性能会下降 30%

2018-01-03 21:16:34 +08:00
 dyxang
英特尔处理器芯片爆出了一个根本性的设计缺陷,已迫使业界大刀阔斧地重新设计 Linux 内核和 Windows 内核,旨在消除这个芯片层面的安全缺陷。

广大程序员正竞相全面改动开源 Linux 内核的虚拟内存系统。与此同时,预计微软会在即将到来的周二补丁日( Patch Tuesday )公开宣布对其 Windows 操作系统所作的必要改动:这些更新已发给在去年 11 月和 12 月运行快速更新通道( fast-ring )的 Windows Insider 版本的 beta 测试人员。

至关重要的是,针对 Linux 和 Windows 的这些更新将会给英特尔产品的性能带来影响。实际影响仍在测试当中,不过我们估计性能大概会因此降低 5%到 30%,这取决于具体的任务和处理器型号。最近面市的英特尔芯片拥有 PCID 等功能特性,可以缓解性能受影响这个问题。

https://f11.baidu.com/it/u=3351647494,3190822991&fm=173&s=0D82FD1205585DC80CE525DE0000C0B3&w=627&h=320&img.JPEG&access=215967316

据悉,该缺陷存在于过去十年生产的现代英特尔处理器中。它让普通的用户程序(从数据库应用软件到互联网浏览器中的 JavaScript )在一定程度上得以发现受保护内核内存里面的数据。
解决方法就是,使用所谓的内核页表隔离( KPTI )功能,将内核的内存与用户进程完全分离开来。Linux 内核开发团队一度考虑过 Forcefully Unmap Complete Kernel With Interrupt Trampolines (又名 FUCKWIT ),让你了解这个问题对开发人员来说有多烦人。
只要运行中的程序需要执行任何有用的操作,比如写入到文件或建立网络连接,它就要暂时将处理器的控制权交给内核以便执行任务。为了尽可能快速而高效地从用户模式切换到内核模式,再切换回到用户模式,内核存在于所有进程的虚拟内存地址空间中,不过这些程序看不见内核。需要内核时,程序进行系统调用,处理器切换到内核模式,进入内核。完成后,CPU 被告知切换回到用户模式,重新进入进程。在用户模式下,内核的代码和数据依然看不见,但存在于进程的页表中。
不妨把内核想象成坐在云上的上帝,俯视地球。上帝就在那里,芸芸众生都看不到它,但他们可以向上帝祈祷。
这些 KPTI 补丁将内核移到一个完全分离开来的地址空间,那样不仅运行中的进程看不见它,它甚至根本就不在那里。实际上,不应该需要这个,但英特尔芯片中存在的缺陷显然让内核访问保护机制可以被人以某种方式绕过。
这种分离的缺点在于,针对每次系统调用和来自硬件的每次中断,不断地在两个独立的地址空间之间来回切换,这从时间方面来看开销相当大。这种上下文切换不会瞬间发生,并迫使处理器倒出缓存数据,并从内存重新装入信息。这就增加了内核的开销,减慢了计算机的运行速度。
因此,你那搭载英特尔芯片的机器运行起来会变慢。

微信全文 http://ffff.im/BjVU
7677 次点击
所在节点    程序员
41 条回复
xuanboyi
2018-01-03 21:45:18 +08:00
这标题,uc 今日头条见
aalska
2018-01-03 21:50:42 +08:00
@xuanboyi 重新设计内核 看上去好像也和重新设计 linux,window 没什么毛病
dyxang
2018-01-03 21:55:55 +08:00
@xuanboyi 中华文化博大精深,用词要看个人理解😓
stabc
2018-01-03 22:03:08 +08:00
确实标题党
Nitroethane
2018-01-03 22:17:35 +08:00
@stabc @xuanboyi 没有标题党吧,本来就是这样啊
28661
2018-01-03 22:20:24 +08:00
个人用的话,都会自动打补丁吧。为什么看其他网站还有很多人都说对个人用没影响?
neoblackcap
2018-01-03 22:23:59 +08:00
这个新闻今天看了,标题的确很符合内容,没有夸大。毕竟就算是 10 年前的 CPU 也会影响,说对内核没有影响完全不可能。毕竟是 KPIT 这样一个重大改动。不管是什么程序都会被影响到,真是上了 Intel 的贼船了。还有新闻报道 Intel 的 CEO 最近抛了大量股票,感觉是东窗事发了。
dyxang
2018-01-03 22:28:59 +08:00
@28661 不仅是个人用,“攻击影响常见的虚拟化环境,包括亚马逊 EC2 和谷歌计算引擎……
微软的 Azure 云不光运行 Windows,还运行大量 Linux。”
还有就是我也听到说游戏用主机没有影响,也不知道为什么。
hanru
2018-01-03 22:34:11 +08:00
微信原文,全文翻译自 The Register 的文章,没有说明来源。
jones
2018-01-03 23:24:48 +08:00
我想知道的是 OSX 内核是否也受影响,苹果是不是也会发布更新,尤其是会不会为 10.11.x 这个前两代的系统发布更新
miketeam
2018-01-03 23:27:33 +08:00
我今天刚下单买苹果笔记本,看来要退货了
huclengyue
2018-01-03 23:48:35 +08:00
@jones osx 也有影响
cest
2018-01-04 00:16:31 +08:00
@dyxang ps4 xb1 都是 amd
ItzhacLea
2018-01-04 03:44:32 +08:00
@jones
@huclengyue

macOS 10.13.2 已經啓用了「 Double Map 」,等同於 Linux 的 KPIT。

ref: https://twitter.com/aionescu/status/948609809540046849
lsmgeb89
2018-01-04 04:06:14 +08:00
好像最新一代不受影响,应该不太标题,用户态到内核态切换的开销确实很大。
RqPS6rhmP3Nyn3Tm
2018-01-04 04:39:49 +08:00
农企翻身了!农企又翻身了!
农企翻过去了!
msg7086
2018-01-04 05:53:26 +08:00
@lsmgeb89 看别人讨论的情形,最新一代假如已经设计完了的话估计要返工了,不知道什么时候才会发布了……
grikr
2018-01-04 07:12:39 +08:00
点名批评一楼,四楼,什么都不查一下上来就标题党? zz 吗?
lisonfan
2018-01-04 07:16:44 +08:00
@BXIA #16 英特尔发新闻稿说 AMD 和 ARM 也是一样的
clavichord93
2018-01-04 08:15:30 +08:00
@lisonfan AMD 在设计之初就是双页表设计的,所以肯定没影响。ARM64 就不好说了…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/419831

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX