欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
如何加入Linux內核開(kāi)發(fā)社區(1) | Tony Bai

本文翻譯自The Linux Foundation的《How to Participate in the Linux Community》(基于2012-03-21最新版本),原作者為Jonathan Corbet(corbet@lwn.net)。下面是該文章第一章節的中譯文。

1、內核開(kāi)發(fā)過(guò)程指南

本文旨在幫助那些在參與開(kāi)發(fā)社區(community)工作過(guò)程中遭遇些許挫折的開(kāi)發(fā)人員(以及他們的管理者)。對于那些不是十分熟悉Linux 內核開(kāi)發(fā)(或通常所說(shuō)的自由軟件開(kāi)發(fā))的開(kāi)發(fā)人員,本文將以一種易于理解的方式記錄社區是如何進(jìn)行開(kāi)發(fā)工作的。雖然這里會(huì )提及一些技術(shù)資料,但更 多是面向過(guò)程的討論,這些內容不需要你對內核編程有較深入的了解。

1.1、內容大綱

本文后面章節的內容涵蓋了內核開(kāi)發(fā)過(guò)程以及開(kāi)發(fā)人員及其雇傭者所遇到的各種挫折。本文還列舉了諸多內核代碼應該被合并(merge)到官方內核 (主線(xiàn),mainline)的原因,包括對用戶(hù)自動(dòng)可用(automatic availability to users)、社區提供各種形式的支持以及對內核開(kāi)發(fā)演進(jìn)方向的影響力等。被Linux內核采納的代碼必須使用GPL兼容許可證進(jìn)行授權。

章節2介紹了Linux內核的開(kāi)發(fā)過(guò)程,內核發(fā)布的周期以及合并窗口(merge window)機制。該章節還涵蓋了補丁開(kāi)發(fā)、評審以及合并周期等各種不同階段。關(guān)于一些工具和郵件列表的討論也包含在該章節中。我們鼓勵那些想要開(kāi)始內 核開(kāi)發(fā)的開(kāi)發(fā)者們去跟蹤和修正bug,并以此作為最初階段的練習。

章節3涵蓋了早期階段的項目規劃(early-stage project planning),并重點(diǎn)強調了開(kāi)發(fā)社區的盡早參與。

章節4中的內容是有關(guān)編碼過(guò)程的;該章節討論了其他開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程中所遇到的一些陷阱;涵蓋了一些對補丁的要求;并介紹了一些用于幫助保證內 核補丁正確性的工具。

章節5談到了發(fā)布補丁評審的過(guò)程。為了能讓開(kāi)發(fā)社區認真對待發(fā)布(post)的補丁,開(kāi)發(fā)者必須對補丁內容進(jìn)行適當的格式化和描述,并且開(kāi)發(fā)者必 須將補丁發(fā)到合適的地方。遵循本章節中的建議可以最大化地提高你的補丁被開(kāi)發(fā)社區接受的可能性。

章節6涵蓋了發(fā)布補丁后要做的事情;發(fā)布補丁那刻離最終完成還差得很遠。與評審者的合作是開(kāi)發(fā)過(guò)程中的關(guān)鍵環(huán)節;這節提供了許多有關(guān)如何在這一重 要階段避免問(wèn)題的小建議。這里告誡開(kāi)發(fā)者不要想當然的認為當補丁被合并到主線(xiàn)后工作就完成了。

章節7介紹了一些"高級"主題:使用git管理補丁以及評審其他開(kāi)發(fā)人員發(fā)布的補丁。

章節8以更多的有關(guān)內核開(kāi)發(fā)的信息來(lái)源作為結束此文。

1.2、這篇文檔是關(guān)于什么的

Linux內核是現有最大的并且是最活躍的自由軟件項目之一,它擁有600多萬(wàn)行代碼以及超過(guò)1000名積極貢獻者。自從1991年問(wèn)世以 來(lái),Linux內核已經(jīng)逐漸演化成一種最佳的操作系統組件,在袖珍數字音樂(lè )播放器、桌面個(gè)人計算機、現有的超級計算機以及介于個(gè)人計算機與超級計 算機之間的所有類(lèi)型系統上都有Linux內核在運行。它是一種幾乎適合所有情況的穩定的、高效的和可伸縮的解決方案。

伴隨著(zhù)Linux內核的發(fā)展,希望參與內核開(kāi)發(fā)的開(kāi)發(fā)人員和公司的數量也迎來(lái)了一個(gè)較大的增長(cháng)。硬件制造商想要確保Linux可以良好地支持他們 的產(chǎn)品,使得這些產(chǎn)品對Linux用戶(hù)具有吸引力。那些將Linux作為一個(gè)組件集成到它們產(chǎn)品中的嵌入式系統供應商想要Linux能夠盡可能地 滿(mǎn)足和適合接下來(lái)的任務(wù)。而產(chǎn)品基于Linux的Linux發(fā)行版供應商以及其他軟件供應商更是對Linux內核的能力、性能以及可靠性有著(zhù)明確 的興趣。最終用戶(hù)也常常希望通過(guò)改變Linux來(lái)使得Linux更好地滿(mǎn)足他們的需要。

