自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

系統(tǒng) Linux
“上游upstream” 和 “下游downstream”這兩個(gè)術(shù)語是相當(dāng)模糊的,我認(rèn)為一般人并不會(huì)真正使用它們。如果你只是一個(gè) Linux 用戶,并且不編寫或維護(hù)軟件,那么很有可能這些術(shù)語對(duì)你來說毫無意義,但它們對(duì) Linux 世界中各個(gè)社區(qū)之間的交流方式有益的。

“上游upstream” 和 “下游downstream”這兩個(gè)術(shù)語是相當(dāng)模糊的,我認(rèn)為一般人并不會(huì)真正使用它們。如果你只是一個(gè) Linux 用戶,并且不編寫或維護(hù)軟件,那么很有可能這些術(shù)語對(duì)你來說毫無意義,但它們對(duì) Linux 世界中各個(gè)社區(qū)之間的交流方式有益的。

這些術(shù)語被用于網(wǎng)絡(luò)、編程、內(nèi)核,甚至在非計(jì)算機(jī)領(lǐng)域,如供應(yīng)鏈。當(dāng)我們談?wù)撋嫌魏拖掠蔚臅r(shí)候,討論背景是很重要的。

在其最簡(jiǎn)單的形式中,上游和下游是信息流動(dòng)的方向。

由于我們都是在連接到互聯(lián)網(wǎng)的情況下閱讀這篇文章的,讓我們看看適用于互聯(lián)網(wǎng)服務(wù)提供商(ISP)的上游/下游例子。這里,ISP 關(guān)注的是流量。上游流量是指數(shù)據(jù)是從不同的 ISP 的用戶處傳來的。例如,如果你有一個(gè)提供訂閱通訊的網(wǎng)站,我發(fā)送的訂閱信息就是上游數(shù)據(jù)。

下游流量是指從一個(gè)用戶發(fā)送到不同 ISP 的另一個(gè)用戶的數(shù)據(jù),它被認(rèn)為是下游流量。使用同樣的訂閱例子,假設(shè)我的訂閱請(qǐng)求被批準(zhǔn),我在一封郵件中收到“歡迎”說明,在又一封郵件中收到最新的新聞簡(jiǎn)報(bào)。在這種情況下,數(shù)據(jù)是順流而下的,因?yàn)樗怯赡?好吧,可能是作為代表你進(jìn)行操作的自動(dòng)化軟件)發(fā)送給我,一個(gè)來自另外 ISP 的用戶。

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

數(shù)據(jù)是在上游還是在下游,對(duì)我們用戶來說可能并不重要,但對(duì)監(jiān)控帶寬使用的服務(wù)器管理員,以及發(fā)行商distributor(發(fā)行版的制作者)和程序員來說卻很重要。

在 Linux 世界里,上游和下游有兩個(gè)主要背景。一個(gè)是關(guān)于內(nèi)核的,另一個(gè)是關(guān)于應(yīng)用程序的。還有其他的,但我希望我可以通過這兩個(gè)來表達(dá)我的想法。

Linux 內(nèi)核背景下的上游和下游

Linux 就是 內(nèi)核。在創(chuàng)建發(fā)行版時(shí),Linux 發(fā)行版首先使用未經(jīng)修改的內(nèi)核源代碼。然后添加必要的補(bǔ)丁,對(duì)內(nèi)核進(jìn)行配置。內(nèi)核的配置是基于發(fā)行版想要提供的功能和選項(xiàng)。一旦決定了,就相應(yīng)地創(chuàng)建了內(nèi)核。

原始內(nèi)核來自發(fā)行版的上游。當(dāng)發(fā)行版得到源代碼時(shí),它就流向下游。一旦發(fā)行版得到了內(nèi)核代碼,它就會(huì)留在發(fā)行商那里,同時(shí)對(duì)它進(jìn)行改造。它仍然是我們用戶的上游,直到它準(zhǔn)備好被發(fā)布。

發(fā)行版創(chuàng)建的內(nèi)核版本將添加補(bǔ)丁和啟用某些功能和選項(xiàng)。這種配置是由發(fā)行商決定的。這就是為什么有幾種 Linux 流派的原因,例如,Debian 與 Red Hat。發(fā)行商會(huì)決定向他們的用戶群提供哪些選項(xiàng),并相應(yīng)地編譯內(nèi)核。

