天天看點

“自主可控”的系統 —— Gentoo Linux

作者:老波哥來了

最近,陸陸續續寫了一些關于作業系統的小文。比如這篇 “一群人的倔強——開源Windows系統 “,收獲了不少的批評和指正。

“自主可控”的系統 —— Gentoo Linux

其實在日常的工作和學習中,我使用的是一款叫做“Gentoo Linux”的發行版。說起LINUX,更為大家所熟知的可能是Fedora、CentOS、UBUNTU、SUSE等等。那麼Gentoo又是誰呢?它有什麼特點呢?

在衆多 Linux 發行版中,Gentoo可以說是最有個性的一個,與其說他是一個發行版,不如說他其實可以說不是一個發行版。Gentoo Linux 具有高度可定制、靈活性和強大的軟體包管理功能。

甚至說這是一個“自主可控”的 Linux作業系統也不為過。

時間退回到20世紀末的1999年,當時的軟體工程師Daniel Robbins從BSD的Ports機制得到靈感,開始了他的 Linux 定制之旅,為此建立了 Enoch Linux 這一定制發行版。根植于 Enoch 項目中的初衷是賦予使用者充分的定制權限、展現 Linux 的靈活性以及提升系統性能。然而,由于開發資源有限,Enoch 項目未能走出實驗階段。

随着對定制化需求的進一步挖掘,Daniel Robbins 決定将 Enoch 改進為一個更出色的Linux。在2002年,Enoch Linux 迎來了新生,源于一種叫 Gentoo 的南極企鵝,Gentoo Linux 被賦予了靈活與迅速的特質,這也标志着系統發展中的一個重要階段。

在2004年,Daniel Robbins 辭去了 Gentoo 基金會的職務,但其發展并無絲毫停滞。如今,Gentoo Linux 已在 Linux 發行版中獨樹一幟,赢得了許多忠實擁趸。

盡管創始人 Daniel Robbins 離開了 Gentoo 基金會,但是這個廣受好評的發行版依然在社群成員的共同努力下持續發展。

2007年,Gentoo 社群創立"Gentoo/Alt"計劃,以支援如 PPC、MIPS、Alpha 和 SPARC 等非 x86 或非 amd64 的。

2013年,Gentoo 社群成立了 Systemd 項目組,緻力于在社群範圍内支援和維護最新的 Linux init 系統 Systemd。與傳統 init 系統相比,Systemd 提供了更高效的系統引導過程、依賴關系管理以及并行啟動服務的能力。

2015年,Gentoo 社群釋出了新的“Hardened Gentoo”計劃,旨在加強系統安全。

2018年:GitHub 發生一起針對Gentoo的攻擊事件。攻擊者通過對Gentoo官方GitHub首頁的惡意修改,企圖分發受損代碼。盡管此次攻擊沒有給使用者造成嚴重損失,但它讓社群意識到了維護和加強代碼庫安全的重要性。在攻擊事件發生後,Gentoo 社群采取了一系列措施提高代碼庫的安全性。

Gentoo Linux 以獨特的 Portage 軟體包管理系統、高度靈活的可定制性和豐富的文檔資源為使用者提供了個性化、專業的 Linux 使用體驗。

“自主可控”的系統 —— Gentoo Linux

(一)Portage軟體包管理

作為Gentoo Linux 的核心元件之一,Portage 是一個獨特的軟體包管理系統,它與其他幾乎所有的Linux的包管理系統完全不同,它靈感來源于 FreeBSD 的 Ports。Portage 使用 Ebuild 腳本管理軟體包,每個 Ebuild 腳本均包含了從源代碼建構、測試、安裝到解除安裝的完整過程。通過 Portage,使用者可以相對“輕松地”從源代碼安裝、更新、删除和查找軟體包,同時處理版本依賴關系等問題。

Portage 的功能相當豐富,主要包括以下幾個方面:

1. 源代碼建構:Portage 根據使用者自定義的 USE flag 設定,自動編譯、安裝軟體包,使使用者可以根據自己的需求和硬體針對每個軟體包進行個性化定制。

2. 依賴關系管理:Portage 會自動解析軟體包的依賴關系,包括必備依賴和可選依賴。使用者無需手動解決依賴問題。

3. 更新和更新:通過 Portage,使用者可以随時從 Gentoo 官方或第三方軟體倉庫更新軟體包的 Ebuild 腳本,進而輕松更新整個系統。

(二)靈活性和可定制性

Gentoo 的靈活性和可定制性是其最引人注目的特點。從系統安裝到單個軟體包設定,Gentoo 都賦予使用者充分的控制權。對于這個特點,可以從以下幾點更好地了解:

1. 系統安裝:Gentoo 的安裝過程完全可定制。使用者可以根據硬體、目标用途和性能需求選擇适合自己的核心選項和驅動程式。

