"程序員很快就要被AI替代了!"
這兩年,這句話幾乎成了科技圈最流行的口號(hào)。
但就在最近,Linux 社區(qū)發(fā)生的一件事,卻給出了另一個(gè)答案。
Linux有一位66歲的維護(hù)者,宣布退休。
奇怪的是,當(dāng)他在郵件列表中發(fā)出這個(gè)消息的時(shí)候,幾乎沒有收到什么回應(yīng)。
不是沒人理他,是沒有一個(gè)人敢單獨(dú)地接他的班!
這些Linux內(nèi)核大牛們都搞不定,更別說AI了。
原因很簡(jiǎn)單,他的工作實(shí)在太重要了!
全球的Android手機(jī),云服務(wù)器、超級(jí)計(jì)算機(jī)、路由器、智能電視、機(jī)頂盒、嵌入式設(shè)備...... 都依賴他維護(hù)的代碼 :Linux 內(nèi)存管理(Memory Management,簡(jiǎn)稱 MM)。
而這位名叫Andrew Morton的老人,已經(jīng)在這個(gè)領(lǐng)域堅(jiān)持了整整26年。
![]()
01
最難維護(hù)的子系統(tǒng)
內(nèi)存管理有什么用呢?
這里舉個(gè)簡(jiǎn)單的例子:當(dāng)你打開微信,再打開瀏覽器,再打開音樂播放器,再啟動(dòng)一個(gè) AI 模型...... 這些程序都需要申請(qǐng)內(nèi)存,內(nèi)存管理需要決定:
什么時(shí)候分配?
什么時(shí)候回收?
哪些頁(yè)面放在高速緩存?
什么時(shí)候交換到磁盤?
虛擬地址如何映射到物理地址?
NUMA、多核、Huge Page、頁(yè)緩存、匿名頁(yè)、內(nèi)存壓縮……
這些幾乎全部屬于內(nèi)存管理的職責(zé),它不像文件系統(tǒng)那樣容易被看見,也不像網(wǎng)絡(luò)協(xié)議那樣容易調(diào)試。
但只要它出一點(diǎn)問題,整個(gè)系統(tǒng)就可能卡死、崩潰,甚至數(shù)據(jù)損壞。
所以,在 Linux 內(nèi)核里,一直流傳著一句話:內(nèi)存模塊是最難維護(hù)的子系統(tǒng)之一。
mm模塊一共有164個(gè)c源代碼文件,如果你做一個(gè)快速搜索的話,就會(huì)發(fā)現(xiàn)像THP、cgroup、NUMA等術(shù)語(yǔ)在大量文件中出現(xiàn),換句話說,核心的內(nèi)存管理概念廣泛分布在整個(gè)mm模塊中,所有代碼都緊密關(guān)聯(lián),試圖拆分成更小的子系統(tǒng)將極具挑戰(zhàn)性。
更可怕的是,mm模塊負(fù)責(zé)虛實(shí)內(nèi)存轉(zhuǎn)換,涉及頁(yè)表、緩存、回收和 swap 等復(fù)雜機(jī)制,同時(shí)又要在高并發(fā)和多子系統(tǒng)交互下保持正確性,這種高復(fù)雜度與 C 指針模型疊加,使得任何細(xì)微錯(cuò)誤都可能直接導(dǎo)致內(nèi)存破壞,從而成為內(nèi)核漏洞的溫床。
統(tǒng)計(jì)數(shù)據(jù)顯示,mm模塊的漏洞數(shù)約占20%左右,所以接手它絕對(duì)是一塊兒燙手山芋。
02
26年的維護(hù)
Andrew Morton 1959年出生于英國(guó),后來移居澳大利亞,在位于悉尼的新南威爾士大學(xué)學(xué)習(xí)電子工程。
畢業(yè)后,他和朋友合伙兒創(chuàng)辦了一家公司 ,開發(fā)一個(gè)叫做Applix的個(gè)人電腦,Andrew不但設(shè)計(jì)了硬件,還開發(fā)了操作系統(tǒng)1616/OS ,積累了硬件和OS的經(jīng)驗(yàn)。
90年代中期,他注意到了Linux,開始向 Linux 內(nèi)核提交補(bǔ)丁,最初專注于內(nèi)存管理等領(lǐng)域。
這時(shí)候Linux逐漸進(jìn)入企業(yè)級(jí)市場(chǎng),當(dāng)內(nèi)存越來越大,CPU越來越快,尤其是數(shù)據(jù)庫(kù)開始大量運(yùn)行在Linux上時(shí),Linux出了問題:在高負(fù)載情況下,虛擬內(nèi)存表現(xiàn)太糟糕了,導(dǎo)致服務(wù)器頻繁鎖死或陷入 Swap 抖動(dòng)。
當(dāng)時(shí) Linus 甚至在 2.4.10 臨時(shí)用 Rik van Riel 的新 VM 替代了原有的 VM,引發(fā)了社區(qū)大地震。
危急時(shí)刻,Andrew Morton 出手了, 他憑借高超的工程能力,連續(xù)提交了大量極其務(wù)實(shí)、極其高效的 Patch,瘋狂修補(bǔ)和重構(gòu)了 Page Cache、Writeback(回寫)和 LRU 算法。
他不僅持續(xù)提交補(bǔ)丁,更重要的是,愿意花大量時(shí)間審查別人的代碼、協(xié)調(diào)不同開發(fā)者之間的分歧。
這種能力很快引起了 Linus Torvalds 的注意。Linus 后來評(píng)價(jià) Morton 最大的優(yōu)點(diǎn),不是代碼寫得最快,而是能夠“與別人很好地合作,并始終保持理智。”
隨著 Linux 后續(xù)開發(fā)周期的推進(jìn),Linus 一個(gè)人確實(shí)無法處理海量的補(bǔ)丁,Andrew 順勢(shì)建立了 -mm Tree。
從名稱看,這個(gè)源代碼tree是為了內(nèi)存管理的,但實(shí)際上,它很快演變成了 Linux 內(nèi)核的“試驗(yàn)田”和“前置緩沖區(qū)”。
很多實(shí)驗(yàn)性的 Kernel Patch,都會(huì)先進(jìn)-mm Tree,這些補(bǔ)丁先接受 Andrew 的測(cè)試和社區(qū)的反饋,穩(wěn)定后再由 Linus 合入主線(Mainline)。
![]()
Linus 曾多次公開表示,如果一個(gè)補(bǔ)丁被 Andrew 看過并簽名,他幾乎會(huì)閉著眼睛合并。
給一個(gè)補(bǔ)丁做簽名相當(dāng)于給別人貸款做擔(dān)保,你是在別人的工作成果上簽了名,并聲明:我審核過,我信任這個(gè)補(bǔ)丁,如果這個(gè)補(bǔ)丁導(dǎo)致十億臺(tái)設(shè)備出現(xiàn)生產(chǎn)環(huán)境問題,我的名字要承擔(dān)責(zé)任。
![]()
到 2007 年,Andrew已簽署了 18,622 個(gè)補(bǔ)丁,僅次于托瓦爾茲本人,后者簽署了 19,890 個(gè)補(bǔ)丁,可見 Andrew 在Linux社區(qū)的責(zé)任巨大。
03
誰(shuí)來接班?
實(shí)際上,Linux 內(nèi)核社區(qū)聚集著不少世界級(jí)工程師,但問題在于:沒人擁有Andrew 那樣完整的知識(shí)體系。
二十六年的代碼,無數(shù)歷史設(shè)計(jì),數(shù)不清的兼容性,各種架構(gòu)之間的微妙關(guān)系。
很多東西,代碼里沒有寫,文檔里也沒有寫,只有 Andrew 自己知道。
在軟件工程中有一個(gè)概念:Bus Factor(公交車系數(shù))。
如果 Bus Factor = 1 ,整個(gè)項(xiàng)目只有一個(gè)人真正懂,這個(gè)人一離職、生病、休假,甚至只是去度假,項(xiàng)目就沒人能維護(hù)了。
![]()
現(xiàn)在Andrew要退休了,mm社區(qū)經(jīng)過討論,達(dá)成的共識(shí)是:今天的mm太大了,再找一個(gè)"全知全能"的維護(hù)者是不現(xiàn)實(shí)的,必須要把職責(zé)進(jìn)一步分散(增加Bus Factor)。
如果我們看下Linux社區(qū)的核心維護(hù)者:
Linus (總負(fù)責(zé)人) : 56歲
Theodore Ts'o (ext4) : 58 歲
David Miller (networking) : 60歲
Thomas Gleixner(中斷、Timer、PREEMPT_RT):58歲
Al Viro(VFS): 59歲
Greg Kroah-Hartman(USB, driver core, TTY):58歲
他們中的很多人從 1992~1995 年 就開始給 Linux 寫代碼,已經(jīng)持續(xù)維護(hù)了 30 多年!
他們沒有流量,沒有融資,也很少登上新聞。但如果沒有他們,今天我們熟悉的互聯(lián)網(wǎng),可能根本不會(huì)是現(xiàn)在這個(gè)樣子。
在過去30多年里,Linux 社區(qū)對(duì)“Linus 如果不在了怎么辦”一直諱莫如深,Linus本人的態(tài)度曾長(zhǎng)期是“到時(shí)候自然會(huì)有人頂上”。
但隨著核心團(tuán)隊(duì)日益老齡化,2026年1月,內(nèi)核社區(qū)終于合并了一份里程碑式的官方連續(xù)性文檔:《Linux項(xiàng)目延續(xù)性文件》:
該文件明確規(guī)范了當(dāng)Linus Torvalds或核心團(tuán)隊(duì)無法繼續(xù)工作時(shí),如何無縫選舉和移交最高主倉(cāng)庫(kù)的合并權(quán)限。這是 Linux 歷史上第一次承認(rèn)“人終有一死”并建立制度化交接。
04
很多人擔(dān)心:AI 會(huì)不會(huì)取代程序員?
但Linux 社區(qū)真正擔(dān)心的問題卻是:Andrew Morton 退休以后,誰(shuí)來維護(hù) Linux 內(nèi)存管理模塊?
一個(gè)擔(dān)心的是寫代碼的人越來越少;一個(gè)擔(dān)心的是懂系統(tǒng)的人越來越少。
這兩個(gè)問題,恰恰代表了軟件工程里最容易和最困難的兩件事情。
AI 能生成代碼,但還生成不了Andrew Morton 身上那二十六年的工程智慧。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.