Linux的一個(gè)最引入注目的特點(diǎn)就是它對開(kāi)發(fā)者的平易近人;任何具備所需必要的技能的開(kāi)發(fā)者都可以對Linux進(jìn)行改進(jìn),影響Linux的發(fā)展 方向。專(zhuān)利產(chǎn)品無(wú)法提供這種開(kāi)放性,這是自由軟件開(kāi)發(fā)過(guò)程的一個(gè)特質(zhì)。但是,更可能的是,內核要比其他絕大多數自由軟件項目更加開(kāi)放。一個(gè)典型的 三個(gè)月內核開(kāi)發(fā)周期可能涉及超過(guò)來(lái)自100多個(gè)不同公司的1000多名開(kāi)發(fā)者(或沒(méi)有受雇傭于任何公司)的開(kāi)發(fā)工作。

在內核開(kāi)發(fā)社區中工作不是特別難。不過(guò),盡管這樣,許多潛在的貢獻者在嘗試進(jìn)行內核開(kāi)發(fā)工作時(shí)都遇到過(guò)困難。內核開(kāi)發(fā)社區逐步形成了自己與眾不同 的運營(yíng)方式,這種方式使得Linux內核在每天成千上萬(wàn)行代碼被改變的情況下依舊運行順暢(并且生產(chǎn)出高質(zhì)量的產(chǎn)品)。因此Linux內核的開(kāi)發(fā) 過(guò)程與專(zhuān)利產(chǎn)品的開(kāi)發(fā)方法有著(zhù)較大區別也就不足為奇了。

對新開(kāi)發(fā)者來(lái)說(shuō),內核的開(kāi)發(fā)過(guò)程可能看上去有些奇怪和咄咄逼人,但是其背后卻有著(zhù)充分的理由和豐富的經(jīng)驗作為支撐。那些不理解內核開(kāi)發(fā)社區工作方 式(或者,更糟糕的是試圖無(wú)視或規避)的開(kāi)發(fā)者必將經(jīng)歷挫折。內核開(kāi)發(fā)社區會(huì )幫助那些主動(dòng)嘗試學(xué)習內核開(kāi)發(fā)過(guò)程的開(kāi)發(fā)者們,而對那些不聽(tīng)從或不在 乎開(kāi)發(fā)過(guò)程的開(kāi)發(fā)者,開(kāi)發(fā)社區的耐心也是有限的。

希望那些讀過(guò)此篇文章的開(kāi)發(fā)者們都能避免這樣的挫折經(jīng)歷。這里雖然有大量資料需要閱讀,但用不了多長(cháng)時(shí)間閱讀這些資料所付出的努力就會(huì )獲得回報。 開(kāi)發(fā)社區總是需要那些愿意幫助內核改善的開(kāi)發(fā)者;接下來(lái)的內容應該可以幫助你 — 或者那些為你工作的開(kāi)發(fā)者 — 加入到我們的社區。

1.3、貢獻

本文由Jonathan Corbet,corbet@lwn.net撰寫(xiě),并根據James Berry、Alex Chiang、Roland Dreier、Randy Dunlap、Jake Edge、Jiri Kosina、Matt Mackall、Amanda McPherson、Andrew Morton和Jochen VoB等人的評論作了改進(jìn)。

Linux基金會(huì )(Linux Foundation)對這篇文章的撰寫(xiě)提供了支持;特別感謝Amanda McPherson,是她看到了這份努力的價(jià)值,并努力使之成為現實(shí)。

1.4、將代碼合入主線(xiàn)的重要性

一些公司和開(kāi)發(fā)者偶爾也想知道為何他們要這么麻煩地去學(xué)習如何參與內核開(kāi)發(fā)社區的工作,并且要將代碼合并到主線(xiàn)版本內核(主線(xiàn)版本內核由 Linus Torvalds負責維護,并且被Linux發(fā)行商作為基礎版本使用)中去。就短期來(lái)講,貢獻代碼可能看似是一種可避免的開(kāi)銷(xiāo);并且獨立保留代碼并直接對 用戶(hù)提供支持看起來(lái)也更加容易。但事情的真相是獨立保留代碼(樹(shù)外,out of tree)是一種虛假經(jīng)濟(false economy)。

