整理|鄭麗媛
出品 | CSDN(ID:CSDNnews)
“這玩意兒必須被干掉!” “別讓所有人都看到這個(gè)‘惡心’的東西,讓整個(gè)源碼樹變得一團(tuán)糟!”
沒錯(cuò),Linux 之父 Linus Torvalds 又“發(fā)飆”了!
這一次,Torvalds 的怒火主要集中在 Linux 6.15 版本中的一段測(cè)試代碼——hdrtest。他在郵件中直言不諱地表達(dá)了不滿,甚至用上了 “disgusting(惡心)” 和 “turd(垃圾文件)” 這樣的詞匯——那么,hdrtest 究竟是什么?


具體發(fā)生了什么?
最近,Linux 6.15 的大規(guī)模開源圖形驅(qū)動(dòng)(DRM)更新被合并到內(nèi)核代碼倉庫,然而這次合并卻引發(fā)了一場(chǎng)風(fēng)波:Torvalds 在合并代碼后,發(fā)現(xiàn)了一段新的 hdrtest 代碼,而它的存在不僅拖慢了內(nèi)核構(gòu)建速度,還會(huì)在系統(tǒng)中留下“垃圾文件”。
這讓 Torvalds 憤怒不已,于是在 Linux 內(nèi)核開發(fā)郵件列表上發(fā)表了一封措辭極具其個(gè)人特色的郵件,其中寫道:
“我完成了拉取,解決了一些(簡(jiǎn)單的)沖突,但我發(fā)現(xiàn)里面竟然包含了惡心的'hdrtest'代碼: (a)拖慢構(gòu)建速度,因?yàn)檫@玩意兒被納入了 allmodconfig 的常規(guī)構(gòu)建,而不是作為一個(gè)按需運(yùn)行的單獨(dú)測(cè)試工具。 (b)在 include 目錄里留下了隨機(jī)的 hdrtest 垃圾文件?!?/blockquote>更讓 Torvalds 惱火的是,他發(fā)現(xiàn)這些“垃圾文件”不僅影響了 Git 操作,還破壞了 Linux 內(nèi)核開發(fā)中常用的文件名補(bǔ)全功能,讓開發(fā)體驗(yàn)大打折扣。對(duì)此,Torvalds 憤怒質(zhì)問道:“為什么要把這個(gè)測(cè)試代碼作為常規(guī)構(gòu)建的一部分?” “別讓所有人都看到這個(gè)“惡心”的東西,讓整個(gè)源碼樹變得一團(tuán)糟!”
打開網(wǎng)易新聞 查看精彩圖片hdrtest 代碼是什么,為何激怒 Torvalds?
許多開發(fā)者在看到 Torvalds 的郵件后,第一反應(yīng)是:“HDR 代碼?是與 Linux 桌面高動(dòng)態(tài)范圍(HDR)顯示技術(shù)相關(guān)的新測(cè)試?”——事實(shí)并非如此。
hdrtest 代碼并不是 “高動(dòng)態(tài)范圍(High Dynamic Range)” 相關(guān),而是與 C 語言“頭文件(Header Files)” 相關(guān)的測(cè)試工具。它主要用于 Intel Xe 內(nèi)核驅(qū)動(dòng),目的是檢查 DRM 頭文件的完整性,確保它們可以正確通過 kernel-doc 規(guī)范。
雖然這個(gè)測(cè)試代碼本身有其技術(shù)價(jià)值,但按照 Torvalds 的說法,它也帶來了不少問題:
(1)它被強(qiáng)制納入內(nèi)核的常規(guī)構(gòu)建流程,導(dǎo)致所有 Linux 內(nèi)核開發(fā)者在編譯時(shí)都要額外運(yùn)行它,浪費(fèi)時(shí)間。
(2)它會(huì)在 include 目錄下留下許多無用的測(cè)試文件,而這些文件沒有被 .gitignore 忽略,導(dǎo)致 Git 提示開發(fā)者有未跟蹤的文件,影響工作流。
(3)它還破壞了終端的文件名補(bǔ)全功能,讓開發(fā)者在使用 Bash 進(jìn)行文件操作時(shí)遇到不必要的干擾。
換句話說,這段 hdrtest 代碼本意是為了優(yōu)化 Linux 內(nèi)核開發(fā)體驗(yàn),但其實(shí)現(xiàn)方式太過粗暴,反而惡化了開發(fā)體驗(yàn),最終觸怒了 Torvalds——要知道,這位大神平時(shí)對(duì)爛代碼的容忍度本就極低。
打開網(wǎng)易新聞 查看精彩圖片Torvalds 的解決方案:自己玩去,別影響別人!
面對(duì)這個(gè)問題,Torvalds 并沒有給 hdrtest 留下任何回旋余地,他明確表示:
“如果你們非要搞這個(gè) hdrtest 測(cè)試代碼,就把它放在你們自己的檢查流程里。別讓所有人都看到這個(gè)“惡心”的東西,讓整個(gè)源碼樹變得一團(tuán)糟! 我建議不要把這部分放進(jìn) Kconfig 設(shè)置和常規(guī)構(gòu)建,而是做成你們可以單獨(dú)運(yùn)行的測(cè)試(比如'make drm-hdrtest'這種形式,而不是常規(guī)構(gòu)建的一部分)。”同時(shí),Torvalds 表示他已經(jīng)直接將 hdrtest 標(biāo)記為損壞(BROKEN),讓其無法運(yùn)行:“我現(xiàn)在就把它標(biāo)記為 BROKEN 來禁用,你們自己想辦法解決,但別強(qiáng)迫其他人也接受這堆垃圾。”
不僅如此,Torvalds 最后還補(bǔ)充道,即便是簡(jiǎn)單地將這些“垃圾文件”添加到 .gitignore 也不能真正解決問題,因?yàn)檫@只是掩蓋了問題,并沒有真正移除它。
參考鏈接:https://www.phoronix.com/news/Linux-6.15-hdrtest-Turd
4 月 2 日 20:00,CSDN《萬有引力》欄目特別邀請(qǐng)到OpenManus 項(xiàng)目一作、MetaGPT 開源核心貢獻(xiàn)者梁新兵,DeepWisdom 算法研究員、OpenManus 核心作者向勁宇相聚 CSDN 視頻號(hào)直播間,在CSDN &《新程序員》執(zhí)行總編、《萬有引力》主理人唐小引主持下,一起聊聊 00 后程序員的故事,以及 OpenManus 背后的秘密!
熱門跟貼