一旦這項(xiàng)工作完成,它就會(huì)放在一個(gè)倉(cāng)庫(kù)中準(zhǔn)備發(fā)布,我們就可以獲得一份副本。這個(gè)副本向下游流向我們。

同樣地,如果發(fā)行商發(fā)現(xiàn)了內(nèi)核中的一個(gè)錯(cuò)誤,修復(fù)了它,然后將補(bǔ)丁發(fā)送給內(nèi)核開發(fā)者,這樣他們就可以為下游的每個(gè)人修補(bǔ)內(nèi)核。這被稱為對(duì)上游的貢獻(xiàn),因?yàn)檫@里的流量是向上流向原始來源的。

在應(yīng)用程序背景下的上游和下游

同樣,從技術(shù)上講,Linux 是內(nèi)核,其他都是附加軟件。發(fā)行商也會(huì)在他們的項(xiàng)目中加入額外的軟件。在這種情況下,有幾個(gè)上游。一個(gè)發(fā)行版可以包含任何數(shù)量的應(yīng)用程序,如 X、KDE、Gnome 等等。

讓我們想象一下,你在使用 nano 編輯器時(shí)發(fā)現(xiàn)它不能正常工作,于是你向發(fā)行版提交了一份錯(cuò)誤報(bào)告。發(fā)行商的程序員會(huì)查看它,如果發(fā)現(xiàn)他們?cè)?nano 中插入了一個(gè)錯(cuò)誤,他們將修復(fù)它并在其倉(cāng)庫(kù)中發(fā)布一個(gè)新版本。如果他們發(fā)現(xiàn)不是他們制造了這個(gè)錯(cuò)誤,發(fā)行商將向上游的 nano 程序員提交一份錯(cuò)誤報(bào)告。

當(dāng)涉及到像錯(cuò)誤報(bào)告、功能請(qǐng)求等事情時(shí),最好是將它們發(fā)送到上游的發(fā)行商那里,因?yàn)樗麄兙S護(hù)著你所使用的發(fā)行版的內(nèi)核和附加應(yīng)用程序。例如,我在幾臺(tái)機(jī)器上使用一個(gè)叫做 Q4OS 的發(fā)行版。如果我發(fā)現(xiàn)一個(gè)程序中的錯(cuò)誤,我會(huì)把它報(bào)告給 Q4OS 的人。如果你碰巧使用的是 Mint,你會(huì)把它報(bào)告給 Mint 項(xiàng)目。

比如說,如果你在一個(gè)普通的 Linux 論壇上發(fā)布一個(gè)問題,而你提到你在使用 Mint,你肯定會(huì)得到這樣的回復(fù)?!斑@個(gè)問題最好在 Mint 論壇上處理”。用之前的 nano 錯(cuò)誤的例子,有可能是 Mint 的程序員對(duì) nano 進(jìn)行了修改,使其在他們的發(fā)行版中運(yùn)行得更好。如果他們確實(shí)犯了一個(gè)錯(cuò)誤,他們會(huì)想知道這個(gè)錯(cuò)誤,而且在犯了這個(gè)錯(cuò)誤之后,他們會(huì)是修復(fù)它的人。

一旦修復(fù),更新的程序就會(huì)被放入你可以使用的倉(cāng)庫(kù)。當(dāng)你得到更新時(shí),它就會(huì)順流而下到你那里,像這樣:

如果發(fā)行商進(jìn)行了修復(fù),新版本就會(huì)在發(fā)行倉(cāng)庫(kù)中提供。

如果該應(yīng)用程序的程序員進(jìn)行了修復(fù),它將被發(fā)送到測(cè)試新代碼的發(fā)行商那里。一旦發(fā)現(xiàn)它工作正常,它就會(huì)被放在倉(cāng)庫(kù)中,向下游流去。

自動(dòng)流向下游