下面列舉一些內核開(kāi)發(fā)過(guò)程方面相關(guān)的內容,以此說(shuō)明一下維護離樹(shù)代碼所要付出的代價(jià),其中大部分將在本文后面有更詳細的討論??紤]:

  * 合并到主線(xiàn)內核的代碼對所有Linux用戶(hù)可用。它將自動(dòng)出現在所有使能它(enable it)的發(fā)行版中。你無(wú)需考慮驅動(dòng)盤(pán)、下載或支持不同發(fā)行版的多個(gè)版本的麻煩事;這對于開(kāi)發(fā)者和最終用戶(hù)而言都是奏效的。代碼合入主線(xiàn)版本解決了大量發(fā)行 版以及支持的問(wèn)題。

  * 盡管內核開(kāi)發(fā)者們努力維護一個(gè)穩定的對用戶(hù)空間的接口,但內部的內核API卻是不斷變化的。內部接口的不穩定性其實(shí)是一種蓄意的設計決策;它允許開(kāi)發(fā)者們 隨時(shí)做出根本性的改進(jìn),而這樣做的結果將是獲得更高質(zhì)量的代碼。不過(guò)這樣的策略導致的一個(gè)結果就是任何離樹(shù)代碼要想和新內核一起工作就必須要有持 續的維護。維護離樹(shù)代碼就需要大量的工作,而這些工作僅僅是為了能讓代碼正常工作。

    相反,主線(xiàn)中的代碼則不需要開(kāi)發(fā)人員去修正那些因API變化而被破壞的代碼。因此合并到主線(xiàn)的代碼具有更低的維護成本。

  * 除此之外,內核中的代碼經(jīng)常被其他開(kāi)發(fā)人員改進(jìn)。授權你的用戶(hù)社區與客戶(hù)去改進(jìn)你的產(chǎn)品常常能帶來(lái)令人驚訝的結果。

  *  內核代碼在合入主線(xiàn)前后都要經(jīng)過(guò)評審。無(wú)論原開(kāi)發(fā)者的技術(shù)水準有多么高超,評審過(guò)程總是能找到改進(jìn)代碼的方法。評審過(guò)程常常會(huì )發(fā)現嚴重bug以及安全問(wèn) 題。這些結論對那些在封閉環(huán)境下開(kāi)發(fā)出來(lái)的代碼同樣是成立的;這樣的代碼得益于外部開(kāi)發(fā)者們的評審。而未經(jīng)外部開(kāi)發(fā)者評審的離樹(shù)代碼則是低質(zhì)量的 代碼。

  * 參與內核開(kāi)發(fā)過(guò)程是你影響內核開(kāi)發(fā)方向的一種方式。雖然旁觀(guān)者的抱怨也會(huì )被傾聽(tīng),但積極的開(kāi)發(fā)者發(fā)出的聲音顯然更強健有力-并且他們具備實(shí)現這些改變以讓 內核更好地滿(mǎn)足他們需要的能力。

  * 當你的代碼單獨維護時(shí),就存在這種可能性:第三方會(huì )貢獻類(lèi)似特性的一個(gè)不同的實(shí)現。一旦出現這種情況,再將你的代碼合并到主線(xiàn)將變得更加困難 – 甚至是不可能。那樣你就將面臨不愉快的選擇,(1)要么長(cháng)期離樹(shù)維護一個(gè)非標準特性,(2)要么放棄你的代碼,讓你的用戶(hù)遷移到主線(xiàn)版本。

  * 貢獻代碼是整個(gè)保證開(kāi)發(fā)過(guò)程正常運轉的基本行為。通過(guò)貢獻你的代碼,你可以為內核添加新功能,提供能力以及那些對其他內核開(kāi)發(fā)者有用的例子。如果你曾為 Linux開(kāi)發(fā)過(guò)代碼(或正在考慮這么做),你肯定對這個(gè)平臺的持續成功十分感興趣;而貢獻代碼就是幫助Linux成功的一種最佳方式。

上面的所有論證適用于任何離樹(shù)內核代碼,包括那些專(zhuān)有的或僅以二進(jìn)制形式提供的代碼。不過(guò),在考慮發(fā)行任何僅二進(jìn)制形式(binary- only)內核代碼之前,你應該考慮下面一些額外因素:

  * 關(guān)于發(fā)行專(zhuān)有內核模塊的法律條款充其量是模糊不清的;相當多的內核版權持有者認為絕大多數僅二進(jìn)制模塊是內核的衍生產(chǎn)品(derived product),因此他們的發(fā)行版違背了GNU通用公共許可證(GNU General Public License,下面還有更多關(guān)于這個(gè)許可證的說(shuō)明)。筆者不是律師,本文中的內容千萬(wàn)不能被視為法律建議。閉源(closed-source)模塊真正 的法律地位只能由法院判決決定。但無(wú)論如何困擾這些模塊的不確定性是存在的。

  * 二進(jìn)制模塊增加了調試內核問(wèn)題的難度,甚至于大多內核開(kāi)發(fā)人員都不愿嘗試。因此僅二進(jìn)制模塊的發(fā)行將增加你的用戶(hù)獲得社區支持的難度。

  * 對于僅二進(jìn)制模塊的發(fā)行者而言,支持也是更為困難的,他們必須為每個(gè)他們想要支持的發(fā)行版以及內核版本提供一個(gè)模塊版本。一個(gè)模塊需要幾十個(gè)構建才能全面 覆蓋到所有發(fā)行版和不同版本的內核,并且你的最終用戶(hù)每次升級內核后都需要單獨升級你的這個(gè)模塊。

  * 上面所說(shuō)的有關(guān)代碼評審的內容對閉源代碼而言更加適用。但由于代碼不公開(kāi),無(wú)法被社區評審,因此毫無(wú)疑問(wèn)將有嚴重問(wèn)題。