2. 核心定制:Gentoo 允許在安裝過程中選擇相應的核心及定制。預先定制好的核心選項可以靈活地适應各種硬體裝置,提升系統性能,當然,使用者也可以完全自定義所有的核心選項自行編譯Linux核心。

3. USE flags:Gentoo 使用者可通過設定 USE flags,對軟體包進行進一步定制。例如,可以選擇是否支援不同的程式設計語言、不同的庫版本、圖形使用者界面工具集、檔案系統、系統組建等功能。

以 Remmina 這款著名的遠端桌面用戶端軟體為例,它支援多重協定(如 RDP、VNC 和 SSH 等)。在 Gentoo 中,我們可以通過設定 USE flags 的方式來決定安裝該軟體時啟用哪些協定。

例如,預設的 USE flags 可能如下所示:

app-misc/remmina -RDP -SSH -VNC -XDMCP

這表示,預設安裝時不啟用 RDP(Remote Desktop Protocol)、SSH(Secure Shell)、VNC(Virtual Network Computing)和 XDMCP(X Display Manager Control Protocol)協定。

如果想要在安裝 Remmina 時啟用 VNC 和 SSH 支援,則可以在 /etc/portage/make.conf 或 /etc/portage/package.use 中把相應的 USE flags 設定為如下:

app-misc/remmina -RDP SSH VNC -XDMCP

這樣,在 Portage 自動編譯 Remmina 時,就會啟用 VNC 和 SSH 協定支援。 通過合理設定 USE flags,使用者不僅可以定制軟體包的功能,還可以為軟體包精簡不必要的依賴,進而減小系統的占用空間和提升運作效率。這也是 Gentoo Linux 高度自定義和靈活特性的一個典型展現。

(三)文檔和資源

作為一款社群驅動的Linux,Gentoo 擁有詳盡的官方文檔和豐富的社群資源。以下為一些值得關注的文檔和資源:

1. Gentoo 官方文檔:Gentoo Handbook 提供了從系統安裝、軟體更新、系統維護到進階設定等方面的詳細指導,幫助使用者充分了解和掌握 Gentoo 的基本操作。[Gentoo Handbook]( )

2. Gentoo Wiki:涵蓋了各種技術問題的說明、常見問題解答及解決方案等資訊,幫助使用者解決日常使用 Gentoo 遇到的問題。[Gentoo Wiki]( )

3. 社群論壇:Gentoo 社群論壇彙聚衆多熱衷于 Gentoo 的使用者,大家互相幫助、讨論問題,激發新的想法。

4. 非官方資源:當然除了官方資源外,還有不少諸如 blog、學習指南、教程和錄播視訊等非官方資源,可以幫助使用者更深入地了解和學習 Gentoo Linux。

Gentoo Linux 的上述特點如源代碼建構、靈活性、可定制性以及詳盡的文檔和資源,使其在衆多 Linux 發行版中獨樹一幟,深受技術愛好者的青睐。

由于 Gentoo 支援高度定制和優化,一些企業和開發者選擇 Gentoo 作為伺服器環境。利用 USE flags 特性,使用者可以僅安裝最小必須的軟體包,實作伺服器的精簡配置。此外,Gentoo 的源代碼編譯建構方式可根據硬體特性進行優化,進而實作更優的性能。Gentoo 在網絡、資料庫、存儲等各類伺服器上表現出色,可以應用于資料中心、Web 伺服器和企業級應用伺服器等場景。

給予同樣的原因,Gentoo 也非常适用于嵌入式系統。其靈活性允許使用者根據硬體資源和軟體需求進行定制,進而适配各種類型的嵌入式硬體平台。對于資源受限的裝置,通過優化 USE flags 和編譯選項,可實作系統的瘦身精簡。此外,Gentoo 還提供了 crossdev 工具,友善使用者進行交叉編譯。基于這些特點,Gentoo 也可以成為智能硬體、物聯網裝置、工控系統等領域的理想選擇。

除了伺服器環境與嵌入式系統,Gentoo 的靈活定制性還使其在科研、教育、個人使用等場景中備受青睐。使用者可以根據自己的喜好和需求來定制系統,實作個性化的桌面環境、多媒體應用或特定的開發環境。例如,在科研領域,利用 Gentoo 的優化特性可以為高性能計算或複雜模拟等需求提供支援。

相傳,在美國能源部的橡樹嶺實驗室的超級計算機上也運作着gentoo linux作業系統。

Gentoo Linux 的意義在于彰顯了 Linux 多樣性和定制性。它為開發者、企業、教育、科研等各領域的使用者提供了一個高度可定制的、具有極高性能優化潛力的作業系統。同時,Gentoo 豐富的文檔和活躍社群也反映了 Linux 開源生态的繁榮與發展。

“自主可控”的系統 —— Gentoo Linux

繼續閱讀