日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux內(nèi)核的發(fā)展史

Linux愛好者 ? 來源:IT之家 ? 作者:IT之家 ? 2020-09-15 14:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1991 年,21 歲的芬蘭大學生 Linus Torvalds 寫下第一行 Linux內(nèi)核代碼時,多半沒有想到它會成長為今天這樣的龐然大物。

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

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

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

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

版本控制:從 BitKeeper 到 Git

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

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

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ā)布整個樹的新版本。 在這種方式下,具體是誰在做貢獻、貢獻的數(shù)量和路徑都不夠透明。 2002 年 2 月 4 日,BitKeeper 的使用標志著 Linux 內(nèi)核 commit 歷史的開啟。然而 BitKeeper 為專有軟件,這一決定在社區(qū)中遭受了長期質(zhì)疑。 直到 2005 年,BitKeeper 擁有者 Larry McVoy 決定收回無償使用 BitKeeper 的許可。Torvalds 本人當時又對現(xiàn)成的 CVS 和 Subversion 等集中式版本控制工具感到不滿,因此自己動手,用十天時間寫出了 Git 的第一個版本。 Git 目前已成為開發(fā)者們非常熟知且廣泛使用的分布式版本控制系統(tǒng)。Linus Torvalds 則表現(xiàn)得更多的是迫于無奈,他曾聲稱自己“根本不想做源代碼管理,覺得這是計算機世界中最無趣的事情”。 自從版本控制系統(tǒng)由 BitKeeper 改為 Git 后,Linux 內(nèi)核每年的貢獻者和 commit 數(shù)量都在穩(wěn)步增長。歷年的內(nèi)核報告數(shù)據(jù)顯示,2005 年 5 月發(fā)布的 2.6.12 版本平均每小時收到 2 次 commit。 15 年后,2019 年的平均數(shù)是每小時 9.4 次。而在最新的 5.8 內(nèi)核中,平均每小時 commit 數(shù)達到了 10.7 次。

繁雜且自成體系的內(nèi)核代碼

首個內(nèi)核版本 linux-0.01.tar.Z 由 88 個文件和 10,239 行代碼組成,運行在 i386 這樣單一的硬件架構(gòu)上。到了 5.8 版本,這一數(shù)據(jù)擴張為 69,325 個文件和 28,442,673 行代碼,并能夠在 30 多種主要的架構(gòu)上運行。 數(shù)量上的龐大僅是 Linux 內(nèi)核代碼的表象,它自身更是形成了一套復(fù)雜的體系,不熟悉的人往往不知從何處下手,極有可能“牽一發(fā)而動全身”。這或許也是內(nèi)核維護者難尋的原因之一。 Linux 內(nèi)核發(fā)布第一天起的某些代碼仍在當前版本中使用,例如 Torvalds 和大學好友 Lars Wirzenius 共同編寫的 vsprintf 例程,它也是為數(shù)不多存在至今的首次 commit 中的源代碼。

今年的內(nèi)核報告提到,有 2,964 個能被追溯至 1991 年的 token 如今在 5.8 版本中也能找到。5.8 版本超過一半的代碼寫于近 7 年內(nèi),但之前所有年份都對此版本有貢獻。過去的代碼不斷在后續(xù)的版本中留下痕跡。 持續(xù)膨脹的內(nèi)核文件量和代碼行數(shù)未見得完全是一件好事,為了使系統(tǒng)不變得臃腫,內(nèi)核維護者需要做一些修枝剪葉的工作。 Linux 內(nèi)核中未使用的代碼和文件都會被視情況刪除,有一些版本還會進行大的清理,例如 2018 年的 4.17 版本,刪除了 8 個架構(gòu),凈減少代碼大約 180,000 行。 不僅僅是源碼,Linux 內(nèi)核維護者還會關(guān)注空白行和代碼注釋,以確保源碼的可讀性。

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

2004 年對開發(fā)者原創(chuàng)證書(Developer Certificate of Origin,簡稱 DCO)的標準化是 Linux 內(nèi)核史上的一個關(guān)鍵變化點。DCO 的引入為開發(fā)者和用戶提供了法律保護,同時又不至于增加程序負擔。 它極大地提高了跟蹤補丁進入內(nèi)核的路徑的能力,加上版本控制系統(tǒng)向 Git 的過渡,DCO 有效地減輕了開發(fā)者做貢獻的開銷,因此變得很受歡迎,后來也被許多其他開源項目采用。 隨著 DCO 的標準化使用,現(xiàn)在幾乎所有的 commit 都有一個 Signed-off-by 標簽。通常每個 commit 平均會有兩個該標簽,能夠反映代碼在合并之前的維護者層次結(jié)構(gòu),有助于追溯補丁進入代碼的路徑。

