每個Fedora系統(tǒng)都運(yùn)行著一個內(nèi)核,許多代碼片段組合在一起使之成為我們現(xiàn)在所用linux系統(tǒng),每個Fedora內(nèi)核都起始于一個來自于上游社區(qū)的基線版本——通常稱之為 vanilla內(nèi)核,上游內(nèi)核就是標(biāo)準(zhǔn)。
(Fedora 的)目標(biāo)是包含盡可能多的上游代碼,這樣使得 bug 修復(fù)和 API 更新更加容易,同時也會有更多的人審查代碼,在理想情況下,F(xiàn)edora 能夠直接獲取 kernel.org 的內(nèi)核,然后發(fā)送給所有用戶。
現(xiàn)實(shí)情況是,使用 vanilla 內(nèi)核并不能完全滿足 Fedora,然而 Vanilla 內(nèi)核可能并不支持一些 Fedora 用戶希望擁有的功能。用戶接收的 [Fedora 內(nèi)核] 是在 vanilla 內(nèi)核之上打了很多補(bǔ)丁的內(nèi)核。這些補(bǔ)丁被認(rèn)為“不在樹上out of tree”。許多這些位于補(bǔ)丁樹之外的補(bǔ)丁都不會存在太久。如果某補(bǔ)丁能夠修復(fù)一個問題,那么該補(bǔ)丁可能會被合并到 Fedora 樹,以便用戶能夠更快地收到修復(fù);當(dāng)內(nèi)核變基到一個新版本時,在新版本中的補(bǔ)丁都將被清除。
一些補(bǔ)丁會在 Fedora 內(nèi)核樹上存在很長時間。一個很好的例子是,安全啟動補(bǔ)丁就屬于這類補(bǔ)丁,這些補(bǔ)丁提供了 Fedora 希望支持的功能,即使上游社區(qū)還沒有接受它們。保持這些補(bǔ)丁更新是需要付出很多努力的,所以 Fedora 嘗試減少不被上游內(nèi)核維護(hù)者接受的補(bǔ)丁數(shù)量。
通常來說,想要在 Fedora 內(nèi)核中獲得一個補(bǔ)丁的最佳方法是先給 Linux 內(nèi)核郵件列表(LKML) 發(fā)送補(bǔ)丁,然后請求將該補(bǔ)丁包含到 Fedora 中;如果某個維護(hù)者接受了補(bǔ)丁,就意味著 Fedora 內(nèi)核樹中將來很有可能會包含該補(bǔ)丁,一些來自于 GitHub 等地方的還沒有提交給 LKML 的補(bǔ)丁是不可能進(jìn)入內(nèi)核樹的,首先向 LKML 發(fā)送補(bǔ)丁是非常重要的,它能確保 Fedora 內(nèi)核樹中攜帶的補(bǔ)丁是功能正常的。如果沒有社區(qū)審查,F(xiàn)edora 最終攜帶的補(bǔ)丁將會充滿 bug 并會導(dǎo)致問題。
Fedora 內(nèi)核中包含的代碼來自許多地方,一切都需要提供最佳的體驗(yàn)。希望會給大家?guī)韼椭?/p>