當前位置:首頁 > 嵌入式 > 嵌入式動態(tài)
[導讀]當來自芬蘭的21歲的學生Linus Torvalds在1991年編寫Linux內核代碼的第一行時,他可能沒想到它會成為今天的龐然大物。

當來自芬蘭的21歲的學生Linus Torvalds在1991年編寫Linux內核代碼的第一行時,他可能沒想到它會成為今天的龐然大物。

當年 8 月 25 日,Torvalds 在 Minix Usenet 新聞組里發(fā)了一封帖子,稱自己正在做一個自由的操作系統(tǒng),“就是個興趣愛好,不會搞得像 GNU 那么大那么專業(yè)”。

事情的發(fā)展顯然遠超他的預期,如今小到傳感器,大到超級計算機,從智能手機、手表、汽車等日常用品到航天器等設備,Linux 內核的身影已無處不在。

隨著迄今為止最大版本 Linux Kernel 5.8 于今年 8 月初的發(fā)布,Linux 內核已擁有超過 2 萬名貢獻者,歷史 commit 數超過 100 萬次,迎來一個新的里程碑。

上周恰逢 Linux 29 周年紀念日,Linux 基金會發(fā)布了一份詳盡的 Linux 內核報告,涵蓋了自 1991 年 9 月 17 日首次發(fā)布以來,到 2020 年 8 月 2 日最新版本的 Linux 內核歷史。

版本控制:從 BitKeeper 到 Git

Linux 基金會從 2008 年開始每年發(fā)布 Linux 內核報告,但此前一直難以將其發(fā)展過程完整串聯(lián)起來。

今年,借助 Daniel German 博士的 cregit 工具,他們成功追溯到了第一個版本,Linux 內核的發(fā)展時間線變得清晰。根據版本控制方式,可大致分為以下三個階段:

pre-version control(前版本控制):1991 年 9 月 - 2002 年 2 月 4 日

BitKeeper:2002 年 2 月 4 日 - 2005 年 4 月 15 日

Git:2005 年 4 月 16 日至今

版本控制對社區(qū)協(xié)作能力影響重大,這在 2000 年代初是一件令人頗為苦惱的事情。使用版本控制系統(tǒng),也就是 BitKeeper 之前,貢獻者需要將補丁提交至郵件列表,待 Torvalds 接受后放進源碼樹,再發(fā)布整個樹的新版本。

在這種方式下,具體是誰在做貢獻、貢獻的數量和路徑都不夠透明。

2002 年 2 月 4 日,BitKeeper 的使用標志著 Linux 內核 commit 歷史的開啟。然而 BitKeeper 為專有軟件,這一決定在社區(qū)中遭受了長期質疑。

直到 2005 年,BitKeeper 擁有者 Larry McVoy 決定收回無償使用 BitKeeper 的許可。Torvalds 本人當時又對現成的 CVS 和 Subversion 等集中式版本控制工具感到不滿,因此自己動手,用十天時間寫出了 Git 的第一個版本。

Git 目前已成為開發(fā)者們非常熟知且廣泛使用的分布式版本控制系統(tǒng)。Linus Torvalds 則表現得更多的是迫于無奈,他曾聲稱自己“根本不想做源代碼管理,覺得這是計算機世界中最無趣的事情”。

自從版本控制系統(tǒng)由 BitKeeper 改為 Git 后,Linux 內核每年的貢獻者和 commit 數量都在穩(wěn)步增長。歷年的內核報告數據顯示,2005 年 5 月發(fā)布的 2.6.12 版本平均每小時收到 2 次 commit。

15 年后,2019 年的平均數是每小時 9.4 次。而在最新的 5.8 內核中,平均每小時 commit 數達到了 10.7 次。

繁雜且自成體系的內核代碼

首個內核版本 linux-0.01.tar.Z 由 88 個文件和 10,239 行代碼組成,運行在 i386 這樣單一的硬件架構上。到了 5.8 版本,這一數據擴張為 69,325 個文件和 28,442,673 行代碼,并能夠在 30 多種主要的架構上運行。

數量上的龐大僅是 Linux 內核代碼的表象,它自身更是形成了一套復雜的體系,不熟悉的人往往不知從何處下手,極有可能“牽一發(fā)而動全身”。這或許也是內核維護者難尋的原因之一。

Linux 內核發(fā)布第一天起的某些代碼仍在當前版本中使用,例如 Torvalds 和大學好友 Lars Wirzenius 共同編寫的 vsprintf 例程,它也是為數不多存在至今的首次 commit 中的源代碼。

今年的內核報告提到,有 2,964 個能被追溯至 1991 年的 token 如今在 5.8 版本中也能找到。5.8 版本超過一半的代碼寫于近 7 年內,但之前所有年份都對此版本有貢獻。過去的代碼不斷在后續(xù)的版本中留下痕跡。

持續(xù)膨脹的內核文件量和代碼行數未見得完全是一件好事,為了使系統(tǒng)不變得臃腫,內核維護者需要做一些修枝剪葉的工作。

Linux 內核中未使用的代碼和文件都會被視情況刪除,有一些版本還會進行大的清理,例如 2018 年的 4.17 版本,刪除了 8 個架構,凈減少代碼大約 180,000 行。

不僅僅是源碼,Linux 內核維護者還會關注空白行和代碼注釋,以確保源碼的可讀性。

開發(fā)者原創(chuàng)證書和標簽管理

2004 年對開發(fā)者原創(chuàng)證書(Developer Certificate of Origin,簡稱 DCO)的標準化是 Linux 內核史上的一個關鍵變化點。DCO 的引入為開發(fā)者和用戶提供了法律保護,同時又不至于增加程序負擔。

