Linux 大爆炸:一個內核,無數發行版

即使你是一個 Linux 新人,你可能也已經知道它不是一個單一的、整體的操作系統,而是一群項目。這個星座中不同的「星」組成了「發行版」。每個都提供了自己的 Linux 模式。

感謝這一系列發行版所提供的多種選擇,這有助於了解 Linux 如何開始並隨後激增的。因此,這裡會簡要介紹一下 Linux 的歷史。

Linus Torvalds,內核構建者

大多數熟悉 Linux 的人都已經聽說過它的創建者 Linus Torvalds (題圖中的人),但是並不知道他最初為何創建它。在 1991 年,Torvalds 還是一名在芬蘭學習計算機的大學生。作為一個獨立的個人項目,他希望為他的獨特硬體創建一個類 Unix 內核。

「內核」是操作系統的一部分,它介乎於操作系統和硬體之間,通過其固件進行協調。本質上,它是系統的核心。開發內核不是一個小工程,但是 Torvalds 渴望挑戰,並且發現他自己有這個罕見的技能。

由於他剛接觸內核,他希望得到其他人的幫助來確保他走在正確的軌道上,因此他通過在早期的互聯網論壇 Usenet 發布他的內核代碼,並徵求了老牌的老手的經驗。然後貢獻者就湧來了。

在建立了一個對論壇提交的補丁進行審查以及選擇性地集成它們的流程後,Torvalds 意識到他聚集起了一個非正式的團隊。在項目發展之後,它很快成為了一個比較正式的開發團隊。

Richard Stallman 的角色

雖然 Torvalds 以及他的團建創造了 Linux 內核,但是沒有 Richard Stallman 的工作也不會有隨後 Linux 眾多發行版的傳播,Richard 在十年之前發起了一個自由軟體運動。

受到許多核心 Unix 程序和系統功能缺乏透明度的阻撓,Stallman 決定自己編寫一個,與任何想要它的人自由共享源代碼,並且開放提交。他創造了許多核心程序的主體,並在 1983 年發布,統稱為 「GNU 項目」。

沒有它們,內核不會有那麼多的用量。基於 Linux 的操作系統的早期設計人員很樂意將 GNU 工具集成到他們的項目中。

不同的團隊開始出現 - 每個團隊都有自己的計算功能和架構的理念。他們將 Linux 內核、GNU 實用程序和他們自己的原始軟體結合在一起,然而「發行」了 Linux 操作系統的變體。

伺服器發行版

每個發行版有它自己的設計邏輯和目的,但是要了解它們的細微差別,需要了解上游和下游開發人員之間的區別。「上游開發人員」負責實際創建項目並發布,以供個人下載或將其包含在其他項目中。相比之下,「下游開發人員」或「軟體包維護人員」是指每個發布上遊程序的人員,他們對每個上遊程序的版本進行調整以適應下游項目的使用情況。

雖然大多數 Linux 發行版包含一些(自己的)原生項目,但大部分發行版開發主要是對 Linux 內核、GNU 工具和龐大的用戶程序生態系統的「下游」工作。

許多發行通過優化特定使用場景來彰顯它們的特徵。例如,某些項目被設計作為伺服器運行。為部署伺服器而量身定製的發行版通常會避開上游項目中快速推出的最新功能,而傾向於發布一個經過徹底測試的、基礎的基本軟體,系統管理員可以依靠它來順利運行。

針對伺服器的發行版的的開發團隊經常很大,並且有富有經驗的程序員可以為每個版本提供多年的支持。

桌面發行版

也有很多的發行版針對桌面用戶。事實上,一些知名的發行版通過提供簡單的安裝以及直觀的界面來與商業的操作系統競爭。這些發行版通常包含了大量的軟體倉庫,它包含了用戶可以想到的每個軟體,這樣用戶可以定製它們自己的系統。

由於可用性是關鍵,他們可能會投入部門大量的員工來創建一個特徵鮮明的、發行版特定的桌面,或調整已有的桌面以適應其設計理念。以用戶為中心的發行版往往會加快其下游開發時間表,有助於及時為用戶提供新功能。

「滾動發布」項目,這是一種桌面發行版的子集,其被設計成緊跟潮流。滾動發布項目的包維護人員在為每個上遊程序完成調整後分別發布其新版本,而不是等待所需的上遊程序的開發達到某一特定的節點,然後將其集成到單個版本中。

這種方法的一個優點是安全性,因為其關鍵補丁的發布將比非滾動發行版更快。另一個好處是新功能立即可用,不然用戶需要等待才行。滾動發布的缺點是需要更多的人工干預和仔細維護,因為某些升級可能會與其他升級相衝突從而破壞系統。

嵌入式系統

另外一個 Linux 發行版類別是「嵌入式系統」,它被極致裁剪(相對與伺服器和桌面發行版)來適應特定的使用情況。

我們經常會忘記那些連接到網際網路的任何東西,或者比一個簡單的計算器複雜的東西,都是計算機。而計算機需要操作系統。因為 Linux 是自由的並且高度模塊化,所以它通常是硬體廠商的選擇。

在大多數情況下,如果你看見一台智能電視、一台連接互聯網的照相機、甚至是一輛車,你看到的都是 Linux 設備。特別是每部非 iPhone 的智能手機都運行著不同的嵌入式 Linux。

Linux 現場版

最後,有一些 Linux 發行版並不需要永久性地安裝在計算機中,而是駐留在 USB 記憶棒上,並允許在其它的計算機上啟動它們,而無需計算機硬碟。

這些 「現場版(live)」 的系統可以被優化來執行一些任務。從修復損壞的系統到進行安全評估到高度安全地瀏覽網際網路。

由於這些 現場版 Linux 發行版通常針對解決特定的問題,因此它們一般都包含特定的工具,像磁碟分析和恢復程序、網路監控程序和加密工具。它們還佔用很小的空間,因此它們可以快速啟動。

你如何選擇?

這絕不是 Linux 發行版類型的全面列表,但它應該可以讓你大致了解 Linux 生態系統的範圍和多樣化了。

在每個類別下都有許多選擇,因此你會如何選擇一個最能符合你需求的版本呢?

一種方式是試驗。在 Linux 社區中,來回嘗試不同的發行版,或者為用戶根據他們的需求在不同的機器上運行不同的發行版,這都很常見。

在將來的文章中,我會展示每種類型發行版的幾個例子,以便你可以自己嘗試,並開始探索最喜歡的發行版的旅程。

作者簡介:

自 2017 年以來 Jonathan Terrasi 一直是 ECT 新聞網的專欄作家。他的主要興趣是計算機安全(特別是 Linux 桌面),加密和分析政治和時事。他是全職自由作家和音樂家。他的背景包括在芝加哥委員會發表的保衛人權法案文章中提供技術評論和分析。

via: Linuxs Big Bang: One Kernel, Countless Distros

作者:Jonathan Terrasi 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


推薦閱讀:

庫文件與系統調用
十年回顧-我的Linux之路
openvswitch有什麼用?
感覺autoconf真不太好用,有何替代方案?

TAG:Linux | Linux发行版 | 林纳斯·托瓦兹LinusTorvalds |