然而,就像任何一部偉大的作品,Linux的成長之路并非一帆風順,而是充滿了挑戰與爭議
本文將帶您走進Linux的黑歷史,揭開那些不為人知的坎坷與挑戰
一、文件系統的爭議與Bug Linux文件系統的歷史是一部充滿Bug修復與爭議的記錄
ext4,作為Linux社區廣泛使用的一種文件系統,其穩定性和可靠性一直備受關注
然而,從它誕生之日起,關于ext4存在可能導致數據丟失的Bug報告就從未間斷
2017年,Linux內核的郵件列表中,Linus Torvalds再次對ext4表達了不滿
他指出,盡管ext4已經發布了多年,并被廣泛應用于桌面及服務器,但大量的Bug修復和清理工作仍在持續進行
其中一些修復看似并非真正的清理或修復,而是新引入的問題
Linus的憤怒并非空穴來風,ext4的Bug問題確實一直困擾著Linux社區
早在2012年,Theodore Tso就曾報告過一次嚴重的Bug,該Bug影響了部分Linux穩定版本的內核
而在2016年,Vegard Nossum和Quentin Casasnovas使用用戶態的Fuzzing工具AFL對文件系統進行了測試,結果更是令人震驚
盡管Btrfs在測試中堅持了5秒鐘就崩潰,但ext4也僅僅堅持了2個小時
這充分說明了Linux文件系統并沒有我們想象中的那么穩定
更為嚴重的是,這些Bug不僅可能導致系統崩潰,還可能導致數據損壞
威斯康辛大學麥迪遜分校的研究者曾在FAST 13上發表的一篇論文中,對Linux社區與文件系統相關的Patch進行了統計和分析
結果顯示,有將近40%的文件系統相關的Patch屬于Bugfix類型
換句話說,每提交兩個Patch,就可能有一個是用于修復Bug的
而Bug的集中爆發也往往源于大的功能演進
二、POSIX標準的模糊與爭議 在Linux文件系統的發展歷程中,POSIX標準無疑是一個重要的影響因素
POSIX(Portable Operating System Interface)是一個旨在提供跨操作系統兼容性的標準
然而,作為一個先有實現、后有標準的規范,POSIX在文件系統接口上的定義卻相當模糊
尤其是在系統崩潰后,文件系統應有的行為方面,POSIX標準幾乎是一片空白
這留給了文件系統開發者足夠大的“想象空間”
因此,如果一個Linux文件系統在系統崩潰重啟后,整個文件系統的內容都不見了,那么從POSIX標準的角度來看,這也是“符合標準”的
歷史上,不斷有人嘗試給文件系統提供更加嚴謹的Consistency(一致性)定義,尤其是Crash-Consistency(故障后的一致性)
然而,盡管POSIX也經歷了幾個版本,但關于文件系統接口的定義卻幾乎沒有改變
這種模糊的標準定義無疑給Linux文件系統的開發帶來了極大的挑戰
三、API設計的失敗與修正 除了文件系統的爭議外,Linux API的設計也曾經走過不少彎路
usleep和nanosleep是兩個曾經被Linux社區寄予厚望的新API
它們旨在提供高精度的睡眠功能,以便更好地支持多任務處理和異步操作
然而,令人失望的是,這兩個API的設計從一開始就存在問題
它們本質上是稍稍變通一點的spinwait(自旋等待),根本無需正確實現sleep的典型語義
這導致CPU資源的消耗大大增加,許多Linux服務器程序開發者都因此受到了影響
隨著POSIX標準的建立,問題逐漸浮出水面
原先的features被大家愈發覺得是bugs
最終,Linux(內核版本2.5.39)修正了usleep和nanosleep的行為,使其和其他操作系統(例如Windows)一致
然而,這一修正過程持續了數年,期間也伴隨著一批程序的改寫,因為它們依賴自旋等待的特性
四、與Unix和SCO的恩怨情仇 Linux的歷史不僅是一部技術發展的記錄,更是一部充滿恩怨情仇的傳奇
其中,與Unix和SCO的糾葛尤為引人注目
Unix操作系統由貝爾實驗室的肯·湯普森和丹尼斯·里奇研發,是計算機歷史上最偉大的發明之一
然而,由于早期混亂的授權,Unix的源代碼被廣為擴散,形成了多個不同版本的Unix
這為后來的Linux操作系統提供了豐富的借鑒和靈感
然而,這也為Linux帶來了麻煩
SCO公司自稱是Unix操作系統的擁有者,并對IBM提出了10億美元的起訴,稱IBM在開放源代碼的Linux中泄露了商業秘密
這一事件引發了Linux社區與SCO之間的激烈爭議和對抗
盡管SCO在言語上變得越來越好斗,但微軟卻看到了其中的機會
微軟與Unix的關系源遠流長,并對SCO的演變起了重要的催化作用
微軟曾經為Intel處理器開發了一種Unix操作系統,命名為Xenix,并以OEM的形式再授權給多家公司
然而,隨著Windows NT的研發和推出,微軟逐漸放棄了Xenix和Unix市場
SCO的崛起和衰落與Unix和Windows的競爭息息相關
SCO曾經憑借Xenix操作系統在Intel芯片市場上占據了一席之地
然而,隨著Windows操作系統的崛起和Unix市場的萎縮,SCO也逐漸陷入了困境
最終,SCO與Linux的爭議也成為了其衰落的一個縮影
五、結語 Linux操作系統的歷史是一部充滿挑戰與爭議的傳奇
從文件系統的爭議與Bug到POSIX標準的模糊與爭議,再到API設計的失敗與修正,以及與Unix和SCO的恩怨情仇,Linux的成長之路充滿了坎坷與挑戰
然而,正是這些挑戰和爭議推動了Linux的不斷進步和完善
如今,Linux已經成為全球最受歡迎的開源操作系統之一,為無數開發者和企業提供了強大的支持和保障
回顧Linux的黑歷史,我們不禁感慨萬分
然而,正是這些坎坷與挑戰塑造了Linux今天的輝煌成就
我們相信,在未來的日子里,Linux將繼續保持其開源、靈活和強大的特性,為科技的發展和進步貢獻更多的力量