曾經(jīng)有一段時(shí)間,用戶得自己獲取更新。用戶會(huì)得到更新的源代碼并編譯一個(gè)新的可執(zhí)行文件。隨著時(shí)間的推移,像 apt 這樣的工具被創(chuàng)造出來,允許用戶從軟件庫(kù)中提取更新的二進(jìn)制文件(可執(zhí)行文件)。apt 程序是 Debian 的,但其他發(fā)行版也有他們自己的用于此用途的類似程序。

像 apt 這樣的程序負(fù)責(zé)處理上游/下游的工作。如果你用升級(jí)選項(xiàng)運(yùn)行 apt,像這樣:

sudo apt upgrade

它將查看(上游)發(fā)行倉(cāng)庫(kù),找到任何需要的更新包,并將它們拉到你的機(jī)器上(下游)并安裝它們。

有些發(fā)行版會(huì)更進(jìn)一步。發(fā)行版的程序員和維護(hù)者總是在檢查他們的產(chǎn)品。很多時(shí)候,應(yīng)用程序的程序員會(huì)對(duì)他們的程序進(jìn)行改進(jìn)。系統(tǒng)庫(kù)會(huì)經(jīng)常更新,安全漏洞也會(huì)被堵上,等等。這些更新會(huì)提供給發(fā)行商,然后由發(fā)行商在發(fā)行倉(cāng)庫(kù)中提供新的版本。

與其讓你每天運(yùn)行 apt,一些發(fā)行版會(huì)提醒你有可用的更新并詢問你是否需要它們。如果你想要,只要接受,更新就會(huì)被發(fā)送到你的機(jī)器上并安裝。

總結(jié)

上游和下游實(shí)際上只是數(shù)據(jù)流的方向。這個(gè)數(shù)據(jù)在上游或下游流動(dòng)的方式取決于最終需要誰來處理它。基本上,程序員是上游,用戶是下游。

同樣,作為用戶,我們真的不需要關(guān)心這些術(shù)語,但這些概念確實(shí)有助于軟件的開發(fā)和維護(hù)。通過將工作引向適當(dāng)?shù)男〗M,避免了重復(fù)工作。這也確保了標(biāo)準(zhǔn)的維護(hù)。例如,Chrome 瀏覽器可能需要做一些細(xì)微的改變,以便在某個(gè)發(fā)行版上運(yùn)行,但它的核心是 Chrome 瀏覽器,它的外觀和行為都不會(huì)有大的變化。

如果你發(fā)現(xiàn)你的發(fā)行版中的任何程序有錯(cuò)誤,只需向發(fā)行版的維護(hù)者報(bào)告,這通常是通過他們的網(wǎng)站進(jìn)行的。你將會(huì)把它發(fā)送到上游,但你是否記得你在向上游發(fā)送報(bào)告并不重要。

責(zé)任編輯:未麗燕 來源: Linux中國(guó)
相關(guān)推薦

2020-09-16 06:07:17

LinuxUbuntu LTS長(zhǎng)期支持

2020-09-04 06:26:22

Linux桌面環(huán)境操作系統(tǒng)

2020-10-24 17:44:57

LinuxFOSS自由和開源軟件

2021-12-16 14:25:03

Linux定時(shí)任務(wù)

2020-09-13 09:19:58

Linux Linux 發(fā)行版操作系統(tǒng)

2020-11-10 22:57:32

LinuxGUICLI

2020-11-10 11:29:36

LinuxGUICLI

2020-09-22 07:32:56

Linuxstat 命令滾動(dòng)發(fā)行版

2020-10-31 17:00:33

Linux顯示管理器

2020-09-22 07:33:50

Linux

2021-12-20 14:56:07

LinuxTTY

2021-09-23 16:43:48

Linux黑話解釋

2020-09-07 19:45:37

Linux顯示服務(wù)器黑話解釋

2022-04-03 13:17:21

Linux黑話解釋GRUB

2023-11-22 10:51:25

LinuxSuper

2020-10-13 12:29:38

Linux包管理器

2023-08-06 06:47:29

2021-03-17 10:45:03

Linux服務(wù)器命令

2019-08-30 09:05:16

Linux內(nèi)核開源

2023-11-29 16:02:29

光纖網(wǎng)絡(luò)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)