它極大地提高了跟蹤補丁進入內核的路徑的能力,加上版本控制系統(tǒng)向 Git 的過渡,DCO 有效地減輕了開發(fā)者做貢獻的開銷,因此變得很受歡迎,后來也被許多其他開源項目采用。

隨著 DCO 的標準化使用,現在幾乎所有的 commit 都有一個 Signed-off-by 標簽。通常每個 commit 平均會有兩個該標簽,能夠反映代碼在合并之前的維護者層次結構,有助于追溯補丁進入代碼的路徑。

Signed-off-by 之外,Linux 內核還增加了表示審查的標簽(Reviewed-by 和 Acked-by)。審查對內核代碼的質量來說相當重要,標簽的加入令這個過程更加清晰,有越來越多的維護者選擇使用標簽來表示已審查。

在審查 git 倉庫時,Linux 基金會發(fā)現了一些比較有趣的標簽,像是 "Enithusiastically-ack'd by"、"Thanksto"、"Based-on-the-Original-screenplay-by"、"Catched-by-andrightfully-ranted-at-by" 等等。

但這些標簽并沒有像上述兩類一樣被廣泛采用。

行之有效的發(fā)布模式

Linux 內核的發(fā)布模式已漸趨成熟,現在基本固定為 Prepatch(或"-rc")、Mainline、Stable 和 Long Term Stable 四類版本。

社區(qū)曾對發(fā)布周期進行了大量的探討和實驗,并逐漸找到了行之有效的發(fā)布模式,發(fā)布周期也幾乎完全可預測——每個發(fā)布周期由時長兩周的“合并窗口”開始,這時,新功能經適當的 review 后可被納入接下來要發(fā)布的 git 倉庫。

一旦它被標記為 rc1,那么集成測試、調試和穩(wěn)定化的周期就開始了。然后每周對 rc 候選版本進行標記,直到達到目標質量和穩(wěn)定性。發(fā)布后,隨著下一個合并窗口的到來,這個周期又開始循環(huán)。

內核的主線樹由 Linus Torvalds 維護,這棵樹引入了所有新功能。新的主線(Mainline)內核每 2 到 3 個月發(fā)布一次。但這樣的發(fā)布節(jié)奏較慢,難以滿足大多數用戶的需求。因此,從 2005 年開始,每周發(fā)行一次穩(wěn)定版(Stable)內核。

用戶還想要受維護時間更長的版本,于是 2006 年發(fā)布的 2.6.16 版本成為第一個長期支持(LTS)版本內核。此后每年都有一個新的 LTS 內核,該內核將由內核社區(qū)維護至少 2 年(從 4.4 版本開始延長至 6 年)。

Linux 內核官網公布了所有現存 LTS 版本的發(fā)行日期、EOL 日期及維護者(目前 6 個 LTS 版本都由 Greg Kroah-Hartman 和 Sasha Levin 這兩人維護)。

貢獻者:長尾的力量不可忽視

不少組織都在為 Linux 內核做貢獻,貢獻者排行榜前列幾乎都被 Intel、Red Hat、IBM、SUSE、Google、Samsung、AMD、Oracle、華為和 ARM 這樣的大企業(yè)占據。

從 2007 年到 2019 年,Linux 內核共接受了來自 1,730 個組織的 780,048 次 commit。排在最前面的 20 個組織占了 68% 的 commit 量。

在過去十年中,每年有超過 400 個組織為 Linux 內核做出貢獻。其中相當一部分可能只有過一次 commit。從每年的 commit 比例來看,其中 1/3 貢獻來自神秘的長尾。也就是圖中最上面淺灰色 “Others” 的部分。

Linux 基金會指出,企業(yè)的貢獻會根據業(yè)務需求和戰(zhàn)略的不同而有所變化。前 20 名貢獻者中,有些是 2007 年之后才加入,有些在此前做過很多貢獻的公司,被收購后便不再繼續(xù)參與。貢獻者的多樣性為內核發(fā)展賦予了一些彈性。

除了組織貢獻者,Linux 內核社區(qū)成員也致力于增加個人貢獻者的多樣性,他們通常愿意花費自己的時間來指導新的開發(fā)者。

Linux 基金會有一個 Kernel Mentorship(LKMP)項目,用來幫助新加入開源的開發(fā)者進行實驗、學習,并為開源社區(qū)做出貢獻。

內核社區(qū)的共同目標:高質量、可靠性

報告的最后,Linux 基金會指出,內核社區(qū)的重點是保持一個共同的目標,即擁有一個沒有回歸的高質量操作系統(tǒng),愿意根據需要創(chuàng)建新的流程和工具,以幫助提高效率,并繼續(xù)提升 Linux 內核的可靠性。

內核測試現在也引入了一些自動化測試工具:靜態(tài)分析工具如 sparse(語義解析器)、smatch(源匹配器)和cocicheck(語義補丁,測試特定的 bug),由 0-day 和 Hulk Robot 這樣的自動測試機器人在 Linux 內核樹上運行。

機器人在發(fā)現和跟蹤 bug 上起到不少作用。這些測試工具能夠幫助開發(fā)人員跟上上游內核的速率變化,并繼續(xù)改進內核版本,提升其穩(wěn)定性。

Linux 內核如今被應用于諸多領域,基金會認為,改進基礎設施,進行正確的安全分析,是接下來要應對的重大挑戰(zhàn)之一。

目前 Linux 內核已擁有一個很好的基礎,它應當繼續(xù)引領創(chuàng)造最佳實踐,以促進整個開源軟件行業(yè)的發(fā)展。


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