然而,Linux之父Linus Torvalds曾對ARM架構表達出強烈的不滿和批評
這不僅是因為ARM架構的代碼質量和技術實現,更涉及到兩者在理念上的深刻分歧
本文將深入探討Linus對ARM的批評,并分析其背后的原因和影響
一、Linus的憤怒:ARM代碼質量堪憂 早在Linux內核2.6時代,Linus Torvalds就在郵件列表中憤怒地表達了對ARM架構代碼的不滿
他直言不諱地稱:“this whole ARM thing is a fcking pain in the ass”(整個ARM的事情真是個他媽的麻煩)
這并非一時的情緒發泄,而是基于他對ARM代碼深入審查后的真實感受
Linus認為,ARM架構下的代碼存在諸多問題
首先,缺乏通用平臺,沒有統一的平臺模型
這意味著每個ARM設備都有其獨特的硬件和軟件配置,導致代碼難以復用和維護
其次,ARM代碼中存在大量的硬編碼表格,用于描述時鐘和中斷請求(IRQ)的細節
這些表格不僅使代碼變得冗長且難以閱讀,還增加了系統的不穩定性和維護成本
最后,ARM下的許多代碼是重復且邏輯簡單的GPIO(通用輸入輸出)驅動程序,這些驅動程序缺乏統一的標準和接口,使得系統難以擴展和優化
二、理念沖突:ARM的靈活性與Linux的統一性 Linus對ARM的批評不僅限于代碼質量,更涉及到兩者在理念上的深刻分歧
Linux一直強調統一性和兼容性,希望通過統一的接口和標準來簡化系統的開發和維護
然而,ARM架構則更加注重靈活性和多樣性,以滿足不同設備和應用場景的需求
這種理念上的沖突在Linux對ARM的支持中表現得尤為明顯
由于ARM設備的多樣性和復雜性,Linux社區在整合ARM代碼時遇到了巨大的困難
Linus曾公開威脅停止向Linux內核主干添加與ARM相關的改進,因為他認為這些代碼在長遠看來就是一堆不可維護的垃圾
三、ARM社區的回應:Linaro組織的成立 面對Linus的批評和威脅,ARM社區并沒有選擇沉默或逃避
相反,他們積極采取行動,努力改進和優化ARM代碼
為了解決這個問題,ARM芯片制造商們成立了非盈利的Linaro組織
這個組織由Freescale、IBM、Samsung、ST-Ericsson、Texas Instruments和ARM等公司共同發起,旨在通過協作和共享資源來改進Linux對ARM的支持
Linaro組織的成立標志著ARM社區對Linus批評的正式回應
他們計劃成立一個針對Linux內核的ARM小組,與已經存在的X86小組相似
這個小組將致力于清理和整合ARM代碼,提高代碼的質量和可維護性
同時,Linaro還計劃通過發布定期的Linux發行版來推動ARM代碼的穩定性和兼容性
四、ARM的優勢與挑戰:靈活性與多樣性的雙刃劍 盡管Linus對ARM代碼的質量表示不滿,但不可否認的是,ARM架構在嵌入式領域具有廣泛的應用和巨大的優勢
ARM的靈活性和多樣性使其能夠滿足不同設備和應用場景的需求,這是ARM能夠迅速崛起并占據市場領先地位的重要原因
然而,這種靈活性和多樣性也帶來了巨大的挑戰
由于每個ARM設備都有其獨特的硬件和軟件配置,系統開發和維護變得異常復雜和困難
這不僅增加了開發成本和時間,還降低了系統的穩定性和安全性
因此,如何在保持ARM靈活性和多樣性的同時,提高系統的穩定性和可維護性,成為ARM社區面臨的重要課題
五、Linux與ARM的未來:融合與共贏 盡管Linus對ARM的批評言辭激烈,但不可否認的是,Linux與ARM的結合仍然具有巨大的潛力和前景
隨著物聯網、云計算和人工智能等技術的不斷發展,ARM架構在嵌入式領域的應用將更加廣泛和深入
同時,Linux作為開源操作系統的代表,將繼續在推動技術創新和產業發展方面發揮重要作用
因此,Linux與ARM的融合與共贏