Linux 是世界上最大的軟體開發項目
Greg Kroah-Hartman 在 CoreOS Fest, Berlin 的講演
每天,平均有超過 10800 行的代碼增加, 5300 行代碼被刪除,並且還有 1875 行代碼被修改,也就是說每秒鐘都有超過 8 行代碼的變化!
這是非常大的數量,這意味著 Linux 內核不像其它的技術,它在不斷的變化,變得越來越好。
Kroah-Hartman 說,「當我第一次參與這個項目時,我們每個小時可以完成 2.5 個變更。每個人都這麼說,『哦,天哪,我們不可能更快了,那不現實』。微軟和蘋果也說,『你贏了』,他們一字一頓的說,『我們比不上,你們乾的比任何人都要快,我們是望塵莫及啊』。而我們的開發速度越來越快,我們每次都會更快一些。」
但是,如果你的公司的發展依靠著 Linux,那這個變化速度看起來就很可怕。Kroah-Hartman 解釋了為什麼會有這麼多變更:「我們提交了很多變更,但是不是因為我們為變更而變更的,那可需要很多的工作。我們其實很懶,我們做這麼多的變更的原因是因為我們必須做,是因為這個世界不斷變化而需要我們做這麼多的變更。那種『你做了個東西,然後啥也不用管,將它丟在一邊就好了』的模式已經不可行了,因為這個東西已經連通了世界,而世界每時每刻在變化。事物都在互相作用,所以你必須跟著進化。如果你的操作系統不能改變,那它就沒用了,這毋庸置疑。如果你的設備不能跟著與之互動的世界變化,那它同樣也沒用,這也毋庸置疑。所以,你可以看看那些不能與時俱進的操作系統,根本沒有人用它們。」
為了做到這些變更,Linux 內核社區需要做到兩點。首先,我們要有個按時間進行的發布計劃。其次,我們需要小步快跑。我們完成一個發布就要開始下一個發布的開發。下一個發布的第一個 RC 版本裡面就要包含進去所有開發人員丟進去的各種東西,包括各種新的東西、新的功能,而且它們需要經過嚴格考驗。當所有的東西都測試良好,我們才會放出第一個 RC 版本,之後的 RC 版本就是各種問題的修復。這樣,我們就能在一個分支的 7-8 個 RC 版本之後趕走所有發現的問題。
當我們準備好發布一個新的內核發布版本時,它已經經過了詳盡的測試。但是仍然有問題時,人們使用的穩定版怎麼修復問題呢,他們可不想在產品環境中使用 RC 版本,那麼他們怎麼修復問題?在 15 年前,內核社區就找到了解決方案,而這就是 Kroah-Hartman 的任務,他會對穩定版本進行分支,比如說 4.2 版,它的問題修復版本會以 4.2.1 、4.2.2、4.2.3 等等發布。
「這個版本規則就是它必須是一個問題修復版,而且它必須是一個正確的版本號或者是新的設備 ID,它必須出現在 Linux 內核代碼樹上。在我將它放到穩定分支之前,它就必須出現在 Linux 內核代碼樹上。這可以確保人們運行我們的穩定內核時,如果跳到一個新的分支版本時,不會發生中斷,沒有什麼不一樣的變化。這就是規則,而且一直以來運作良好。」Kroah-Hartman 說。
而當下一個新的分支(4.3)出來時,Kroah-Hartman 就會從當前的分支(4.2)離開而去維護 4.3。這樣內核社區就完美的保證了當新的版本發布時任何事情都很連貫。
「每個版本我每周都會做一次發布,每周會對穩定分支打 100 到 150 個補丁。這很多,許多東西都變化了,也修復了許多東西。而這就是我們做的——穩定的分支。當 4.3 發布時,最好的事情是我解脫了,我說,『啊!4.2,我再也不要見到你了』,然後我就跑到新的分支了,因為我們的工作,這一切都可以繼續發展下去,所有人都很滿意。」
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive