
大神教你線上怼人~
”“大神” Linus Torvalds 又來怼人了。據開源中國報道,近日,Linux 核心項目負責人 Linus Torvalds 删除了 AWS 工程師送出的一個更新檔,他認為這将導緻所有使用該更新檔的 Linux 使用者的 CPU 性能下降(無論他們是否使用英特爾 CPU) 。在回複該郵件時表示:
在我看來,這基本上是将緩存重新整理指令導出到使用者空間,并為程序提供了一種方式,可以說讓與這事情無關的其他人也慢了下來。換言之,據我所知,這就是瘋狂的 Intel 釋出了有缺陷的 CPU,它給虛拟化代碼帶來了問題(我對此并不太在意),但現在要因為它的問題影響到本來就沒有這些問題的 Linux 使用者,這是完全沒有意義的。我不想某個應用程式跑起來就像在說 ‘哦,我是一個特别的,漂亮的,如此嬌嫩的花,我想重新整理 L1D 上的每一個任務緩存,無論我在什麼 CPU 上,無論它是否有漏洞’。因為這個應用程式不僅會降低自身速度,還會降低其他應用程式的速度。
也就是說,漏洞确實存在,影響不大,但如果利用這個更新檔來修複反而會讓使用者的電腦變得更慢。同時,他也指出,Linus 對虛拟化的引用其實也是針對 AWS 的,AWS 和其他雲服務提供商一樣,銷售的虛拟 cpu 通常啟用了同步多線程(simultaneous multithreading,SMT)功能。
“在啟用 SMT 的情況下,任務排程是分布式進行的,是以說,在任務結束與新任務開始之間重新整理 L1D 緩存是非常愚蠢的。”
對此,有網友表示贊成,認為這是典型的 AOE 更新檔,打更新檔之後,無論是 AMD 還是 Intel ,都會降低性能,不能通過是正常的。
也有些網友純碎是來吃瓜的,表示 Linus 又口吐芬芳了,我的青春又回來了!(手動狗頭)
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 與主記憶體之間的高速資料緩沖區。
其中 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 是一種自由和開放源代碼的類 UNIX 作業系統。該作業系統的核心由 Linus Benedict Torvalds 在 1991 年 10 月 5 日首次釋出。在加上使用者空間的應用程式之後,成為 Linux 作業系統。
但是,偉大的人總有點怪脾氣,這位開源之父就經常因為講話帶有情緒,甚至是因為帶有髒話的意見而飽受非議。但大多數情況下 Linus Torvalds 憤怒的主要原因都與技術有關,并不針對人。 比如,2018 年,為了修補 Spectre 漏洞,Intel 工程師提供了一個間接分支限制推測(indirect branch restricted speculation, IBRS)功能的更新檔。Linus Torvalds 當時就在郵件清單中公開指出 IBRS 會造成系統性能大幅降低,直言該更新檔“就是徹徹底底的垃圾”,“Intel 真的要做這個 X 一樣的東西?”
再比如,他曾經是這樣評價C++:“坦白的說,C++ 是一個非常可怕的語言,并且很多不合格的程式員都在使用它,這讓它變得更可怕。即使你用C語言不做任何事情也可以把那些用 C++ 的程式員幹掉。”甚至連 windows 也沒逃過他的吐槽。在一次采訪中,記者問他對微軟 Windows 作業系統的看法時,他回答道:Windows 作為一個作業系統,确實打造了許多還算 OK 的應用,其中有些還是非常不錯的。但是從作業系統跟這個角度來看的話,Windows 真的是一個很爛的作業系統。從道德角度來看,他的影響會更大些。微軟确實是在影響着世界,但是我覺得他們不應該涉及那麼廣,隻顧着賺錢。”還有,在一次課堂上,當有學生問及英偉達晶片相關的問題時,Linus 更是簡單粗暴,并且直接對着鏡頭來了這麼個動作:
盡管他自己也意識到了自己的這個壞毛病,曾經還表示閉關檢討,但網友們認為這也并非什麼大問題,畢竟比起他做出的貢獻,這些反而是大神的人格魅力。
關注我,領資源幹貨
關注 程式員幹貨點個在看,小編感恩大家❤️