天天看點

怼你沒商量!Linux之父手删AWS 工程師送出的更新檔,表示這是愚蠢的行為,網友:我的快樂又回來了...

作者:劉琳

大神教你線上怼人~

“大神” Linus Torvalds 又來怼人了。

據開源中國報道,近日,Linux 核心項目負責人 Linus Torvalds 删除了 AWS 工程師送出的一個更新檔,他認為這将導緻所有使用該更新檔的 Linux 使用者的 CPU 性能下降(無論他們是否使用英特爾 CPU) 。在回複該郵件時表示:

怼你沒商量!Linux之父手删AWS 工程師送出的更新檔,表示這是愚蠢的行為,網友:我的快樂又回來了...

在我看來,這基本上是将緩存重新整理指令導出到使用者空間,并為程序提供了一種方式,可以說讓與這事情無關的其他人也慢了下來。

換言之,據我所知,這就是瘋狂的 Intel 釋出了有缺陷的 CPU,它給虛拟化代碼帶來了問題(我對此并不太在意),但現在要因為它的問題影響到本來就沒有這些問題的 Linux 使用者,這是完全沒有意義的。

我不想某個應用程式跑起來就像在說 ‘哦,我是一個特别的,漂亮的,如此嬌嫩的花,我想重新整理 L1D 上的每一個任務緩存,無論我在什麼 CPU 上,無論它是否有漏洞’。因為這個應用程式不僅會降低自身速度,還會降低其他應用程式的速度。

也就是說,漏洞确實存在,影響不大,但如果利用這個更新檔來修複反而會讓使用者的電腦變得更慢。

同時,他也指出,Linus 對虛拟化的引用其實也是針對 AWS 的,AWS 和其他雲服務提供商一樣,銷售的虛拟 cpu 通常啟用了同步多線程(simultaneous multithreading,SMT)功能。

“在啟用 SMT 的情況下,任務排程是分布式進行的,是以說,在任務結束與新任務開始之間重新整理 L1D 緩存是非常愚蠢的。”

對此,有網友表示贊成,認為這是典型的 AOE 更新檔,打更新檔之後,無論是 AMD 還是 Intel ,都會降低性能,不能通過是正常的。

怼你沒商量!Linux之父手删AWS 工程師送出的更新檔,表示這是愚蠢的行為,網友:我的快樂又回來了...

也有些網友純碎是來吃瓜的,表示 Linus 又口吐芬芳了,我的青春又回來了!(手動狗頭)

怼你沒商量!Linux之父手删AWS 工程師送出的更新檔,表示這是愚蠢的行為,網友:我的快樂又回來了...

1

新型進攻方式 Snoop 

那麼,讓大神吐槽的這個漏洞更新檔是啥?

據開源中國介紹,這種新型進攻名為“探聽輔助 L1 資料采樣進攻”,簡稱 Snoop (CVE-2020-0550)。

今年 3 月,來自 AWS 的軟體工程師 Pawel Wieczorkiewicz 發現了 Intel 處理器的這一漏洞,稱它可能會洩露 CPU 内部存儲器或緩存中的資料,涉及 CPU 包括 Intel 旗下流行的 Xeon 和 Core 系列處理器。Pawel 迅速向 Intel 報告了此問題,随後該漏洞被 Intel 定位為中等嚴重性漏洞。 

Snoop 進攻利用 Intel CPU 多級緩存、緩存一緻性和總線監聽等特性,通過位于 CPU 核心中的一級資料緩存(L1D),通過“總線監聽”(bus snooping)功能 —— 在 L1D 中修改資料時發生的緩存更新操作,将資料從 CPU 中洩漏出來。 

是以,這個漏洞到底重不重要呢?

在講這個問題之前,先要明白三級緩存的概念。

百度百科顯示,通常,計算機會采用三級緩存的設計來提高 CPU 的運作效率,三級緩存包括 L1 一級緩存、L2 二級緩存、L3 三級緩存,這些緩存都內建在 CPU 内,它們的作用是作為 CPU 與主記憶體之間的高速資料緩沖區。

怼你沒商量!Linux之父手删AWS 工程師送出的更新檔,表示這是愚蠢的行為,網友:我的快樂又回來了...

