1. 程式人生 > >Linux 大爆炸:一個核心,無數發行版

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

  即使你是一個 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 社群中,來回嘗試不同的發行版,或者為使用者根據他們的需求在不同的機器上執行不同的發行版,這都很常見。

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