Signed-off-by 之外,Linux 內(nèi)核還增加了表示審查的標簽(Reviewed-by 和 Acked-by)。審查對內(nèi)核代碼的質(zhì)量來說相當重要,標簽的加入令這個過程更加清晰,有越來越多的維護者選擇使用標簽來表示已審查。 在審查 git 倉庫時,Linux 基金會發(fā)現(xiàn)了一些比較有趣的標簽,像是 "Enithusiastically-ack'd by"、"Thanksto"、"Based-on-the-Original-screenplay-by"、"Catched-by-andrightfully-ranted-at-by" 等等。 但這些標簽并沒有像上述兩類一樣被廣泛采用。

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

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

社區(qū)曾對發(fā)布周期進行了大量的探討和實驗,并逐漸找到了行之有效的發(fā)布模式,發(fā)布周期也幾乎完全可預(yù)測——每個發(fā)布周期由時長兩周的“合并窗口”開始,這時,新功能經(jīng)適當?shù)?review 后可被納入接下來要發(fā)布的 git 倉庫。 一旦它被標記為 rc1,那么集成測試、調(diào)試和穩(wěn)定化的周期就開始了。然后每周對 rc 候選版本進行標記,直到達到目標質(zhì)量和穩(wěn)定性。發(fā)布后,隨著下一個合并窗口的到來,這個周期又開始循環(huán)。 內(nèi)核的主線樹由 Linus Torvalds 維護,這棵樹引入了所有新功能。新的主線(Mainline)內(nèi)核每 2 到 3 個月發(fā)布一次。但這樣的發(fā)布節(jié)奏較慢,難以滿足大多數(shù)用戶的需求。因此,從 2005 年開始,每周發(fā)行一次穩(wěn)定版(Stable)內(nèi)核。 用戶還想要受維護時間更長的版本,于是 2006 年發(fā)布的 2.6.16 版本成為第一個長期支持(LTS)版本內(nèi)核。此后每年都有一個新的 LTS 內(nèi)核,該內(nèi)核將由內(nèi)核社區(qū)維護至少 2 年(從 4.4 版本開始延長至 6 年)。 Linux 內(nèi)核官網(wǎng)公布了所有現(xiàn)存 LTS 版本的發(fā)行日期、EOL 日期及維護者(目前 6 個 LTS 版本都由 Greg Kroah-Hartman 和 Sasha Levin 這兩人維護)。

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

不少組織都在為 Linux 內(nèi)核做貢獻,貢獻者排行榜前列幾乎都被 Intel、Red Hat、IBM、SUSE、Google、Samsung、AMD、Oracle、華為和 ARM 這樣的大企業(yè)占據(jù)。 從 2007 年到 2019 年,Linux 內(nèi)核共接受了來自 1,730 個組織的 780,048 次 commit。排在最前面的 20 個組織占了 68% 的 commit 量。

在過去十年中,每年有超過 400 個組織為 Linux 內(nèi)核做出貢獻。其中相當一部分可能只有過一次 commit。從每年的 commit 比例來看,其中 1/3 貢獻來自神秘的長尾。也就是圖中最上面淺灰色 “Others”的部分。 Linux 基金會指出,企業(yè)的貢獻會根據(jù)業(yè)務(wù)需求和戰(zhàn)略的不同而有所變化。前 20 名貢獻者中,有些是 2007 年之后才加入,有些在此前做過很多貢獻的公司,被收購后便不再繼續(xù)參與。貢獻者的多樣性為內(nèi)核發(fā)展賦予了一些彈性。 除了組織貢獻者,Linux 內(nèi)核社區(qū)成員也致力于增加個人貢獻者的多樣性,他們通常愿意花費自己的時間來指導(dǎo)新的開發(fā)者。 Linux 基金會有一個 Kernel Mentorship(LKMP)項目,用來幫助新加入開源的開發(fā)者進行實驗、學習,并為開源社區(qū)做出貢獻。

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

報告的最后,Linux 基金會指出,內(nèi)核社區(qū)的重點是保持一個共同的目標,即擁有一個沒有回歸的高質(zhì)量操作系統(tǒng),愿意根據(jù)需要創(chuàng)建新的流程和工具,以幫助提高效率,并繼續(xù)提升 Linux 內(nèi)核的可靠性。 內(nèi)核測試現(xiàn)在也引入了一些自動化測試工具:靜態(tài)分析工具如 sparse(語義解析器)、smatch(源匹配器)和cocicheck(語義補丁,測試特定的 bug),由 0-day 和 Hulk Robot 這樣的自動測試機器人在 Linux 內(nèi)核樹上運行。 機器人在發(fā)現(xiàn)和跟蹤 bug 上起到不少作用。這些測試工具能夠幫助開發(fā)人員跟上上游內(nèi)核的速率變化,并繼續(xù)改進內(nèi)核版本,提升其穩(wěn)定性。 Linux 內(nèi)核如今被應(yīng)用于諸多領(lǐng)域,基金會認為,改進基礎(chǔ)設(shè)施,進行正確的安全分析,是接下來要應(yīng)對的重大挑戰(zhàn)之一。 目前 Linux 內(nèi)核已擁有一個很好的基礎(chǔ),它應(yīng)當繼續(xù)引領(lǐng)創(chuàng)造最佳實踐,以促進整個開源軟件行業(yè)的發(fā)展。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11826

    瀏覽量

    219620
  • LINUX內(nèi)核
    +關(guān)注

    關(guān)注

    1

    文章

    321

    瀏覽量

    23307