其中 L1 最靠近 CPU 核心;L2 其次;L3 再次。運作速度方面:L1 最快、L2 次快、L3 最慢;在執行一項任務時,CPU 會先在最快的 L1 中尋找需要的資料,找不到再去找次快的 L2,還找不到再去找 L3,L3 都沒有才去記憶體找。 

一級緩存又可以分為一級資料緩存(Data Cache,D-Cache,L1D)和一級指令緩存(Instruction Cache,I-Cache,L1I),分别用于存放資料及執行資料的指令解碼,兩者可同時被 CPU 通路,減少了 CPU 多核心、多線程争用緩存造成的沖突,提高了處理器的性能。

也就是說,這個漏洞一旦被進攻者利用就會直接進攻電腦的核心,是以,Pawel 認為這一進攻方式是危險的,更新檔是必要的。

但 Linus Torvalds 卻不這樣認為。 

Intel 官方也給出了解釋,表示這種新進攻很難實施,并且不會洩露大量資料,因為 L1D 緩存中的資料非常有限,并且隻有在任務運作時調用資料的短暫時間内才會存在。

我們不認為 Snoop 進攻在可信賴的作業系統環境下是一種實用的進攻方法,因為要利用這一漏洞需要同時滿足很多苛刻的條件,比如進攻的時間要正好與使用者打開程式的時間吻合,且程式調用的資料正好是進攻者想要竊取的資料。

至于這個更新檔是否真的沒多大用處,我們也隻能等待時間來證明了。

2

“暴脾氣”的開源之父:Linus Torvalds

在開源世界,Linus Torvalds 是個如雷貫耳的名字。技術天才、大神、開源領袖……他開發的 linux 對開源軟體運動功不可沒,是所有 Geek 們的最愛。

怼你沒商量!Linux之父手删AWS 工程師送出的更新檔,表示這是愚蠢的行為,網友:我的快樂又回來了...
Linux 是一種自由和開放源代碼的類 UNIX 作業系統。該作業系統的核心由 Linus Benedict Torvalds 在 1991 年 10 月 5 日首次釋出。在加上使用者空間的應用程式之後,成為 Linux 作業系統。

但是,偉大的人總有點怪脾氣,這位開源之父就經常因為講話帶有情緒,甚至是因為帶有髒話的意見而飽受非議。但大多數情況下 Linus Torvalds 憤怒的主要原因都與技術有關,并不針對人。 

比如,2018 年,為了修補 Spectre 漏洞,Intel 工程師提供了一個間接分支限制推測(indirect branch restricted speculation, IBRS)功能的更新檔。Linus Torvalds 當時就在郵件清單中公開指出 IBRS 會造成系統性能大幅降低,直言該更新檔“就是徹徹底底的垃圾”,“Intel 真的要做這個 X 一樣的東西?” 

怼你沒商量!Linux之父手删AWS 工程師送出的更新檔,表示這是愚蠢的行為,網友:我的快樂又回來了...

再比如,他曾經是這樣評價C++:“坦白的說,C++ 是一個非常可怕的語言,并且很多不合格的程式員都在使用它,這讓它變得更可怕。即使你用C語言不做任何事情也可以把那些用 C++ 的程式員幹掉。”

甚至連 windows 也沒逃過他的吐槽。

在一次采訪中,記者問他對微軟 Windows 作業系統的看法時,他回答道:Windows 作為一個作業系統,确實打造了許多還算 OK 的應用,其中有些還是非常不錯的。但是從作業系統跟這個角度來看的話,Windows 真的是一個很爛的作業系統。從道德角度來看,他的影響會更大些。微軟确實是在影響着世界,但是我覺得他們不應該涉及那麼廣,隻顧着賺錢。”

還有,在一次課堂上,當有學生問及英偉達晶片相關的問題時,Linus 更是簡單粗暴,并且直接對着鏡頭來了這麼個動作:

怼你沒商量!Linux之父手删AWS 工程師送出的更新檔,表示這是愚蠢的行為,網友:我的快樂又回來了...

盡管他自己也意識到了自己的這個壞毛病,曾經還表示閉關檢討,但網友們認為這也并非什麼大問題,畢竟比起他做出的貢獻,這些反而是大神的人格魅力。

怼你沒商量!Linux之父手删AWS 工程師送出的更新檔,表示這是愚蠢的行為,網友:我的快樂又回來了...

參考來源:

  • https://www.zdnet.com/article/linus-torvalds-talks-frankly-about-intel-security-bugs/

繼續閱讀