嵌入式系統制造商特別可能被慫恿而忽視本節前面所說(shuō)的那些內容,因為他們相信他們交付的是一個(gè)完備的產(chǎn)品,產(chǎn)品使用的是一個(gè)凍結了的內核版本,發(fā) 布后不需要再進(jìn)行更多的開(kāi)發(fā)了。這種說(shuō)法忽略了被廣受贊同的代碼評審的價(jià)值以及允許最終用戶(hù)向你的產(chǎn)品中添加能力的價(jià)值。但是這些產(chǎn)品的商業(yè)生命 周期也都有限,之后必須發(fā)布產(chǎn)品的新版本。在這一點(diǎn)上,代碼在主線(xiàn)上且維護良好的制造商將占據更好的位置,并且可以更快地推出滿(mǎn)足市場(chǎng)的新產(chǎn)品。

1.5、許可證

代碼在若干許可證的授權下被貢獻到Linux內核中,但所有代碼必須與作為L(cháng)inux內核整體許可證的GNU通用公共許可證版本2(GPLv2) 兼容。實(shí)際上,這意味著(zhù)所有貢獻的代碼要么遵照GPLv2許可證(可選的,語(yǔ)言允許在更高版本的GPL許可證下發(fā)布),要么遵照三句版BSD許可 證。任何不遵照兼容許可證的貢獻代碼將不能被內核所接受。

對于貢獻到內核中的代碼,是不需要進(jìn)行版權轉讓的。所有合入主線(xiàn)內核的代碼保留其最初的所有權;因此內核目前已經(jīng)有成千上萬(wàn)個(gè)所有者了。

這種所有權結構的一個(gè)含義是任何修改內核許可證的嘗試是幾乎注定會(huì )失敗的。幾乎沒(méi)有什么實(shí)際情況可以得到所有版權所有者的同意(或者將他們的代碼 從內核中移除)。因此,在可見(jiàn)的未來(lái),看不到將許可證遷移到GPL版本3的希望。

所有貢獻到內核的代碼必須是正當的自由軟件。因此,來(lái)自匿名(或筆名)的貢獻者的代碼將不會(huì )被接受。所有貢獻者都被要求在他們的代碼上"簽別", 聲明代碼可與內核一起在GPL許可證下發(fā)行。那些沒(méi)有被其原作者授權為自由軟件的代碼或存在版權相關(guān)問(wèn)題風(fēng)險的代碼(例如那些從通過(guò)反向工程努力 獲得的缺少適當保障的代碼)將不能被貢獻到內核中。

在Linux開(kāi)發(fā)郵件列表中經(jīng)??吹接嘘P(guān)版權事宜相關(guān)的問(wèn)題。這些問(wèn)題一般不會(huì )缺少回答,但大家應該牢記回答這些問(wèn)題的人不是律師,不能提供法律 建議。如果你有任何與Linux源代碼相關(guān)的法律問(wèn)題,你唯一的選擇是與熟知這一領(lǐng)域的律師談?wù)?。依?lài)從技術(shù)郵件列表中獲得的答案是一個(gè)危險的事情。

? 2012, bigwhite. 版權所有.

0

Related posts:

  1. 也談Linux Kernel Hacking – 內核配置、編譯與安裝
  2. 也談Linux Kernel Hacking – Kconfig與Kbuild
  3. 使用autoconf解決可移植性問(wèn)題
  4. Hello,autoconf和automake
  5. 使用Libtool創(chuàng )建庫文件
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
linux kernel測試初探
如何成為一個(gè)Linux內核開(kāi)發(fā)者
如何成為一個(gè)Linux系統內核開(kāi)發(fā)者
華為否認參與提交Linux不安全補丁
需要多久才能看完linux內核源碼?
Linux之父Linus Torvalds談軟件開(kāi)發(fā)管理經(jīng)驗
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久