原文標題:29 年超 100 萬次 commit,Linux 內(nèi)核何以發(fā)展至今?

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    如何理解Linux內(nèi)核中的PCIe驅(qū)動

    我們習慣了用 Verilog 去死磕 PCIe 的底層協(xié)議狀態(tài)機。但一旦越過硬件邊界來到操作系統(tǒng)層面,Linux 內(nèi)核是如何接管并驅(qū)動這些 PCI/PCIe 設(shè)備的呢?由于不同的 CPU 架構(gòu)實現(xiàn)了
    的頭像 發(fā)表于 04-11 17:22 ?1300次閱讀

    Linux內(nèi)核無法恢復(fù)怎么處理?

    將日志消息打印到 UART inresume_bl31會導(dǎo)致 Linux 內(nèi)核無法恢復(fù)。 static void resume_bl31(struct s32g_ssram_mailbox
    發(fā)表于 03-16 06:02

    進迭時空 Upstream | K3 獲得 Linux 7.0 內(nèi)核原生支持

    2026年2月22日,隨著Linux內(nèi)核正式發(fā)布v7.0-rc1版本,全球開源社區(qū)迎來了RISC-V生態(tài)的歷史性跨越。進迭時空(SpacemiT)研發(fā)的高性能RISC-VAICPU芯片K3作為全球首
    的頭像 發(fā)表于 02-27 18:10 ?1.2w次閱讀
    進迭時空 Upstream | K3 獲得 <b class='flag-5'>Linux</b> 7.0 <b class='flag-5'>內(nèi)核</b>原生支持

    Linux內(nèi)核伙伴系統(tǒng)內(nèi)存申請函數(shù)詳解:從原理到實戰(zhàn)

    Linux 內(nèi)核中,內(nèi)存管理是整個系統(tǒng)穩(wěn)定運行的基石,而伙伴系統(tǒng)(Buddy System) 作為內(nèi)核物理內(nèi)存分配的核心機制,更是驅(qū)動開發(fā)、內(nèi)核模塊開發(fā)的必備知識點。它通過 "2
    的頭像 發(fā)表于 02-10 16:58 ?3747次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>伙伴系統(tǒng)內(nèi)存申請函數(shù)詳解:從原理到實戰(zhàn)

    Linux內(nèi)核的“心跳”:jiffies如何為系統(tǒng)計時?

    Linux 內(nèi)核的世界里,有一個默默工作的 "計時器"——jiffies。它不像我們手機上的時鐘那樣顯示年月日,卻掌控著內(nèi)核中絕大多數(shù)時間相關(guān)的操作:從進程調(diào)度到設(shè)備驅(qū)動的定時檢查,都離不開它的身影。
    的頭像 發(fā)表于 02-04 16:27 ?950次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>的“心跳”:jiffies如何為系統(tǒng)計時?

    深入RK3588內(nèi)核:rockchip_linux_defconfig的作用與調(diào)試價值

    在 RK3588 芯片的 Linux 開發(fā)中,有一個文件始終是開發(fā)者繞不開的核心 ——kernel/arch/arm64/configs/rockchip_linux_defconfig。無論是首次
    的頭像 發(fā)表于 02-03 15:56 ?1400次閱讀
    深入RK3588<b class='flag-5'>內(nèi)核</b>:rockchip_<b class='flag-5'>linux</b>_defconfig的作用與調(diào)試價值

    Linux系統(tǒng)內(nèi)核參數(shù)調(diào)優(yōu)實戰(zhàn)指南

    Linux 內(nèi)核參數(shù)調(diào)優(yōu)是系統(tǒng)性能優(yōu)化的核心環(huán)節(jié)。隨著云原生架構(gòu)的普及和硬件性能的飛速提升,默認的內(nèi)核參數(shù)配置往往無法充分發(fā)揮系統(tǒng)潛力。在高并發(fā) Web 服務(wù)、大數(shù)據(jù)處理、容器化部署等場景下,合理的
    的頭像 發(fā)表于 01-28 14:27 ?774次閱讀

    深入Linux內(nèi)核:進程調(diào)度的核心邏輯與實現(xiàn)細節(jié)

    ,背后都離不開內(nèi)核調(diào)度算法的精準操控。今天,我們就從優(yōu)先級、調(diào)度算法、時間片分配到底層實現(xiàn),全方位拆解Linux內(nèi)核進程調(diào)度的核心邏輯。 一、進程調(diào)度的“身份標識”:優(yōu)先級與分類 要理解調(diào)度邏輯,首先得搞懂:進程憑什么“插隊”?
    的頭像 發(fā)表于 12-24 07:05 ?4624次閱讀
    深入<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>:進程調(diào)度的核心邏輯與實現(xiàn)細節(jié)

    基于 DR1M90 的 Linux-RT 內(nèi)核開發(fā):從編譯配置到 GPIO / 按鍵應(yīng)用實現(xiàn)(1)

    本手冊由創(chuàng)龍科技研發(fā),針對 DR1M90,詳述 Linux-RT 實時內(nèi)核開發(fā):含實時性測試(LinuxLinux-RT 對比、CPU 空載 / 滿負荷 / 隔離狀態(tài)測試)、
    的頭像 發(fā)表于 12-02 10:38 ?1350次閱讀
    基于 DR1M90 的 <b class='flag-5'>Linux</b>-RT <b class='flag-5'>內(nèi)核</b>開發(fā):從編譯配置到 GPIO / 按鍵應(yīng)用實現(xiàn)(1)

    Linux內(nèi)核printk日志級別全解析:從參數(shù)解讀到實操配置

    一、開篇:一個命令引出的核心問題 在?Linux?終端執(zhí)行?cat /proc/sys/kernel/printk,你可能會看到這樣的輸出: 這串數(shù)字不是隨機的,而是內(nèi)核日志系統(tǒng)的“核心配置開關(guān)
    的頭像 發(fā)表于 11-20 15:54 ?2013次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>printk日志級別全解析:從參數(shù)解讀到實操配置

    重磅升級!迅為iTOP-Hi3403開發(fā)板SDK全面升級至Linux?6.6內(nèi)核

    【重磅升級!迅為iTOP-Hi3403開發(fā)板SDK全面升級至Linux?6.6內(nèi)核
    的頭像 發(fā)表于 11-18 13:34 ?1230次閱讀
    重磅升級!迅為iTOP-Hi3403開發(fā)板SDK全面升級至<b class='flag-5'>Linux</b>?6.6<b class='flag-5'>內(nèi)核</b>

    deepin亮相2025中國Linux內(nèi)核開發(fā)者大會

    11 月 1 日,第二十屆中國 Linux 內(nèi)核開發(fā)者大會(CLK)在深圳舉辦。CLK 作為國內(nèi) Linux 內(nèi)核領(lǐng)域極具影響力的峰會,由清華大學、Intel、華為、阿里云、富士通南大
    的頭像 發(fā)表于 11-05 17:59 ?956次閱讀

    Linux歷史上10件最有意義的大事,你知道幾件?

    個傳奇。 今天,我們就帶你回顧? Linux 發(fā)展史上最有意義的十件大事 ,看看它如何一步步改變了世界。 一、1991:Linus Torvalds發(fā)布第一版Linux內(nèi)核 1991
    的頭像 發(fā)表于 10-20 11:10 ?544次閱讀

    Linux內(nèi)核參數(shù)調(diào)優(yōu)方案

    在高并發(fā)微服務(wù)環(huán)境中,網(wǎng)絡(luò)性能往往成為K8s集群的瓶頸。本文將深入探討如何通過精細化的Linux內(nèi)核參數(shù)調(diào)優(yōu),讓你的K8s節(jié)點網(wǎng)絡(luò)性能提升30%以上。
    的頭像 發(fā)表于 08-06 17:50 ?1195次閱讀

    如何配置和驗證Linux內(nèi)核參數(shù)

    Linux系統(tǒng)運維和性能優(yōu)化中,內(nèi)核參數(shù)(sysctl)的配置至關(guān)重要。合理的參數(shù)調(diào)整可以顯著提升網(wǎng)絡(luò)性能、系統(tǒng)穩(wěn)定性及資源利用率。然而,僅僅修改參數(shù)是不夠的,如何驗證這些參數(shù)是否生效同樣關(guān)鍵。
    的頭像 發(fā)表于 05-29 17:40 ?1407次閱讀
    即墨市| 长白| 光山县| 米易县| 蒙山县| 乾安县| 长泰县| 册亨县| 保德县| 沭阳县| 汉沽区| 万安县| 黄龙县| 隆尧县| 余庆县| 辛集市| 安西县| 合山市| 铜山县| 海安县| 水城县| 盐津县| 色达县| 偏关县| 泌阳县| 灵台县| 连山| 新蔡县| 曲水县| 恭城| 禹城市| 邵武市| 临颍县| 岳阳县| 山阳县| 广河县| 张家川| 北宁市| 临高县| 青冈县| 西华县|