首頁  >  文章  >  系統教程  >  Linux 黑話解釋:什麼是上游和下游?

Linux 黑話解釋:什麼是上游和下游?

WBOY
WBOY轉載
2024-02-11 11:57:20942瀏覽

術語」上游(upstream)」和」下游(downstream)」可以說是相當抽象的,普通人可能很少使用它們。如果你只是一個使用Linux的普通用戶,不涉及軟體的編寫和維護,那麼這些術語可能對你來說沒有實際意義。然而,在Linux世界的各個社區之間交流時,這些術語非常有用。

Linux 黑话解释:什么是上游和下游?

#「上游」和」下游」這兩個術語在網路、程式設計、核心甚至是供應鏈等非電腦領域都被廣泛使用。在討論上游和下游時,背景資訊非常重要。

簡單來說,上游和下游描述了資訊流的方向。

由於我們都是在連接到網路的情況下閱讀這篇文章的,讓我們看看適用於網路服務供應商(ISP)的上游/下游範例。這裡,ISP 關注的是流量。上游流量是指資料是從不同的 ISP 的用戶傳來的。例如,如果你有一個提供訂閱通訊的網站,我發送的訂閱資訊就是上游資料。

下游流量是指從一個用戶發送到不同 ISP 的另一個用戶的數據,它被認為是下游流量。使用同樣的訂閱例子,假設我的訂閱請求被批准,我在一封郵件中收到「歡迎」說明,在另一封郵件中收到最新的新聞簡報。在這種情況下,數據是順流而下的,因為它是由你(好吧,可能是作為代表你進行操作的自動化軟體)發送給我,一個來自另外 ISP 的用戶。

總結:我需要或想要的東西(你的通訊)是上游的。你提供給我的東西(歡迎詞和實際的通訊)是下游的。

資料是在上游還是在下游,對我們使用者來說可能並不重要,但對監控頻寬使用的伺服器管理員,以及發行商(distributor)(發行版的製作者)和程式設計師來說卻很重要。

在 Linux 世界裡,上游和下游有兩個主要背景。一個是關於核心的,另一個是關於應用程式的。還有其他的,但我希望我可以透過這兩個來表達我的想法。

Linux 核心背景下的上游和下游

#Linux 是 核心。在建立發行版時,Linux 發行版首先使用未經修改的核心原始碼。然後添加必要的補丁,對核心進行配置。核心的配置是基於發行版想要提供的功能和選項。一旦決定了,就相應地創建了內核。

原始核心來自發行版的上游。當發行版得到原始碼時,它就流向下游。一旦發行版得到了內核程式碼,它就會留在發行商那裡,同時對它進行改造。它仍然是我們用戶的上游,直到它準備好被發布。

發行版建立的核心版本將添加補丁和啟用某些功能和選項。這種配置是由發行商決定的。這就是為什麼有幾個 Linux 流派的原因,例如,Debian🔗 www.debian.org 與 Red Hat🔗 www.redhat.com。發行商會決定向他們的用戶群提供哪些選項,並相應地編譯核心。

一旦這項工作完成,它就會放在一個倉庫中準備發布,我們就可以獲得一份副本。這個副本向下游流向我們。

同樣地,如果發行商發現了核心中的一個錯誤,修復了它,然後將補丁發送給核心開發者,這樣他們就可以為下游的每個人修補核心。這被稱為對上游的貢獻,因為這裡的流量是向上流向原始來源的。

在應用程式背景下的上游和下游

同樣,從技術上講,Linux 是內核,其他都是附加軟體。發行商也會在他們的專案中加入額外的軟體。在這種情況下,有幾個上游。一個發行版可以包含任何數量的應用程序,如 X、KDE、Gnome 等等。

讓我們想像一下,你在使用 nano🔗 www.nano-editor.org 編輯器時發現它不能正常工作,於是你向發行版提交了一份錯誤報告。發行商的程式設計師會查看它,如果發現他們在 nano 中插入了一個錯誤,他們將修復它並在其倉庫中發布一個新版本。如果他們發現不是他們製造了這個錯誤,發行商將向上游的 nano 程式設計師提交一份錯誤報告。

當涉及到像是錯誤報告、功能請求等事情時,最好是將它們發送到上游的發行商那裡,因為他們維護著你所使用的發行版的核心和附加應用程式。例如,我在幾台機器上使用一個叫做 Q4OS🔗 q4os.org 的發行版。如果我發現一個程式中的錯誤,我會把它報告給 Q4OS 的人。如果你碰巧使用的是 Mint🔗 linuxmint.com,你會把它回報給 Mint 專案。

比說,如果你在一個普通的 Linux 論壇上發布一個問題,而你提到你在使用 Mint,你一定會得到這樣的回應。 「這個問題最好在 Mint 論壇上處理」。用之前的 nano 錯誤的例子,有可能是 Mint 的程式設計師對 nano 進行了修改,使其在他們的發行版中運作得更好。如果他們確實犯了一個錯誤,他們會想知道這個錯誤,而且在犯了這個錯誤之後,他們會是修復它的人。

一旦修復,更新的程式就會放入你可以使用的倉庫。當你得到更新時,它就會順流而下到你那裡,像這樣:

◈ 如果發行商進行了修復,新版本就會在發行倉庫中提供。

◈ 如果該應用程式的程式設計師進行了修復,它將被送到測試新程式碼的發行商那裡。一旦發現它工作正常,它就會被放在倉庫中,然後向下游流去。

自動流向下游

#曾經有一段時間,用戶得自己獲取更新。使用者會得到更新的原始碼並編譯一個新的可執行檔。隨著時間的推移,像 apt 這樣的工具被創造出來,允許使用者從軟體庫中提取更新的二進位(可執行檔)。 apt 程式是 Debian 的,但其他發行版也有他們自己的用於此用途的類似程式。

apt 這樣的程式負責處理上游/下游的工作。如果你用升級選項運行 apt,像這樣:

sudo apt upgrade

它將查看(上游)發行倉庫,找到任何需要的更新包,並將它們拉到您的機器上(下游)並安裝它們。

有些發行版會更進一步。發行版的程式設計師和維護者總是在檢查他們的產品。很多時候,應用程式的程式設計師會對他們的程式進行改進。系統庫會經常更新,安全漏洞也會被堵上,等等。這些更新會提供給發行商,然後由發行商在發行倉庫中提供新的版本。

與其讓你每天運行 apt,一些發行版會提醒你有可用的更新並詢問你是否需要它們。如果你想要,只要接受,更新就會被送到你的機器上並安裝。

總結

上游和下游其實只是資料流的方向。這個資料在上游或下游流動的方式取決於最終需要誰來處理它。基本上,程式設計師是上游,使用者是下游。

同樣,作為用戶,我們真的不需要關心這些術語,但這些概念確實有助於軟體的開發和維護。透過將工作引向適當的小組,避免了重複工作。這也確保了標準的維護。例如,Chrome 瀏覽器可能需要做一些細微的改變,以便在某個發行版上運行,但它的核心是 Chrome 瀏覽器,它的外觀和行為都不會有大的變化。

如果你發現你的發行版中的任何程式有錯誤,只需向發行版的維護者報告,這通常是透過他們的網站進行的。你將把它發送到上游,但你是否記得你在向上游發送報告並不重要。

以上是Linux 黑話解釋:什麼是上游和下游?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:lxlinux.net。如有侵權,請聯絡admin@php.cn刪除