淺談25年Linux內(nèi)核開發(fā)經(jīng)歷總結(jié)出來的九條經(jīng)驗(yàn)

     

    原文:9 lessons from 25 years of Linux kernel development
    作者:Greg Kroah-Hartman
    翻譯:雁驚寒

    Linux內(nèi)核社區(qū)在2024年慶祝了成立二十五周年紀(jì)念,許多人來問我們這個項(xiàng)目經(jīng)久不衰和成功的秘訣。愛掏網(wǎng) - it200.com我一般會先笑笑,然后開玩笑地說,我真的不知道已經(jīng)經(jīng)歷了25年。愛掏網(wǎng) - it200.com這個項(xiàng)目一直都面臨著分歧和挑戰(zhàn)。愛掏網(wǎng) - it200.com但是,嚴(yán)肅地說,我們能夠做到這一點(diǎn)與社區(qū)在反思和改變上的能力有著很大的關(guān)系。愛掏網(wǎng) - it200.com

    大約16年前,大多數(shù)內(nèi)核開發(fā)人員互相之間從來沒有見過面,我們只是通過電子郵件進(jìn)行聯(lián)系,所以Ted T’so提出了內(nèi)核峰會的想法。愛掏網(wǎng) - it200.com現(xiàn)在,內(nèi)核開發(fā)人員每年都會聚在一起解決技術(shù)問題,更重要的是,回顧一下在過去的一年里我們做了哪些對的事情,又犯了哪些錯誤。愛掏網(wǎng) - it200.com開發(fā)人員可以開誠布公地討論相互之間如何進(jìn)行交流以及開發(fā)流程如何運(yùn)作。愛掏網(wǎng) - it200.com然后,我們會改進(jìn)流程,我們會開發(fā)像Git這樣的新的工具,不斷地改變我們的合作方式。愛掏網(wǎng) - it200.com

    雖然我們現(xiàn)在尚未完全認(rèn)識清楚Linux內(nèi)核成功的所有關(guān)鍵原因,但目前還是有一些經(jīng)驗(yàn)值得拿出來分享的。愛掏網(wǎng) - it200.com

    1. 更短的發(fā)布周期很重要

    在Linux項(xiàng)目的早期階段,內(nèi)核的每個主版本需要好幾年發(fā)布一次,這意味著用戶需要等待很長時間才能享受到新功能,這對于用戶和經(jīng)銷商來說是相當(dāng)令人沮喪的。愛掏網(wǎng) - it200.com而且,更重要的是,這么長的周期意味著需要一下子集成大量的代碼。愛掏網(wǎng) - it200.com把這么多代碼合入一個版本里,壓力也是很大的。愛掏網(wǎng) - it200.com

    更短的周期可以解決所有這些問題。愛掏網(wǎng) - it200.com新代碼能夠在更短時間內(nèi)合入到穩(wěn)定版中。愛掏網(wǎng) - it200.com將新代碼集成到幾乎穩(wěn)定不變的基線版本上,使得能夠在對系統(tǒng)產(chǎn)生極小影響的情況下引入根本性的變化。愛掏網(wǎng) - it200.com開發(fā)人員知道,如果他們錯過了這個發(fā)布周期,兩個月內(nèi)還會有另外一個,所以他們很少會過早地合入代碼。愛掏網(wǎng) - it200.com

    2. 流程的擴(kuò)展需要一個分布式的分層開發(fā)模型

    很久以前,所有的變更需求都會直接轉(zhuǎn)到Linus Torvalds手中,但這很快就被證明是不合適的,因?yàn)闆]有哪個人可以全面掌握像操作系統(tǒng)內(nèi)核這么復(fù)雜的項(xiàng)目。愛掏網(wǎng) - it200.com很早的時候,內(nèi)核不同領(lǐng)域的維護(hù)者們就提出了一個想法,就是把內(nèi)核的其中一部分分配給熟悉該領(lǐng)域的人。愛掏網(wǎng) - it200.com例如,網(wǎng)絡(luò)、無線、像PCI或USB這樣的驅(qū)動程序子系統(tǒng)、或者像ext2或vfat這樣的文件系統(tǒng)。愛掏網(wǎng) - it200.com然后再擴(kuò)展到由數(shù)百名維護(hù)人員負(fù)責(zé)代碼審查和整合,從而使得能夠在不犧牲產(chǎn)品質(zhì)量的情況下,在每個發(fā)布的版本中都包含成千上萬的變更。愛掏網(wǎng) - it200.com

    3. 工具的重要性

    內(nèi)核開發(fā)一直在試圖擴(kuò)大開發(fā)人員的范圍,直到BitKeeper這款源代碼管理系統(tǒng)出現(xiàn),幾乎在一夜之間社區(qū)的做法發(fā)生了改變,而Git的出現(xiàn)帶來了又一次的飛躍。愛掏網(wǎng) - it200.com如果沒有合適的工具,像內(nèi)核這樣的項(xiàng)目將無法正常運(yùn)轉(zhuǎn),從而會被自身的重量壓垮。愛掏網(wǎng) - it200.com

    4. 強(qiáng)大的輿論導(dǎo)向模式很重要

    一般來說,如果一個開發(fā)大咖拒絕了某個提交上來的變更,那么這個變更將不會被合并進(jìn)去。愛掏網(wǎng) - it200.com如果開發(fā)人員發(fā)現(xiàn)自己在幾個月前提交的代碼在郵件列表中被拒絕了,那是非常令人沮喪的。愛掏網(wǎng) - it200.com但這也保證了內(nèi)核開發(fā)可以適應(yīng)大量的用戶和問題。愛掏網(wǎng) - it200.com沒有哪個用戶社區(qū)能夠以犧牲其他群組為代價而進(jìn)行變更。愛掏網(wǎng) - it200.com我們有一個可以支持從微型系統(tǒng)到超級計(jì)算機(jī)的代碼庫,它可以應(yīng)用在很多場景上。愛掏網(wǎng) - it200.com

    5. 強(qiáng)大的“無回歸”規(guī)則也很重要

    大約在十多年前,內(nèi)核開發(fā)社區(qū)承諾,如果給定的內(nèi)核在特定的環(huán)境中能正常運(yùn)行,那么所有后續(xù)的內(nèi)核版本也能在這個環(huán)境中正常運(yùn)行。愛掏網(wǎng) - it200.com如果社區(qū)發(fā)現(xiàn)某個變更導(dǎo)致了其他問題的出現(xiàn),他們會很快地解決這個問題。愛掏網(wǎng) - it200.com該規(guī)則承諾用戶:系統(tǒng)升級不會破壞他們原來的系統(tǒng)。愛掏網(wǎng) - it200.com 因而,維護(hù)者很愿意在開發(fā)新功能的時候延續(xù)這個內(nèi)核。愛掏網(wǎng) - it200.com

    6. 公司參與到開發(fā)流程中來是至關(guān)重要的,但沒有哪家公司能夠主導(dǎo)內(nèi)核開發(fā)

    自2024年12月版本號為3.18的內(nèi)核發(fā)布以來,有將近500家公司的大約5062名個人開發(fā)者為Linux內(nèi)核做出了貢獻(xiàn)。愛掏網(wǎng) - it200.com大多數(shù)開發(fā)人員因?yàn)樗麄兊墓ぷ鞫玫搅藞蟪辏麄兯龅淖兏菫樗麄兯诘墓痉?wù)的。愛掏網(wǎng) - it200.com但是,盡管任何一家公司都可以根據(jù)具體需求改進(jìn)內(nèi)核,但是沒有哪家公司可以主導(dǎo)開發(fā)去做傷害別人或者限制內(nèi)核功能的事情。愛掏網(wǎng) - it200.com

    7. 項(xiàng)目中不應(yīng)有內(nèi)部界限

    內(nèi)核開發(fā)人員必須專注于內(nèi)核的特定部分,但只要修改是合理的,那么任何開發(fā)人員都可以對內(nèi)核的任何部分進(jìn)行修改。愛掏網(wǎng) - it200.com從而,問題在產(chǎn)生的時候就會被解決掉,而不是規(guī)避掉。愛掏網(wǎng) - it200.com開發(fā)人員對整個內(nèi)核有很多各種各樣的看法,即便是最頑固的維護(hù)者也不能無限期地擱置任何指定子系統(tǒng)中所必需的改進(jìn)。愛掏網(wǎng) - it200.com

    8. 重要的功能是從一點(diǎn)一滴開始的

    原來的0.01版內(nèi)核只有10000行代碼; 而現(xiàn)在每兩天增加10000多行。愛掏網(wǎng) - it200.com開發(fā)人員現(xiàn)在添加的一些基本的、微小的功能未來可能會發(fā)展成為重要的子系統(tǒng)。愛掏網(wǎng) - it200.com

    9. 綜上所述,25年的內(nèi)核發(fā)展歷史表明,持續(xù)地合作可以帶來共同的資源,這不是單單某個小組能夠開發(fā)出來的

    自2005年以來,來自1300多家公司的約14000名個人開發(fā)人員對內(nèi)核做出了貢獻(xiàn)。愛掏網(wǎng) - it200.com因此,Linux內(nèi)核在很多互相之間有激烈競爭關(guān)系的公司的努力下,發(fā)展成為一個規(guī)模龐大的公共資源。愛掏網(wǎng) - it200.com

    以上就是腳本之家分享給大家的關(guān)于淺談25年Linux內(nèi)核開發(fā)經(jīng)歷總結(jié)出來的九條經(jīng)驗(yàn)的全部內(nèi)容,希望對大家有所幫助。愛掏網(wǎng) - it200.com感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。愛掏網(wǎng) - it200.com感謝朋友們對本站的支持!

     

    聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
    發(fā)表評論
    更多 網(wǎng)友評論0 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 波多野结衣的AV一区二区三区 | 中文字幕一区二区区免| 成人区人妻精品一区二区不卡视频| 久久久久人妻一区精品色| 香蕉免费看一区二区三区| 国模无码一区二区三区| 亚洲码一区二区三区| 久久精品无码一区二区无码| 亚洲av综合av一区| 国产精品视频一区二区三区无码| 久久国产精品免费一区| 一本色道久久综合一区| 日本一区二区三区在线视频观看免费 | 亚洲一区二区免费视频| 亚洲一区免费观看| 国99精品无码一区二区三区| 日本成人一区二区三区| 无码少妇一区二区三区浪潮AV| 真实国产乱子伦精品一区二区三区 | 人妻久久久一区二区三区 | 欧洲无码一区二区三区在线观看| 色老板在线视频一区二区| 任你躁国产自任一区二区三区| 国产精品一区在线观看你懂的| 国产美女露脸口爆吞精一区二区| 国产激情一区二区三区| 夜夜嗨AV一区二区三区| 午夜DV内射一区二区| 亚洲一区二区在线视频| 亚洲第一区二区快射影院| 欧美激情一区二区三区成人| 日韩福利视频一区| 精品国产日韩亚洲一区| 国产精品丝袜一区二区三区| 亚洲av无码一区二区三区观看| 亚洲av无码一区二区三区四区| 无码丰满熟妇浪潮一区二区AV| 国产中的精品一区的| 丝袜无码一区二区三区| 美女毛片一区二区三区四区| 天堂成人一区二区三区|